【问题标题】:How do we set dynamic variables for Lambda using Cloud Formation我们如何使用 Cloud Formation 为 Lambda 设置动态变量
【发布时间】:2021-02-19 22:28:35
【问题描述】:

我正在编写一个用于创建 Lambda 函数的 Cloud Formation 模板,并且“环境”参数可以有任意数量的变量。 (事先不知道) 我怎样才能使它成为动态而不是指定静态键值对。

【问题讨论】:

  • 您可以在 lambda 代码中创建它们(“动态变量”)。

标签: amazon-web-services aws-lambda amazon-cloudformation


【解决方案1】:

正如samtoddler 已经指出的那样,您不能拥有 Lambda 的动态环境变量。但是,有一个简单的替代方案:

  1. 使用环境变量指定配置路径,例如parameter store value from Systems Manager 的名称。

  2. 在您的 Lambda 函数中,读取环境变量并从参数存储中检索实际值。这可以是 JSON 字符串,也可以是您需要的任何可以序列化为字符串的配置设置。优化:仅在您的 Lambda 函数第一次调用时检索该值并将其缓存在您的处理函数之外。

  3. 如果您需要更改配置,只需更新参数存储中的值。提示:如果您需要尽快将这个新值分配给您的 Lambda 函数,只需创建一个新版本的 Lambda 函数并使用这个新版本。它可确保在下次为此新版本调用 Lambda 函数时创建新实例,然后使用您的新参数存储值。

AWS 的这篇博文中有一些与非常相似的场景的更多细节:https://aws.amazon.com/blogs/compute/sharing-secrets-with-aws-lambda-using-aws-systems-manager-parameter-store/

【讨论】:

    【解决方案2】:

    您不能动态更改它们。

    Using AWS Lambda environment variables

    当您发布版本时,该版本的环境变量以及其他特定于版本的配置都会被锁定。

    【讨论】:

      猜你喜欢
      • 2018-08-25
      • 2022-11-23
      • 2021-06-29
      • 2019-05-23
      • 2011-10-28
      • 2013-05-15
      • 2011-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多