Naam en type instellen voor onderliggende resources

Onderliggende resources zijn resources die alleen bestaan binnen de context van een andere resource. Een extensie voor virtuele machines kan bijvoorbeeld niet bestaan zonder een virtuele machine. De extensieresource is een onderliggende machine van de virtuele machine.

Elke bovenliggende resource accepteert alleen bepaalde resourcetypen als onderliggende resources. Het resourcetype voor de onderliggende resource bevat het resourcetype voor de bovenliggende resource. En zijn Microsoft.Web/sites/config bijvoorbeeld Microsoft.Web/sites/extensions beide onderliggende resources van de Microsoft.Web/sites . De geaccepteerde resourcetypen worden opgegeven in het sjabloonschema van de bovenliggende resource.

In een Azure Resource Manager (ARM-sjabloon) kunt u de onderliggende resource opgeven binnen de bovenliggende resource of buiten de bovenliggende resource. De waarden die u op geeft voor de resourcenaam en het resourcetype variëren afhankelijk van of de onderliggende resource binnen of buiten de bovenliggende resource is gedefinieerd.

Binnen bovenliggende resource

In het volgende voorbeeld ziet u de onderliggende resource die is opgenomen in de eigenschap resources van de bovenliggende resource.

"resources": [
  {
    <parent-resource>
    "resources": [
      <child-resource>
    ]
  }
]

Onderliggende resources kunnen slechts vijf niveaus diep worden gedefinieerd.

Wanneer dit is gedefinieerd in het bovenliggende resourcetype, maakt u het type en de naamwaarden op als één segment zonder slashes.

"type": "{child-resource-type}",
"name": "{child-resource-name}",

In het volgende voorbeeld ziet u een virtueel netwerk en met een subnet. U ziet dat het subnet is opgenomen in de resources-matrix voor het virtuele netwerk. De naam is ingesteld op Subnet1 en het type is ingesteld op subnetten. De onderliggende resource wordt gemarkeerd als afhankelijk van de bovenliggende resource omdat de bovenliggende resource moet bestaan voordat de onderliggende resource kan worden geïmplementeerd.

"resources": [
  {
    "type": "Microsoft.Network/virtualNetworks",
    "apiVersion": "2018-10-01",
    "name": "VNet1",
    "location": "[parameters('location')]",
    "properties": {
      "addressSpace": {
        "addressPrefixes": [
          "10.0.0.0/16"
        ]
      }
    },
    "resources": [
      {
        "type": "subnets",
        "apiVersion": "2018-10-01",
        "name": "Subnet1",
        "dependsOn": [
          "VNet1"
        ],
        "properties": {
          "addressPrefix": "10.0.0.0/24"
        }
      }
    ]
  }
]

Het volledige resourcetype is nog steeds Microsoft.Network/virtualNetworks/subnets . U geeft niets op omdat wordt uitgegaan van Microsoft.Network/virtualNetworks/ het bovenliggende resourcetype.

De naam van de onderliggende resource is ingesteld op Subnet1, maar de volledige naam bevat de bovenliggende naam. U geeft VNet1 niet op omdat wordt uitgegaan van de bovenliggende resource.

Externe bovenliggende resource

In het volgende voorbeeld ziet u de onderliggende resource buiten de bovenliggende resource. U kunt deze methode gebruiken als de bovenliggende resource niet in dezelfde sjabloon is geïmplementeerd of als u kopiëren wilt gebruiken om meer dan één onderliggende resource te maken.

"resources": [
  {
    <parent-resource>
  },
  {
    <child-resource>
  }
]

Wanneer dit buiten de bovenliggende resource is gedefinieerd, formatteert u het type en met slashes om het bovenliggende type en de bovenliggende naam op te nemen.

"type": "{resource-provider-namespace}/{parent-resource-type}/{child-resource-type}",
"name": "{parent-resource-name}/{child-resource-name}",

In het volgende voorbeeld ziet u een virtueel netwerk en subnet die beide zijn gedefinieerd op hoofdniveau. U ziet dat het subnet niet is opgenomen in de resources-matrix voor het virtuele netwerk. De naam is ingesteld op VNet1/Subnet1 en het type is ingesteld op Microsoft.Network/virtualNetworks/subnets . De onderliggende resource wordt gemarkeerd als afhankelijk van de bovenliggende resource omdat de bovenliggende resource moet bestaan voordat de onderliggende resource kan worden geïmplementeerd.

"resources": [
  {
    "type": "Microsoft.Network/virtualNetworks",
    "apiVersion": "2018-10-01",
    "name": "VNet1",
    "location": "[parameters('location')]",
    "properties": {
      "addressSpace": {
        "addressPrefixes": [
          "10.0.0.0/16"
        ]
      }
    }
  },
  {
    "type": "Microsoft.Network/virtualNetworks/subnets",
    "apiVersion": "2018-10-01",
    "name": "VNet1/Subnet1",
    "dependsOn": [
      "VNet1"
    ],
    "properties": {
      "addressPrefix": "10.0.0.0/24"
    }
  }
]

Volgende stappen

  • Zie Inzicht in de structuur en syntaxis van ARM-sjablonen voor meer informatie over het maken van ARM-sjablonen.
  • Zie de referentiefunctie voor meer informatie over de indeling van de resourcenaam bij het verwijzen naar de resource.