Terraform:使用 aws_org_org 数据调用时忽略特定值

问题描述 投票:0回答:1

我是 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
但没有成功。

我需要一个过滤器来从数据调用列表中排除一个值。

amazon-web-services terraform terraform-provider-aws
1个回答
0
投票

这是使用中间变量的示例:

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"
  ...
}
© www.soinside.com 2019 - 2024. All rights reserved.