我正在将 AWS Lambda 代码作为 zip 文件上传到 S3 存储桶中。
我有一个为 S3 存储桶对象声明的资源:
resource "aws_s3_bucket_object" "source-code-object" {
bucket = "${aws_s3_bucket.my-bucket.id}"
key = "source-code.zip"
source = "lambda_source_code/source-code.zip"
etag = "${base64sha256(file("lambda_source_code/source-code.zip"))}"
}
Run Code Online (Sandbox Code Playgroud)
我还有一个数据声明来压缩我的代码:
data "archive_file" "source-code-zip" {
type = "zip"
source_file = "${path.module}/lambda_source_code/run.py"
output_path = "${path.module}/lambda_source_code/source-code.zip"
}
Run Code Online (Sandbox Code Playgroud)
输出terraform apply
不断向我显示哈希值的更改:
~ aws_s3_bucket_object.source-code-object
etag: "old_hash" => "new_hash"
Run Code Online (Sandbox Code Playgroud)
即使我的源代码中没有任何更改。为什么会出现这种行为?我见过类似的帖子,其中 Lambda 的源代码不断变化,但我的 Lambda 实际上并没有每次都更新(在控制台中检查了上次更新时间)。但是,看起来确实在每个apply
.
当我在Linux中压缩(Zip 2.31)相同的文件时,我每次都会得到不同的校验和.我怎样才能保持与上次相同的md5sum?我正在使用yum的最新zip更新