ARM 模板 - 为虚拟网络网关创建模板,并将其合并到单个模板中



我创建了一个模板,旨在部署完整的网络解决方案,其中包括 2 子网、vnet、vnetgw 和 pubip。我正在寻找一种以编程方式引用某些资源 ID 的方法,以便它使模板更加动态并且可以尽可能多地使用。其次,模板在部署时生成错误,这显然是我前面提到的引用的结果。请参阅下面的错误;

新建 Az 资源组部署:行 | 3 | New-AzResourceGroupDeployment -ResourceGroupName rg-vnet-dev -templat ... | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |19:05:58 - 资源 Microsoft.Network/virtualNetworkGateways 'rgvnetdev-vnetgw' 失败,消息"{ "错误": { "代码": "无效模板", "消息": "无法处理资源的模板语言表达式 '/subscriptions/77dd2569-6341-4c72-880d-ef59413db99e/resourceGroups/rg-vnet-dev/providers/Microsoft.Network/virtualNetworkGateways/rgvnetdev-vnetgw' 在"279"行和"9"列。'无法评估模板语言 函数 'resourceId':类型 "Microsoft.网络/虚拟网络/子网"需要"2"资源名称 参数。请看 使用 https://aka.ms/arm-template-expressions/#resourceid 细节。 "附加信息": [ { "类型": "模板违规", "信息":{ "行号":279, "行位置": 9, "路径": " } } ] } }

如果这有助于解决我的问题,我将很乐意分享代码。该错误与引用用于创建 vnetgw 的 vnet 依赖项有关。

从错误消息来看,引用的子网 ID 似乎无效。此函数资源 ID 格式为

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

在这种情况下,你可能缺少"279"行的 VNet 名称,引用的子网 ID 应如下所示:

"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnet1Name'))]"
},
{
"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')]"
}
},

最新更新