Eu já vi isso algumas vezes antes. Se você deseja obter o endereço IP imediatamente, é necessário usar static para a propriedade "publicIPAllocationMethod".
Se você não quiser usar static (IPs reservados), então você precisa colocar uma dependência na Máquina Virtual que está conectada ao IP Público (o endereço será alocado então).
Apenas para referência também, para endereços IP privados, você pode usar o seguinte para retornar o endereço IP privado, se isso também for necessário:
reference('nic-name').ipConfigurations[0].properties.privateIPAddress