У меня есть следующий скрипт 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
отображает содержимое всего файла - что может быть довольно большим. Также в идеале эта замена должна применяться только к одному файлу из набора, остальные должны загружаться как есть, если этот файл пропущен.