Azure ARM错误“ ResourceReferenceUsesWrongSubscriptionId”

问题描述

我正在尝试部署一个应用程序网关,该应用程序网关所引用的子网与我要部署应用程序网关的位置不同。

部署脚本如下所示(省略文件的其余部分以降低复杂性):

变量:

"variables": {
    "virtualNetworksExternalId": "[resourceId('<another-subscription-id>','<resource-group-name>','Microsoft.Network/virtualNetworks/subnets','<resource-name>','<subnet-name>')]"
},

网关资源

{
    "type": "Microsoft.Network/applicationGateways","apiVersion": "2020-05-01","name": "[parameters('applicationGatewayName')]","location": "westeurope","properties": {
        "gatewayIPConfigurations": [
            {
                "name": "appGatewayIpConfig","properties": {
                    "subnet": {
                        "id": "[variables('virtualNetworksExternalId')]"
                    }
                }
            }
        ]
    }
}

但是,当我部署模板时,我从Azure中收到以下错误

Exception Details:
Error Code: ResourceReferenceUsesWrongSubscriptionId
Message: Property subnet of resource /subscriptions/<current-subscription-id>/resourceGroups/<name-of-rg>/providers/Microsoft.Network/applicationGateways/<name-of-appliationgateway> can only reference resources in subscription(s) <current-subscription-id>. Value /subscriptions/<another-subscription-id>/resourceGroups/<name-of-network>/providers/Microsoft.Network/virtualNetworks/<name-of-net>/subnets/<name-of-subnet> references wrong subscription.

是否不可能通过ARM引用另一个订阅中的资源,或者我做错了其他事情?

解决方法

问题不是使用ARM模板,而是应用程序网关如何工作。

“ Application Gateway是您的虚拟网络中的专用部署。”因此,它不能用于交叉订阅。

https://docs.microsoft.com/en-us/azure/application-gateway/application-gateway-faq