You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将固定实例数的azurerm_linux_virtual_machine_scale_set内网IP设为输出变量?

可以实现,具体方案如下

当使用固定实例数的azurerm_linux_virtual_machine_scale_set时,虽然VMSS资源本身没有直接导出实例内网IP的属性,但可以通过关联的网络接口(NIC)来获取这些IP地址,具体步骤如下:

1. 利用网络接口数据源筛选VMSS实例的网卡

每个VMSS实例都会对应一个独立的网络接口,默认命名规则为[VMSS名称][实例索引](例如example-vmss0、example-vmss1)。你可以通过azurerm_network_interface数据源批量获取这些网卡:

data "azurerm_network_interface" "vmss_nics" {
  for_each = toset(range(azurerm_linux_virtual_machine_scale_set.example.instances))
  name                = "${azurerm_linux_virtual_machine_scale_set.example.name}${each.value}"
  resource_group_name = azurerm_resource_group.example.name
}

2. 定义输出变量提取内网IP

通过遍历上述数据源的结果,提取每个网卡的内网IP并输出:

output "vmss_private_ips" {
  type        = map(string)
  description = "内网IP地址列表,键为实例索引,值为对应IP"
  value = {
    for idx, nic in data.azurerm_network_interface.vmss_nics : idx => nic.ip_configuration.0.private_ip_address
  }
}

注意事项

  • 如果你的VMSS网卡使用了自定义命名规则或标签,需要调整数据源的筛选条件(比如改用tag_filter匹配特定标签)。
  • 因为实例数是固定的,range(azurerm_linux_virtual_machine_scale_set.example.instances)可以准确覆盖所有实例,避免遗漏或多余的查询。

内容的提问来源于stack exchange,提问作者muffel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 17:35:25