簡體   English   中英

Azure ARM模板不同的資源組依賴關系問題

[英]Azure ARM Template different Resource Group Dependency Issue

我有一個模板,可以在VNET的專用資源組中部署新模板。 我想在VNET的子網中部署網絡接口,但是將網絡接口放在其自己的單獨資源組中。 運行模板時,出現以下錯誤。 我確定這是一個依賴關系問題,但是dependsOn參數對我不起作用...有什么想法嗎?

收到的錯誤

  "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"
                    }
                  }
                ]
              }
            }
          ]
        }
      }
    }
  ]
}

您需要添加:

"dependsOn": [
    "vnetNestedTemplate"
]

進行第二次部署。 在模板中,您只能依賴同一模板中的源。 由於您正在調用嵌套部署,因此它不在同一模板中(而是在嵌套模板中)。

PS。 也許您只是顯示了一個過度簡化的示例,但是為此使用嵌套部署(ESPECIALLY INLINE)毫無意義。
PPS。 我建議不要使用INLINE嵌套部署,因為它們的機制確實很奇怪

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM