In an ARM template output, I have this:
"ip": {
"type": "string",
"value": "[reference(variables('publicIPAddressName'),'2020-07-01','Full').properties.ipAddress]"
},
or the same applies for this:
"ip": {
"type": "string",
"value": "[reference(variables('publicIPAddressName')).ipAddress]"
},
This will cause a deployment error at output evaluation, as:
The template output 'ip' is not valid: The language expression property 'ipAddress' doesn't exist, available properties are 'provisioningState, resourceGuid, publicIPAddressVersion, publicIPAllocationMethod, idleTimeoutInMinutes, dnsSettings, ipTags'.."
And indeed, I can only access the fields listed in the error message (e.g. publicIPAddressVersion)
This is weird because I can access the whole object via
"[reference(variables('publicIPAddressName'),'2020-07-01','Full')]"
which contains the ipAddress under properties, as specified.
Other people say this very example (for "ip") works for them.