Terraform 将模块的地图输出转换为列表以在其他模块中使用

Terraform Convert map output from module to list to use in other module

我设法使用 for_each 根据给定数组在区域中创建资源。现在我想使用输出 URN 将资源分配给 Digital Ocean 中的项目。问题是我为资源输出 URN 的方式创建了一个映射,而 project_resources 资源只能使用字符串列表。 我的代码:

output.tf

output "droplet_urns" {
  value = tomap({
    for k, drops in digitalocean_droplet.web : k => drops.urn
  })
}

如何将map转换成list或者使用key的值?我正在使用 Terraform v1.1.9

您可以使用 keys function to get list with all they keys from the map. Also, you can use the values 函数获取包含 map.

中所有值的列表

您可能需要这样的东西:

resource "digitalocean_project_resources" "barfoo" {
  project = data.digitalocean_project.foo.id
  resources = values(module.my_module.droplet_urns)
}