简体   繁体   English

Terraform aws_s3_bucket_object 未由 archive_file 触发

[英]Terraform aws_s3_bucket_object not triggered by archive_file

I have built the following terraform code:我构建了以下 terraform 代码:

data "archive_file" "lambda_dependencies_bundle" {
  depends_on = [
    null_resource.lambda_dependencies
  ]

  output_path = "${local.function_build_folder_path}/build/${local.function_s3_object_key}.zip"
  excludes    = ["${local.function_build_folder_path}/build/*"]
  source_dir  = local.function_build_folder_path
  type        = "zip"
}

resource "aws_s3_bucket" "lambda_dependencies_bucket" {
  bucket = local.function_s3_bucket
  acl    = "private"
}

resource "aws_s3_bucket_object" "lambda_dependencies_upload" {
  bucket = aws_s3_bucket.lambda_dependencies_bucket.id
  key    = "${local.function_s3_object_key}.zip"
  source = data.archive_file.lambda_dependencies_bundle.output_path
}

The null_resource.lambda_dependencies is triggered by a file change and just builds all of my code to local.function_build_folder_path . null_resource.lambda_dependencies 由文件更改触发,只是将我的所有代码构建到local.function_build_folder_path Everytime the null_resource changes, the archive_file.lambda_dependencies_bundle rebuilds (correct behavior.).每次 null_resource 更改时, archive_file.lambda_dependencies_bundle都会重建(正确的行为。)。

But other than expected, the aws_s3_bucket_object.lambda_dependencies_upload is not triggered by the rebuild of the archive_file.但与预期不同的是, aws_s3_bucket_object.lambda_dependencies_upload不是由 archive_file 的重建触发的。

How can I achieve a reupload of my archive_file on a rebuild?如何在重建时重新上传我的 archive_file?

I would add etag :我会添加etag

Triggers updates when the value changes.当值改变时触发更新。

resource "aws_s3_bucket_object" "lambda_dependencies_upload" {
  bucket = aws_s3_bucket.lambda_dependencies_bucket.id
  key    = "${local.function_s3_object_key}.zip"
  source = data.archive_file.lambda_dependencies_bundle.output_path
  etag = data.archive_file.lambda_dependencies_bundle.output_md5
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM