使用ARM模板输出VM的IP地址

有一个ARM模板( https://github.com/jmspring/arm-template-neo4j-docker/blob/master/azuredeploy.json ),它将启动一个实例并分配一个公共IP。

这里我需要输出IP地址。 我试着将以下内容添加到模板中。 但它仍然没有打印价值。

"outputs": { "ipaddress": { "type": "string", "value": "[reference(resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName')),providers('Microsoft.Network', 'publicIPAddresses').apiVersions[0]).ipAddress]" }, "VM IP address": { "type": "string", "value": "[reference(variables('publicIPAddressName')).ipAddress]" } } } 

任何的帮助将是有益的。

我用这个检索公共IP:“[参考(concat('Microsoft.Network / publicIPAddresses /',variables('masterPublicIPAddressName')))。ipAddress]”。 我用“publicIPAllocationMethod”作为“静态”

我以前曾经见过这么多次。 如果要立即获取IP地址,则需要为“publicIPAllocationMethod”属性使用静态

如果您不想使用静态(保留IP),那么您需要依赖于连接到公共IP的虚拟机(该地址将被分配)。

仅供参考,对于专用IP地址,您也可以使用以下方法返回私有IP地址(如果这也是必需的):

 reference('nic-name').ipConfigurations[0].properties.privateIPAddress 

答案确实来自Azure文档

 "value": "[reference(resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))).IpAddress]", 

使用用户名来构buildSSHloginstring:

  "Public IP SSH": { "value": "[concat( reference(resourceId('Microsoft.Compute/virtualMachines',variables('vmName'))).osProfile.adminUsername, '@', reference(resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))).IpAddress]", "type": "string" },