【发布时间】:2023-03-23 03:27:02
【问题描述】:
我在某个根目录下有多个文件,我们称之为 module/data/。 我需要将此目录上传到相应的 S3 存储桶。所有这些都按预期工作:
resource "aws_s3_bucket_object" "k8s-state" {
for_each = fileset("${path.module}/data", "**/*")
bucket = aws_s3_bucket.kops.bucket
key = each.value
source = "${path.module}/data/${each.value}"
etag = filemd5("${path.module}/data/${each.value}")
}
剩下的唯一事情是我需要递归地遍历所有文件并用来自 terraform 模块变量的值替换标记(例如 !S3!)。
与此类似,但跨目录/子目录中的所有文件:
replace(file("${path.module}/launchconfigs/file"), “#S3”, aws_s3_bucket.kops.bucket)
那么一句话的问题:如何循环文件并用terraform中的变量替换其中的一部分?
【问题讨论】:
-
可以将文件视为模板吗?如果是,您可以使用:terraform.io/docs/providers/template/d/file.html
标签: amazon-web-services amazon-s3 automation terraform devops