环境变量是在部署 Lambda 函数代码之前还是之后设置的?

Are environment variables set before or after deploying Lambda function code?

我们的 Lambda 函数依赖于在 Lambda 环境变量中设置的值,我们正在使用 Terraform 部署这两个函数。有时我们需要更改代码并添加它需要的新环境变量。有不同的 AWS API 调用来更新 Lambda 函数代码和函数配置,因此我们假设这些是不同的操作。

有人知道这两个动作的执行顺序吗?

如果先设置环境变量,则可能会使用新变量和旧代码启动新容器。如果是相反的方式,那么我们可能会因为预期的环境变量不存在而导致新代码失败。

我相当确定 Lambda 函数版本控制是所有这一切的答案,但我想知道在我们走这条路之前我是否有不必要的担心。

在更新过程中,配置先于功能代码更新。

您可以自己查看 aws_lambda_function resource 的源代码并查看 resourceAwsLambdaFunctionUpdate 方法中相关 API 调用的顺序。

配置更新发生在 line 763 while the function code update happens on line 818