【问题标题】:Terragrunt dependency list output as inputsTerragrunt 依赖列表输出作为输入
【发布时间】:2020-11-06 12:19:52
【问题描述】:

我有两个入口点:s3 和 do_something。 s3 是 do_something 的依赖项,代码如下:

terragrunt.hcl

aws_regions = [ "us-east-1", "eu-east-1" ]
inputs = {
  build_bucket = {
    "${local.aws_regions[0]}" = {
      name = "somename-${local.aws_regions[0]}"
    }
    "${local.aws_regions[1]}" = {
      name = "somename-${local.aws_regions[1]}"
    }
  }
}

main.tf

resource "aws_s3_bucket" "build_bucket" {
  for_each = var.build_bucket
  bucket = each.value["name"]
  acl    = "private"
}
output "build_bucket" {
  value = aws_s3_bucket.build_bucket[*]
}

--terragrunt-debug 看起来像:

  "build_bucket": [
    [
      {
        "eu-east-1": {
          "acceleration_status": "",
          "acl": "private",
          "arn": "arn:aws:s3:::somename-eu-east-1",
          "bucket": "somename-eu-east-1",
        },
        "us-east-1": {
          "acceleration_status": "",
          "acl": "private",
          "arn": "arn:aws:s3:::somename-us-east-1",
          "bucket": "somename-us-east-1",
        }
      }
    ]
  ],

在 do_something 文件夹中,我有 terragrunt.hcl:

dependency "s3" {
  config_path = "../s3"
}
inputs = {
  build_bucket = [dependency.s3-build.outputs.build_bucket]
}

vars.tf

variable "build_bucket" {
  description = "S3 buckets"
  type = list
}

如何获取 build_bucket 的每个元素?

这没有用:

var.build_bucket[0].[data.aws_region.current.name].bucket

【问题讨论】:

    标签: terragrunt


    【解决方案1】:

    嵌套列表... 变量设置为 any 而不是字符串。

    variable "build_bucket_arn" {
      description = "S3 bucket ARN for the builds"
      type = any
    
    

    调用原始嵌套列表:

    var.build_bucket[0][0][data.aws_region.current.name].bucket
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-21
      • 2023-04-05
      • 1970-01-01
      • 2016-09-25
      • 1970-01-01
      • 2020-04-18
      相关资源
      最近更新 更多