gpt4 book ai didi

azure - 如何在 Terraform 中将子网 ID 元组展平为字符串

转载 作者:行者123 更新时间:2023-12-02 07:22:54 25 4
gpt4 key购买 nike

我正在尝试将元组展平为字符串,如下所示

network_acls {
default_action = "Deny"
bypass = "AzureServices"
virtual_network_subnet_ids = ["${data.azurerm_subnet.blah_snet.id}", "${join("\",\"", azurerm_subnet.subnets.*.id)}"]

}

这与 How to flatten a tuple of server ids to a string? 非常相似,但是它对我不起作用。

结果是:"*subnetid1*\",\"*subnetid2*" - 其中 \",\" 应正确转义,结果为 “,”

我不明白为什么这不起作用。我尝试了多种逃避此问题的变体,但没有任何好处

最佳答案

这是一个具有不同 Terraform 0.11.x 和 Terraform 0.12.x 结果的表达式:

["${data.azurerm_subnet.blah_snet.id}", "${join("\",\"", azurerm_subnet.subnets.*.id)}"]

在 Terraform 0.11.x 中,它将导致连接,如所示,用 "," 分隔子网 ID。在 Terraform 0.12.x 中,这将是类型错误并且无法应用。 FWIW,Terraform 0.12.x 在这里是正确的。

如果您使用 Terraform 0.12.x,则以下操作应该有效:

virtual_network_subnet_ids = join(",", concat(
[data.azurerm_subnet.blah_snet.id], azurerm_subnet.subnets[*].id
)

如果您使用 Terraform 0.11.x,则以下操作应该有效:

virtual_network_subnet_ids = "${join(",", concat(
[data.azurerm_subnet.blah_snet.id], azurerm_subnet.subnets[*].id
)}"

关于azure - 如何在 Terraform 中将子网 ID 元组展平为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61809992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com