Azure ARM 错误 "ResourceReferenceUsesWrongSubscriptionId"

Azure ARM error "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 模板的使用,而在于应用程序网关的工作方式。

“应用程序网关是虚拟网络中的专用部署。”因此,它不能用于交叉订阅。

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