如何轻松地将环境变量添加到多个Lambda函数?

SBa*_*ker 5 c# environment-variables amazon-web-services .net-core aws-lambda

我正在开发一个AWS无服务器应用程序,我是AWS的新手,所以请纠正这个问题中的任何误解.我们有大约30个lambda函数在RDS中托管的SQL数据库上执行基本的CRUD操作.我们使用EntityFramework Core来创建数据库.这意味着,为了使用数据库,lambda函数每个都需要访问EF连接字符串.我不想将连接字符串留在内存中(它包含明文密码)所以我把它放在一个加密的环境变量中.

我可以解决如何做到这一点的唯一方法是通过lambda管理控制台GUI将加密的环境变量分别添加到每个lambda函数.这很乏味但是很有效.我现在已经改变了一点解决方案,我们需要一组不同的lambda函数,这些函数也需要添加环境变量,我不想再次手动执行.

我的问题:

是否有一种简单的方法可以添加所有lambda函数都可以访问的加密环境变量(或类似的东西)?有没有方法可以批量添加它们?我可以使用更高级别的变量?

我试图在亚马逊文档中找到信息(例如这里),但收效甚微.

das*_*mug 3

Lambda 只关心获取它需要的环境变量,并不负责集中管理环境变量。

您需要做的是在部署过程中处理环境变量。

您目前如何部署 30 个 lambda 函数?

如果您使用 CodeBuild,它可以访问 AWS EC2 Parameter Store,您可以在其中集中存储和管理敏感环境变量。

其他 CI/CD 工具也有自己的集中管理环境变量的方式。

更新

您可以通过编程方式使用AWS EC2 Parameter Store。这意味着您可以在启动期间从 Lambda 函数内部检索存储的环境变量,因此无需在部署时执行此操作。

如果在您的用例中可能的话,在部署时执行此操作仍然更好。