【发布时间】:2021-08-12 22:49:08
【问题描述】:
我在 Terraform 中有一个名为 users 的对象列表,结构如下:
variable "accounts" {
type = list(object({
id = string #used in assume_role
email = string
is_enabled = bool
}))
}
我现在想要实现的是在每个 AWS 账户中创建一个简单的 S3 存储桶(如果 is_enabled 为真)。我可以为单个帐户执行此操作,但我不确定是否有办法遍历提供程序?
单个帐户的代码 - main.tf
provider "aws" {
alias = "new_account"
region = "eu-west-3"
assume_role {
role_arn = "arn:aws:iam::${aws_organizations_account.this.id}:role/OrganizationAccountAccessRole"
session_name = "new_account_creation"
}
}
resource "aws_s3_bucket" "bucket" {
provider = aws.new_account
bucket = "new-account-bucket-${aws_organizations_account.this.id}"
acl = "private"
}
【问题讨论】:
-
您可以改为将提供程序和存储桶放入文件夹/模块中,然后遍历该模块。模块支持 for_each / count。
标签: terraform