AWS Lambda未使用Terraform source_code_hash属性进行更新



我有一个用于创建Lambda资源的Terraform配置,并使用source_code_hash属性来检测zip的更改。我还上传了一个单独的文件,其中包含文件的SHA256哈希值以及zip文件到S3。

我能够做一次部署,但问题是运行的Lambda在我更新zip后没有得到更新,并且在构建日志中我看到"仍在创建…">

我怎么能看到source_code_hash属性的值?我只是在计划输出和应用输出中看到+ source_code_hash =(应用后已知),所以我不知道值是否正在更新。

我的代码如下:

data "aws_s3_object" "source_hash" {
bucket = "dap-bucket-2"
key    = "lambda.zip.sha256"
}
resource "aws_lambda_function" "lambda" { 
function_name    = "lambda_function_name"
s3_bucket        = "dap-bucket-2"
s3_key           = "lambda.zip"
handler = "template.handleRequest"
runtime = "java11"
role    = aws_iam_role.lambda_exec.arn
source_code_hash = "${data.aws_s3_object.source_hash.body}"
publish = true
} 

对于s3对象,通常使用etag:

source_code_hash = data.aws_s3_object.source_hash.etag

最新更新