问题描述
我有一个 Azure 蓝图,用于部署 Azure ACR 集群。创建集群也会触发创建集群的 publicIPAddresses。我需要获取该 IP 的资源 ID,以便能够自动为该 IP 分配 DNS/A 记录。
我在artifact中想到了这个输出记录,它创建了ACR Cluster:
"outputs": {
"IPAddress": {
"type": "string","value": "[reference(resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))).id]"
},}
,我认为这可以帮助我动态获取该资源 ID,但它似乎不起作用。有人可以指出,我做错了什么吗?
谢谢!
解决方法
尝试将“Full”添加到您的 reference() 函数调用中,这会指示调用返回所有属性,包括 id。
,实际上,如果你只想获取资源Id,你只需要使用函数resourceId()
,而不是reference()
。所以输出的值应该是这样的:
"value": "[resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))]"
请注意,也许您想创建一个 AKS 集群,ACR 是一个存储 docker 镜像的容器注册表,它不需要公共 IP 地址。