【发布时间】:2021-02-19 22:28:35
【问题描述】:
我正在编写一个用于创建 Lambda 函数的 Cloud Formation 模板,并且“环境”参数可以有任意数量的变量。 (事先不知道) 我怎样才能使它成为动态而不是指定静态键值对。
【问题讨论】:
-
您可以在 lambda 代码中创建它们(“动态变量”)。
标签: amazon-web-services aws-lambda amazon-cloudformation
我正在编写一个用于创建 Lambda 函数的 Cloud Formation 模板,并且“环境”参数可以有任意数量的变量。 (事先不知道) 我怎样才能使它成为动态而不是指定静态键值对。
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-cloudformation
正如samtoddler 已经指出的那样,您不能拥有 Lambda 的动态环境变量。但是,有一个简单的替代方案:
使用环境变量指定配置路径,例如parameter store value from Systems Manager 的名称。
在您的 Lambda 函数中,读取环境变量并从参数存储中检索实际值。这可以是 JSON 字符串,也可以是您需要的任何可以序列化为字符串的配置设置。优化:仅在您的 Lambda 函数第一次调用时检索该值并将其缓存在您的处理函数之外。
如果您需要更改配置,只需更新参数存储中的值。提示:如果您需要尽快将这个新值分配给您的 Lambda 函数,只需创建一个新版本的 Lambda 函数并使用这个新版本。它可确保在下次为此新版本调用 Lambda 函数时创建新实例,然后使用您的新参数存储值。
AWS 的这篇博文中有一些与非常相似的场景的更多细节:https://aws.amazon.com/blogs/compute/sharing-secrets-with-aws-lambda-using-aws-systems-manager-parameter-store/
【讨论】:
【讨论】: