Шаблон Azure ARM, другой вопрос зависимости группы ресурсов - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть шаблон, который развертывает новый шаблон в выделенной группе ресурсов для VNET.Я хочу развернуть сетевой интерфейс в подсети VNET, но поместить сетевой интерфейс в отдельную группу ресурсов.Когда я запускаю шаблон, я получаю следующую ошибку.Я уверен, что это проблема зависимости, но у меня не работает параметр depenOn ... есть идеи?

Полученная ошибка

  "error": {
    "code": "InvalidResourceReference",
    "message": "Resource /subscriptions/{removed-subscription-id}/resourceGroups/vnet-resource-group/providers/Microsoft.Network/virtualNetworks/my-vnet/subnets/subnet-1 referenced by resource /subscriptions/{removed-subscription-id}/resourceGroups/test-rg-1/providers/Microsoft.Network/networkInterfaces/my-first-nic was not found. Please make sure that the referenced resource exists, and that both resources are in the same region.",
    "details": []
  }
}

Шаблон

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vnetName": {
      "type": "string",
      "defaultValue": "my-vnet"
    },
    "vnetResourceGroup": {
      "type": "string",
      "defaultValue": "vnet-resource-group"
    },
    "nicResourceGroup": {
      "type": "string",
      "defaultValue": "nic-resource-group"
    }
  },
  "variables": {
    "vnetID": "[resourceId(parameters('vnetResourceGroup'), 'Microsoft.Network/virtualNetworks', parameters('vnetName'))]",
    "subnetID": "[concat(variables('vnetID'),'/subnets/','subnet-1')]"
  },
  "resources": [
    {
      "apiVersion": "2017-05-10",
      "name": "vnetNestedTemplate",
      "type": "Microsoft.Resources/deployments",
      "resourceGroup": "[parameters('vnetResourceGroup')]",
      "properties": {
        "mode": "Incremental",
        "template": {
          "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "parameters": {},
          "variables": {},
          "resources": [
            {
              "apiVersion": "2018-06-01",
              "name": "my-vnet",
              "type": "Microsoft.Network/virtualNetworks",
              "location": "[resourceGroup().location]",
              "properties": {
                "addressSpace": {
                  "addressPrefixes": [
                    "10.0.0.0/16"
                  ]
                },
                "subnets": [
                  {
                    "name": "subnet-1",
                    "properties": {
                      "addressPrefix": "10.0.0.0/24"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    },
    {
      "apiVersion": "2017-05-10",
      "name": "nestedNicTemplate",
      "type": "Microsoft.Resources/deployments",
      "resourceGroup": "[parameters('nicResourceGroup')]",
      "properties": {
        "mode": "Incremental",
        "template": {
          "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "parameters": {},
          "variables": {},
          "resources": [
            {
              "apiVersion": "2015-06-15",
              "type": "Microsoft.Network/networkInterfaces",
              "name": "my-first-nic",
              "location": "[resourceGroup().location]",
              "dependsOn": [
                "[resourceId(parameters('vnetResourceGroup'), 'Microsoft.Network/virtualNetworks', parameters('vnetName'))]"
              ],
              "properties": {
                "ipConfigurations": [
                  {
                    "name": "ipconfig1",
                    "properties": {
                      "privateIPAllocationMethod": "Static",
                      "subnet": {
                        "id": "[variables('subnetID')]"
                      },
                      "privateIpAddress": "10.0.0.5"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    }
  ]
}

1 Ответ

0 голосов
/ 27 ноября 2018

Вам необходимо добавить:

"dependsOn": [
    "vnetNestedTemplate"
]

ко второму развертыванию.в шаблоне вы можете зависеть только от источников, которые находятся в одном шаблоне.поскольку вы вызываете вложенное развертывание, оно находится не в том же шаблоне (но во вложенном шаблоне).

ps.возможно, вы просто показываете упрощенный пример, но нет смысла использовать для этого вложенное развертывание (ОСОБЕННО ВНУТРЕННЕЕ).
pps.я бы посоветовал не использовать вложенные установки INLINE, у них действительно странная механика

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...