【问题标题】:Replace string in file before uploading to S3在上传到 S3 之前替换文件中的字符串
【发布时间】:2020-06-05 05:55:19
【问题描述】:

我有以下将一堆文件上传到 AWS S3 的 terraform 脚本

resource "aws_s3_bucket_object" "website_files" {
  for_each      = fileset(var.client_upload_directory, "**/*.*")
  bucket        = aws_s3_bucket.ada-website.bucket
  key           = replace(each.value, var.client_upload_directory, "")
  source        = "${var.client_upload_directory}${each.value}"
}

有没有办法在上传之前将文件内容中的一个字符串替换为另一个字符串?我确实尝试过使用content 而不是source - 类似这样的

resource "aws_s3_bucket_object" "website_files" {
  for_each      = fileset(var.client_upload_directory, "**/*.*")
  bucket        = aws_s3_bucket.ada-website.bucket
  key           = replace(each.value, var.client_upload_directory, "")
  content       = replace(file("${var.client_upload_directory}${each.value}"), "string 1", "string 2"))
}

但缺点是 - planapply 显示整个文件的内容 - 这可能非常大。理想情况下,此替换应仅应用于集合中的一个文件,其余文件应按原样上传,并跳过该文件。

【问题讨论】:

    标签: amazon-web-services amazon-s3 terraform terraform-provider-aws


    【解决方案1】:

    我最终通过 shell 脚本在 terraform 之外执行此操作。

    【讨论】:

      猜你喜欢
      • 2016-10-30
      • 1970-01-01
      • 2016-09-21
      • 2017-12-14
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      • 2012-08-29
      • 1970-01-01
      相关资源
      最近更新 更多