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. Och är till exempel Microsoft.Web/sites/configMicrosoft.Web/sites/extensions båda underordnade resurser för 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 överordnad resurs

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 fem nivåer djupt.

När du har definierat inom den överordnade resurstypen formaterar du typ- och namnvärdena som ett enda 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 antas från den överordnade resurstypen.

Det underordnade resursnamnet är inställt på Subnet1 , 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 kopiera för att skapa fler än en underordnad resurs.

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

När det definieras utanför den överordnade resursen formaterar du typ- och namnvärdena 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