-1

我有一个 Azure 蓝图,它部署了一个 Azure ACR 集群。创建集群还会触发集群公共IP地址的创建。我需要获取该 IP 的资源 ID,以便能够自动将 DNS/A 记录分配给该 IP。

我想到了工件中的这个输出记录,它创建了 ACR 集群:

"outputs": {
      "IPAddress": {
          "type": "string",
          "value": "[reference(resourceId('Microsoft.Network/publicIPAddresses', variables('publicIPAddressName'))).id]"
        },
}

,我认为这可以帮助我动态获取该资源 ID,但它似乎不起作用。有人可以指出,我做错了什么?

谢谢!

4

2 回答 2

0

尝试将“Full”添加到您的 reference() 函数调用中,这会指示调用返回所有属性,包括 id。

请参阅:https ://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-resource?tabs=json#reference

于 2021-05-10T15:12:49.347 回答
0

实际上,如果你只想获取资源Id,你只需要使用函数resourceId(),而不是reference()。所以输出的值应该是这样的:

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

请注意,也许您想创建一个 AKS 集群,ACR 是一个存储 docker 映像的容器注册表,它不需要公共 IP 地址。

于 2021-05-11T01:39:14.073 回答