Ange namn och typ för underordnade resurser

Underordnade resurser är resurser som bara finns inom kontexten för en annan resurs. Ett tillägg för virtuella datorer kan till exempel inte finnas utan en virtuell dator. Tilläggsresursen är underordnad den virtuella datorn.

Varje överordnad resurs accepterar endast vissa resurstyper som underordnade resurser. Resurstypen för den underordnade resursen innehåller resurstypen för den överordnade resursen. Till exempel Microsoft.Web/sites/config , och Microsoft.Web/sites/extensions är båda underordnade resurser i Microsoft.Web/sites. De godkända resurstyperna anges i mallschemat för den överordnade resursen.

I en Azure Resource Manager-mall (ARM-mall) kan du ange den underordnade resursen antingen inom den överordnade resursen eller utanför den överordnade resursen. De värden som du anger för resursnamnet och resurstypen varierar beroende på om den underordnade resursen definieras i eller utanför den överordnade resursen.

Tips

Vi rekommenderar Bicep eftersom det har samma funktioner som ARM-mallar och syntaxen är enklare att använda. Mer information finns i underordnade resurser.

Inom den överordnade resursen

I följande exempel visas den underordnade resursen som ingår i resursegenskapen för den överordnade resursen.

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

Underordnade resurser kan bara definieras på fem nivåer.

När du har definierat inom den överordnade resurstypen formaterar du typ- och namnvärdena som ett enskilt segment utan snedstreck.

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

I följande exempel visas ett virtuellt nätverk och med ett undernät. Observera att undernätet ingår i resursmatrisen för det virtuella nätverket. Namnet är inställt på Subnet1 och typen är inställd på undernät. Den underordnade resursen markeras som beroende av den överordnade resursen eftersom den överordnade resursen måste finnas innan den underordnade resursen kan distribueras.

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

Den fullständiga resurstypen är fortfarande Microsoft.Network/virtualNetworks/subnets. Du anger Microsoft.Network/virtualNetworks/ inte eftersom det förutsätts från den överordnade resurstypen.

Det underordnade resursnamnet är inställt på Undernät1 , men det fullständiga namnet innehåller det överordnade namnet. Du anger inte VNet1 eftersom det antas från den överordnade resursen.

Extern överordnad resurs

I följande exempel visas den underordnade resursen utanför den överordnade resursen. Du kan använda den här metoden om den överordnade resursen inte distribueras i samma mall eller om du vill använda kopia för att skapa fler än en underordnad resurs.

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

När den definieras utanför den överordnade resursen formaterar du typen och med snedstreck för att inkludera den överordnade typen och namnet.

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

I följande exempel visas ett virtuellt nätverk och undernät som båda definieras på rotnivå. Observera att undernätet inte ingår i resursmatrisen för det virtuella nätverket. Namnet är inställt på VNet1/Subnet1 och typen är inställd på Microsoft.Network/virtualNetworks/subnets. Den underordnade resursen markeras som beroende av den överordnade resursen eftersom den överordnade resursen måste finnas innan den underordnade resursen kan distribueras.

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

Nästa steg