3

问题描述 投票:0回答:1

我创建了一个模板,旨在部署一个完整的网络解决方案,其中包括2个子网、vnet、vnetgw和pubip。我正在寻找一种方法来程序化地引用一些资源ID,使模板更加动态化,并能尽可能多次使用。请看下面的错误。

New-AzResourceGroupDeployment: 行virtualNetworkGateways'rgvnetdev-vnetgw'失败的消息'{ "error": { "code": "InvalidTemplate", "message": "无法处理资源'subscriptions77dd2569-6341-4c72-880d-ef59413db99eresourceGroupsrg-vnet-devprovidersMicrosoft.NetworkvirtualNetworkGatewaysrgvnetdev-vnetgw'的模板语言表达式,在行'279'和列'9'。'无法评估模板语言函数'resourceId':类型'Microsoft.NetworkvirtualNetworkssubnets'需要'2'资源名参数。请看 https:/aka.msarm-template-expressions#resourceid。 '", "additionalInfo": [ { "type": "TemplateViolation", "info": "lineNumber": 279, "linePosition": 9, "path": "" } } ] } }

如果这能帮助解决我的问题,我很乐意分享代码。该错误涉及到引用vnet dependon来创建vnetgw。

arm-template azure-virtual-network vnet azure-public-ip
1个回答
0
投票

从错误信息来看,似乎引用的子网ID无效。这个函数 资源ID 格式是

resourceId([subscriptionId], [resourceGroupName], resourceType, resourceName1, [resourceName2], ...)

在这种情况下,你可能在'279'行缺少VNet名称,引用的子网ID应该是这样的。

 "subnet": {
            "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnet1Name'))]"
          },

0
投票
       {
       "type": "Microsoft.Network/virtualNetworkGateways",
       "apiVersion": "2019-12-01",
       "name": "[variables('vnetgwname')]",
       "location": "[parameters('Location')]",
       "dependsOn": [
           "[resourceId('Microsoft.Network/publicIPAddresses',variables('pubIp'))]",
           "[resourceId('Microsoft.Network/virtualNetworks',variables('VNetName'))]"
       ],
       "properties": {
           "ipConfigurations": [
               {
                   "name": "vnetgatewayconfig",
                   "properties": {
                       "publicIPAddress": {
                           "id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('pubIp'))]"
                       },
                       "subnet": {
                           "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets',variables('VNetName'),variables('Uniquegwsubnet'))]"
                       },
                       "privateIPAllocationMethod": "[parameters('publicIPAllocationMethod')]"
                   }
               }
           ],
           "sku": {
               "name": "[parameters('sku')]",
               "tier": "[parameters('sku')]"
           },
           "gatewayType": "[parameters('gatewayType')]",
           "vpnType": "[parameters('VpnType')]",
           "activeActive": false,
           "enableBgp": false,
           "vpnGatewayGeneration": "[parameters('vpnGatewayGeneration')]"
       }
   },
© www.soinside.com 2019 - 2024. All rights reserved.