gpt4 book ai didi

azure - 如何在 Terraform 中插入 COUNT?

转载 作者:行者123 更新时间:2023-12-03 04:46:37 25 4
gpt4 key购买 nike

我正在 Azure 中创建许多具有相应 NIC 和 PublicIP 的 VM。

我可以毫无问题地为虚拟机创建唯一的名称:

resource "azurerm_virtual_machine" "workernode" {
count = "${var.nodeCount}"
name = "workernode-${count.index +1}"

和公共(public)IP:

resource "azurerm_public_ip" "AliasworkerPubIP" {
count = "${var.nodeCount}"
name = "workerpubip${count.index +1}"

和网卡:

resource "azurerm_network_interface" "workerNIC" {
count = "${var.nodeCount}"
name = "workerNIC.${count.index +1}"

但我不知道如何让它工作,然后将 NIC 连接到刚刚创建的 PublicIP ...

尝试了各种不同的方法,但没有任何效果...我知道我错过了一些东西或者没有正确理解插值解析,但是什么?!

我尝试过的例子:

public_ip_address_id = "${azurerm_public_ip}.${format("Alias_WorkerIP%d.id", count.index +1)}" 

public_ip_address_id = "${format("Alias_WorkerIP%d.id", count.index +1)}"

public_ip_address_id = "${format("azurerm_public_ip.workerpubip.%s.id", count.index +1)}"

对我哪里出错有什么想法吗?

最佳答案

当前推荐的表达方式是:

public_ip_address_id = "${azurerm_public_ip.workerpubip.*.id[count.index]}"

使用此索引运算符 ([ ... ]) 可以让 Terraform 更好地理解这意味着的依赖关系,这样,如果只需要替换一个公共(public) IP 实例,它就可以理解:需要更新相应的 azurerm_network_interface

使用 element 函数时,Terraform 仅“看到”azurerm_public_ip.workerpubip.*.id 表达式,并保守地假设存在对 的依赖关系所有azurerm_public_ip ID。

关于azure - 如何在 Terraform 中插入 COUNT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45764606/

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