如何使用 yaml 文件中的标签 - terraform

How to use tags from yaml file - terraform

我正在尝试使用 Terraform 从 YAML 文件中提取某些标签,但我不知道如何操作。 Yaml 文件如下所示:

--- 
name: subscriptionName 
emailContact: someemail@domain.com 
tags:
  - key: "tagKey1"
    value: "tagValue1"
  - key: "tagKey2"
    value: "tagValue2"
  - key: "tagKey3"
    value: "tagValue3"
  - key: "tagKey4"
    value: "tagValue4"

我感兴趣的是获取 2 个(比如说 key1 和 key3)键值对作为标签和标签资源。我知道 'locals' 在这里发挥作用,但我对 terraform 有点陌生,无法标记任何资源。 资源是 Azure(如果重要的话)。

我要标记的资源是:

resource "azurerm_network_security_group" "nsg" {
name                = "randomname"
location = "westeurope"
resource_group_name = "random_rg"
tags { }
}

如果你真的想要两个随机标签,你可以使用random_shuffle:

locals {
    loaded_yaml = yamldecode(file("./your_file.yaml"))
}

resource "random_shuffle" "indices" {
  input        = range(0, length(local.loaded_yaml.tags))
  result_count = 2
  seed = timestamp()
}

output "random_tags" {
    value = [for idx in random_shuffle.indices.result: 
             local.loaded_yaml.tags[idx]]
}

更新 例如:

    tags = {
            (local.loaded_yaml.tags[0].key) = local.loaded_yaml.tags[0].value
            (local.loaded_yaml.tags[3].key) = local.loaded_yaml.tags[3].value
        }