1

我在带有 terraformazurerm_hdinsight_kafka_cluster的 VNet ( azurerm_virtual_network) 上使用 kafka 创建了一个 HDInsight 群集。因此,我获得了由 Azure 管理服务隐式创建的 Azure 网络接口的实例。

我还创建了azurerm_public_ip打算与如上所述隐式创建的网络接口相关联的资源。

这意味着,我需要通过属性使用IP 地址更新隐式创建azurerm_network_interface的资源。azurerm_public_ippublic_ip_address_id

我在网上搜索了有关更新(隐式创建ip_configuration)的嵌套属性的任何文档,但不幸的是,没有找到任何文档。azurerm_network_interface

有人可以帮我吗?我在 azurerm 中也没有找到任何其他资源可以帮助我实现这一目标。

如果有人可以将我指向一个 azurerm 资源,我将不胜感激,我可以通过它或任何其他可能的方式来关联它。

提前致谢 :)

如何更新 azurerm_network_interface 的 ip_configuration 以添加 azurerm_public_ip?

4

1 回答 1

0

我可能找到了解决方案:

使用 terraform 中的 null_resource 通过 Azure CLI 命令执行 local_exec 应该可以解决问题。

注意:确保本地系统已安装 azure cli 作为先决条件。

例如:

resource "null_resource" "foo" {
  count = 3

  provisioner "local-exec" {
    command = <<EOT
      az --service-principal -u <USERNAME> -p '<PASSWORD>' --tenant <TENANT-ID>
      az network nic ip-config update --resource-group ${azurerm_resource_group.foo.name} --name ${azurerm_network_interface.foo[count.index].ip_configuration[0].name} --nic-name ${azurerm_network_interface.foo[count.index].name} --public-ip-address ${azurerm_public_ip.foo[count.index].id}
    EOT
  }
}

该命令可以从此处的 Azure 文档中引用。

于 2020-05-18T08:28:13.577 回答