我是 terraform 新手,需要从下面的
each.value
中的 target_id
中排除特定值:
以下数据源用于列出组织中的所有帐户
# List all account IDs in the organization
data "aws_organizations_organization" "example" {}
resource "aws_ssoadmin_account_assignment" "example" {
instance_arn = tolist(data.aws_ssoadmin_instances.sso_instance.arns)[0]
permission_set_arn = "permission_set_arn"
principal_id = "groupid"
principal_type = "GROUP"
for_each = tolist(data.aws_organizations_organization.example)
target_id = each.value
target_type = "AWS_ACCOUNT"
}
由于我对 terraform 不熟悉,上述资源失败。我想列出
data.aws_organizations_organization.example
块中的所有帐户 ID,但排除特定帐户,感谢任何帮助!
我尝试了几种不同的方法,使用
tolist
和toset
但没有成功。
我需要一个过滤器来从数据调用列表中排除一个值。
这是使用中间变量的示例:
data "aws_organizations_organization" "example" {}
locals {
organizations = {
for x in data.aws_organizations_organization.example : x.id => x.master_account_name
if x.master_account_name != "abc"
}
}
resource "aws_ssoadmin_account_assignment" "example" {
for_each = local.organizations
target_id = each.value
target_type = "AWS_ACCOUNT"
...
}