Шаблон РУКИ для 2 сетей при взаимном пиринге

#azure #arm-template

Вопрос:

Мне нужно создать пользовательский шаблон arm, который выполняет следующее:

  • создание виртуальной сети-1
  • создать виртуальную сеть-2
  • создание пиринга из виртуальной сети-1 в виртуальную сеть-2
  • создание пиринга из виртуальной сети-2 в виртуальную сеть-1

Я создал эти ресурсы вручную и сгенерировал соответствующий шаблон arm, но при попытке запустить шаблон я получаю ошибку циклической зависимости.

Любая помощь будет признательна!

Ответ №1:

 { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": {  "virtualNetworks_vnet1_name": {  "defaultValue": "vnet1",  "type": "String"  },  "virtualNetworks_vnet2_name": {  "defaultValue": "vnet2",  "type": "String"  } }, "variables": {}, "resources": [  {  "type": "Microsoft.Network/virtualNetworks",  "apiVersion": "2020-11-01",  "name": "[parameters('virtualNetworks_vnet1_name')]",  "location": "centralus",  "dependsOn": [  ],  "properties": {  "addressSpace": {  "addressPrefixes": [  "10.1.0.0/16"  ]  },  "enableDdosProtection": false  }  },  {  "type": "Microsoft.Network/virtualNetworks",  "apiVersion": "2020-11-01",  "name": "[parameters('virtualNetworks_vnet2_name')]",  "location": "centralus",  "dependsOn": [  ],  "properties": {  "addressSpace": {  "addressPrefixes": [  "10.2.0.0/16"  ]  },  "enableDdosProtection": false  }  },  {  "type": "Microsoft.Network/virtualNetworks/subnets",  "apiVersion": "2020-11-01",  "name": "[concat(parameters('virtualNetworks_vnet1_name'), '/default')]",  "dependsOn": [  "[resourceId('Microsoft.Network/virtualNetworks', parameters('virtualNetworks_vnet1_name'))]"  ],  "properties": {  "addressPrefix": "10.1.0.0/24",  "delegations": [],  "privateEndpointNetworkPolicies": "Enabled",  "privateLinkServiceNetworkPolicies": "Enabled"  }  },  {  "type": "Microsoft.Network/virtualNetworks/subnets",  "apiVersion": "2020-11-01",  "name": "[concat(parameters('virtualNetworks_vnet2_name'), '/default')]",  "dependsOn": [  "[resourceId('Microsoft.Network/virtualNetworks', parameters('virtualNetworks_vnet2_name'))]"  ],  "properties": {  "addressPrefix": "10.2.0.0/16",  "delegations": [],  "privateEndpointNetworkPolicies": "Enabled",  "privateLinkServiceNetworkPolicies": "Enabled"  }  },  {  "type": "Microsoft.Network/virtualNetworks/virtualNetworkPeerings",  "apiVersion": "2020-11-01",  "name": "[concat(parameters('virtualNetworks_vnet1_name'), '/peer1')]",  "dependsOn": [  "[resourceId('Microsoft.Network/virtualNetworks', parameters('virtualNetworks_vnet1_name'))]",  "[resourceId('Microsoft.Network/virtualNetworks', parameters('virtualNetworks_vnet2_name'))]"  ],  "properties": {  "peeringState": "Connected",  "remoteVirtualNetwork": {  "id": "[resourceId('Microsoft.Network/virtualNetworks', parameters('virtualNetworks_vnet2_name'))]"  },  "allowVirtualNetworkAccess": true,  "allowForwardedTraffic": true,  "allowGatewayTransit": false,  "useRemoteGateways": false,  "remoteAddressSpace": {  "addressPrefixes": [  "10.2.0.0/16"  ]  }  }  },  {  "type": "Microsoft.Network/virtualNetworks/virtualNetworkPeerings",  "apiVersion": "2020-11-01",  "name": "[concat(parameters('virtualNetworks_vnet2_name'), '/peer2')]",  "dependsOn": [  "[resourceId('Microsoft.Network/virtualNetworks', parameters('virtualNetworks_vnet2_name'))]",  "[resourceId('Microsoft.Network/virtualNetworks', parameters('virtualNetworks_vnet1_name'))]"  ],  "properties": {  "peeringState": "Connected",  "remoteVirtualNetwork": {  "id": "[resourceId('Microsoft.Network/virtualNetworks', parameters('virtualNetworks_vnet1_name'))]"  },  "allowVirtualNetworkAccess": true,  "allowForwardedTraffic": true,  "allowGatewayTransit": false,  "useRemoteGateways": false,  "remoteAddressSpace": {  "addressPrefixes": [  "10.1.0.0/16"  ]  }  }  } ]  

}