【问题标题】:Modify simple list/array in Terraform修改 Terraform 中的简单列表/数组
【发布时间】:2019-05-23 14:15:48
【问题描述】:

我有一个下一个列表:

azs = ["us-east-1a", "us-east-1b", "us-east-1c"]

我在创建子网期间使用它。在子网名称中,我想使用像a, b, c 这样的短名称,所以我需要一个列表["a", "b", "c"]。显然,当手动设置azs 时,我需要动态生成它(例如在本地块中)。

如何使用 Terraform 创建这样的列表?

【问题讨论】:

    标签: amazon-web-services interpolation terraform


    【解决方案1】:

    您可以在此处使用formatlist 函数来格式化列表。

    它使用字符串格式语法,获取 n 个列表并返回一个列表。

    所以在你的情况下,你可能想要这样的东西:

    locals {
      azs = [
        "a",
        "b",
        "c",
      ]
    }
    
    output "azs" {
      value = "${formatlist("us-east-1%s", local.azs)}"
    }
    

    【讨论】:

    • 我想从 ["us-east-1a", "us-east-1b", "us-east- 1c"] 列表,反之亦然。
    • 你为什么要那样做?您能否扩展您的问题以更充分地展示您正在尝试做的事情?
    • 以前我曾想过用[:-1]["us-east-1a", "us-east-1b", "us-east-1c"] 创建新的[a, b, c] 列表,就像在Python 中一样。但是鉴于 TF 语言非常有限,您的变体看起来也不错。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多