如何在Terraform中通过for_each为多个S3桶分配同一个桶策略
问题解决方法
错误原因
- 冗余的插值语法:HCL(Terraform的配置语言)中,资源参数的赋值位置默认就是表达式上下文,直接写变量引用即可,不需要用
${}包裹,这个是HCL 0.11及更早版本的旧插值语法,新版本使用会触发语法报错。 - 无效的属性调用:你传入
for_each的是字符串类型的集合,each.key直接对应集合里的字符串桶名,本身没有.id属性,多余的属性调用会触发报错。
修正后的配置
variable "my_bucket_names" { type = list(string) default = [ "b1", "b2", ] } resource "aws_s3_bucket_policy" "tf-thing-audit-policy" { for_each = toset(var.my_bucket_names) bucket = each.key # 剩余配置保持不变 ... }
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

