Шаблон ARM - создание шаблона для VirtualnetworkGateway, объединенного в один шаблон - PullRequest
0 голосов
/ 28 мая 2020

Я создал шаблон, который предназначен для развертывания полного сетевого решения, которое включает 2 подсети, vnet, vnetgw и pubip. Я ищу способ программно ссылаться на некоторые идентификаторы ресурса, чтобы сделать шаблон более динамичным c и его можно было использовать столько раз, сколько возможно. во-вторых, шаблоны генерируют ошибку при развертывании, которая, очевидно, является результатом упомянутых ранее ссылок. Пожалуйста, обратите внимание на ошибку ниже:

New-AzResourceGroupDeployment: Line | 3 | New-AzResourceGroupDeployment -ResourceGroupName rg- vnet -dev -Templat… | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ | 19:05:58 - Ресурс Microsoft.Network/virtualNetworkGateways 'rgvnetdev-vnetgw' завершился ошибкой с сообщением '{"error": {"code": "InvalidTemplate", "message": "Невозможно обработать выражения языка шаблонов для ресурса' / subscriptions / 77dd2569-6341-4c72-880d-ef59413db99e / resourceGroups / rg- vnet -dev / sizes / Microsoft.Network / virtualNetworkGateways / rgvnetdev-vnetgw »в строке« 279 »и столбце« 9 ». Невозможно оценить шаблон языковая функция 'resourceId': тип 'Microsoft.Network/virtualNetworks/subnets' требует аргументов имени ресурса '2'. Подробнее об использовании см. https://aka.ms/arm-template-expressions/#resourceid. '"," additionalInfo ": [{"type": "TemplateViolation", "info": {"lineNumber": 279, "linePosition": 9, "path": ""}}]}}

Я буду рада поделиться кодом, если это поможет в решении моей проблемы. Ошибка связана с ссылкой на vnet зависимость для создания vnetgw.

Ответы [ 2 ]

0 голосов
/ 28 мая 2020
       {
       "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')]"
       }
   },
0 голосов
/ 28 мая 2020

Из сообщения об ошибке кажется, что указанный su bnet id недействителен. Эта функция resourceId имеет формат

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

В этом случае вам, вероятно, не хватает имени VNet в строке '279', ссылка на su bnet id должна быть такой:

 "subnet": {
            "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnet1Name'))]"
          },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...