环境变量是在部署 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。
我们的 Lambda 函数依赖于在 Lambda 环境变量中设置的值,我们正在使用 Terraform 部署这两个函数。有时我们需要更改代码并添加它需要的新环境变量。有不同的 AWS API 调用来更新 Lambda 函数代码和函数配置,因此我们假设这些是不同的操作。
有人知道这两个动作的执行顺序吗?
如果先设置环境变量,则可能会使用新变量和旧代码启动新容器。如果是相反的方式,那么我们可能会因为预期的环境变量不存在而导致新代码失败。
我相当确定 Lambda 函数版本控制是所有这一切的答案,但我想知道在我们走这条路之前我是否有不必要的担心。
在更新过程中,配置先于功能代码更新。
您可以自己查看 aws_lambda_function
resource 的源代码并查看 resourceAwsLambdaFunctionUpdate
方法中相关 API 调用的顺序。
配置更新发生在 line 763 while the function code update happens on line 818。