Amazon web services 在上传到S3之前替换文件中的字符串
我有下面的terraform脚本,它将一堆文件上传到AWSS3Amazon web services 在上传到S3之前替换文件中的字符串,amazon-web-services,amazon-s3,terraform,terraform-provider-aws,Amazon Web Services,Amazon S3,Terraform,Terraform Provider Aws,我有下面的terraform脚本,它将一堆文件上传到AWSS3 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_upl
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}"
}
在上传之前,是否有办法将文件内容中的一个字符串替换为另一个字符串?我确实尝试过使用内容
而不是源代码
——类似这样的东西
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
显示整个文件的内容,这可能相当大。理想情况下,此替换应仅应用于集合中的一个文件,其余文件应按原样上载,并跳过该文件。我最终通过shell脚本在terraform之外执行此操作