【问题标题】:Terraform extract account id from aws_organizations_organization.main.accountsTerraform 从 aws_organizations_organization.main.accounts 提取帐户 ID
【发布时间】:2020-04-07 01:12:48
【问题描述】:

给定一个账户名,是否可以从中提取账户ID

resource "aws_organizations_organization" "main" {
}

比如:

output "account_id" {
  value = "aws_organizations_organization.main.accounts[name == 'account1']"
}

account_id = 012345678901

accounts = [
  {
    "arn" = "arn:aws:organizations::012345678901:account/o-abc123/012345678901"
    "email" = "account1@email.com"
    "id" = "012345678901"
    "name" = "account1"
  },
  {
    "arn" = "arn:aws:organizations::012345678902:account/o-abc123/012345678902"
    "email" = "account2@email.com"
    "id" = "012345678902"
    "name" = "account2"
  },
  {
    "arn" = "arn:aws:organizations::012345678903:account/o-abc123/012345678903"
    "email" = "account3@email.com"
    "id" = "320413348752"
    "name" = "account3"
  }
]

【问题讨论】:

标签: terraform


【解决方案1】:

理论上,如果您获得2.21.0 或更高版本,您应该能够使用新的aws_organizations_organization 数据源并根据帐户名称对其进行过滤。例如,虽然没有测试:

data "aws_organizations_organization" "org" {
  filter = {
    name   = "name"
    values = ["account1"]
  }
}

然后在您需要帐户 ID 的地方使用 data.aws_organizations_organization.org.id

【讨论】:

  • Error: Unsupported block type on main.tf line 2, in data "aws_organizations_organization" "org": 2: filter { Blocks of type "filter" are not expected here.
  • @Christian 我已在此处编辑了答案,以包含 Terraform 0.12 所需的缺少的 = 符号。这对您来说是否按预期工作?
  • 我正在尝试实现同样的目标并遇到了这个问题。我和@Christian有同样的问题。我在文档中查找了它,并且在 AWS 提供商的最新版本 (v3.37.0) 中不存在 filter 属性。
【解决方案2】:

您可以使用null_data_source 创建电子邮件列表。然后使用matchkeys提取帐户。

data "aws_organizations_organization" "main" {}

data "null_data_source" "main" {
  count = length(data.aws_organizations_organization.main.accounts)
  inputs = {
    emails = data.aws_organizations_organization.main.accounts[count.index]["email"]
  }
}

output "accounts" {
  value = matchkeys(data.aws_organizations_organization.main.accounts, data.null_data_source.main.*.outputs.emails, list("account1"))
}

【讨论】:

    猜你喜欢
    • 2019-04-28
    • 2020-12-06
    • 1970-01-01
    • 2013-11-28
    • 2019-04-16
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多