Заменить строку в файле перед загрузкой на S3 - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть следующий скрипт terraform, который загружает кучу файлов в AWS S3

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"))
}

, но недостатком является то, что plan или apply отображает содержимое всего файла - что может быть довольно большим. Также в идеале эта замена должна применяться только к одному файлу из набора, остальные должны загружаться как есть, если этот файл пропущен.

1 Ответ

0 голосов
/ 21 февраля 2020

Я закончил тем, что делал это вне terraform, через скрипт оболочки.

...