lambda 扩展是否在 lambda 的多个实例之间共享?

Are lambda extensions shared across multiple instances of a lambda?

我正在尝试提高 lambda 的冷启动性能。启动时需要花时间的事情之一是从机密管理器中获取信息。

我发现了一些解决方案,它们讨论了使用 lambda 扩展从 secrets manager 缓存信息。

  1. https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/cache-secrets-using-aws-lambda-extensions.html
  2. https://github.com/square/lambda-secrets-prefetch
  3. https://github.com/hariohmprasath/aws-lambda-extensions

如果您使用 lambda 扩展方法缓存了来自 secrets manager 的请求,它是仅针对该 lambda 实例缓存还是针对所有 lambda 实例缓存?

如果为所有实例缓存它,那么理论上它会帮助我减少冷启动时间。

不幸的是,它仅针对该 lambda 实例进行缓存。

扩展 运行 在与 lambda 相同的容器内。 因此,它们不会在 lambda 的不同实例之间共享内存。更具体地说,每次 lambda 冷启动时,都会执行新的扩展过程。

免责声明:我刚刚发布了一篇 post 解释更多关于扩展的文章:https://aws.amazon.com/blogs/apn/zero-friction-aws-lambda-instrumentation-a-practical-guide-to-extensions/ 我相信它会帮助您更多地了解扩展的强大功能,以及它如何在其他方面为您提供帮助。