首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Terraform:如何获得资源数组的数组/列表

Terraform:如何获得资源数组的数组/列表
EN

Stack Overflow用户
提问于 2022-08-05 09:14:47
回答 1查看 334关注 0票数 0

如何为用for_each创建的资源获取ARN的列表/数组?

代码语言:javascript
复制
# DynamoDB
resource "aws_dynamodb_table" "terraform_state" {
  for_each = var.aws_shared_accounts

  name           = "${each.key}-terraform-state"
  read_capacity  = 5
  write_capacity = 5
  hash_key       = "LockID"
  attribute {

resource "aws_iam_role" "infra_github_role" {
  name = "TerraformBackendRole"

  inline_policy {
    name = "TerrafomBackendPolicy"

    policy = jsonencode({
      Version = "2012-10-17"
      Statement = [
        {
          Action = "*"
          Effect = "Allow"
          Resource = [
            concat(
              [aws_s3_bucket.terraform_bucket.arn, "${aws_s3_bucket.terraform_bucket.arn}/*"],
              aws_dynamodb_table.terraform_state[*].arn
            )
          ]
        },
      ]
    })
  }
}

如果没有aws_iam_role,我可以运行terraform plan并查看资源

代码语言:javascript
复制
# aws_dynamodb_table.terraform-state["main"] will be created
  + resource "aws_dynamodb_table" "terraform-state" {

# aws_dynamodb_table.terraform-state["main-dev"] will be created
  + resource "aws_dynamodb_table" "terraform-state" {

添加aws_iam_role后收到的错误

代码语言:javascript
复制
Error: Unsupported attribute

  on 03-iam.tf line 16, in resource "aws_iam_role" "infra_github_role":
  16:               aws_dynamodb_table.terraform_state[*].arn
EN

回答 1

Stack Overflow用户

发布于 2022-08-05 09:28:21

由于您使用了for_each,要获得arn值,您应该这样做:

代码语言:javascript
复制
values(aws_dynamodb_table.terraform_state)[*].arn
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73247377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档