【问题标题】:Is AWS lambda function doing some caching when it retrieves an AWS secretAWS lambda 函数在检索 AWS 密钥时是否进行了一些缓存
【发布时间】:2020-06-08 22:51:33
【问题描述】:

我注意到,当我更新秘密时,lambda 需要一段时间才能检索到更新的秘密值。我想知道在 lambda 调用期间是否发生了一些缓存。

【问题讨论】:

  • 你有你的函数的例子吗?
  • 您可以将 Lambda 排除在外,以了解 Secrets Manager 本身是否缓存机密,或者您是否会受到最终一致性问题的影响。使用 awscli 检索密钥、修改密钥并再次检索它。
  • 谢谢@jarmod,这是个好建议。我可以确认更改似乎立即反映在 aws cli 输出中。
  • 基本上如果你在函数外初始化secrets manager客户端并尝试在函数外检索secret,它不会每次都执行
  • 仅供参考,@mokugo-devops 指的是 Lambda 热启动与冷启动。

标签: amazon-web-services aws-lambda aws-secrets-manager


【解决方案1】:

我知道的 lambda 函数中唯一的内置缓存是执行上下文重用,记录在 here

利用执行上下文重用来提高函数的性能。 在函数处理程序之外初始化 SDK 客户端和数据库连接,并在 /tmp 目录中本地缓存静态资产。由函数的同一实例处理的后续调用可以重用这些资源。这节省了执行时间和成本。

要回答您的问题,如果您在函数处理程序之外获取秘密,那么在执行上下文中完全更新将需要一些时间。

【讨论】:

  • 我认为这回答了它。 lambda 是一个烧瓶应用程序。 aws secret 位于对象中,并且仅在应用程序执行期间初始化一次。当 aws secret 更新时,调用执行可能仍在使用当前执行上下文和之前检索到的 secret 值。
  • 最终,在空闲一段时间后,它得到一个冷启动,并能够获得新的秘密值。
猜你喜欢
  • 2021-06-25
  • 1970-01-01
  • 1970-01-01
  • 2018-11-11
  • 1970-01-01
  • 2022-08-19
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
相关资源
最近更新 更多