来自外部 json 文件的 Terraform 和标记 AWS 资源

Terraform and tagging AWS resources from an external json file

如果我有这样的 json 文件:

{
    "allMyTags": {
        "owner": "john",
        "department": "HR",
        "city": "New York"
    }
}

我的 AWS 提供商 terraform main.tf 看起来像这样:

resource "aws_vpc" "example" {
  # ... other configuration ...

  tags = {
    owner = "john"
  }
}

如何用外部 json 文件替换 main.tf 的标签部分中的所有内容。 json 文件比我放在那里的要长很多,我只是不想在 main.tf 的标签部分手动输入 20 个值。有没有办法“循环”通过 json 文件并将其添加进去?感谢您提供的任何帮助。

假设您 json 已经加载到 TF,您可以这样做:

resource "aws_vpc" "example" {
  # ... other configuration ...

  tags = jsondecode(local.myjson["allMyTags"])
}

其中 local.myjson 是加载的 json 到 TF。