[英]ARM Template - Get a private ip address from a network interface id
我有一个由 ARM 模板创建的网络接口:
"type": "Microsoft.Network/networkInterfaces",
"apiVersion": "2020-11-01",
"name": "[parameters('networkInterfaces_test_0_eth0_name')]",
"location": "westeurope",
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworks_vpc_name'), 'subnet_signaling_int')]",
"[resourceId('Microsoft.Network/networkSecurityGroups', parameters('networkSecurityGroups_sg_int_signal_name'))]"
],
"properties": {
"ipConfigurations": [
{
"name": "[concat(parameters('networkInterfaces_test_0_eth0_name'), '_static')]",
"properties": {
"privateIPAddress": "192.168.0.93",
"privateIPAllocationMethod": "Static",
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworks_vpc_name'), 'subnet_signaling_int')]"
},
"primary": true,
"privateIPAddressVersion": "IPv4"
}
},
{
"name": "[concat(parameters('networkInterfaces_test_0_eth0_name'), '_virtual')]",
"properties": {
"privateIPAddress": "192.168.0.82",
"privateIPAllocationMethod": "Static",
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworks_vpc_name'), 'subnet_signaling_int')]"
},
"primary": false,
"privateIPAddressVersion": "IPv4"
}
}
],
"dnsSettings": {
"dnsServers": []
},
"enableAcceleratedNetworking": false,
"enableIPForwarding": false,
"networkSecurityGroup": {
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', parameters('networkSecurityGroups_sg_int_signal_name'))]"
}
}
},
现在在另一个 arm 模板中,我需要检索地址 192.168.0.82 来设置 VM 标签,我该怎么做?
我用接口 ID 设置了一个变量
"variables" : {
"test" : "[resourceId('Microsoft.Network/networkInterfaces', parameters('networkInterfaces_oam_0_eth0_name'))]"
这对于 ARM 模板是不可能的,您无法检索现有资源的属性(嗯,在某种意义上您可以使用reference() function但它不适用于标签 - 这适用于有限的用例,在属性中例如资源,而不是变量)。
您可以改为使用 powershell 脚本,该脚本会为您提取此值并将其作为参数放入第二个 ARM 模板中。
或者您可以尝试使用 Bicep - 请参阅Bicep 中的现有资源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.