Alt kaynaklar için ad ve tür ayarlama

Alt kaynaklar, yalnızca başka bir kaynağın bağlamında bulunan kaynaklardır. Örneğin, bir sanal makine uzantısısanal makine olmadan mevcut olamaz. Uzantı kaynağı, sanal makinenin alt öğesidir.

Her üst kaynak yalnızca belirli kaynak türlerini alt kaynak olarak kabul eder. Alt kaynağın kaynak türü, üst kaynağın kaynak türünü içerir. Örneğin, Microsoft.Web/sites/config ve Microsoft.Web/sites/extensions her ikisi de öğesinin Microsoft.Web/sitesalt kaynaklarıdır. Kabul edilen kaynak türleri, üst kaynağın şablon şemasında belirtilir.

Azure Resource Manager şablonunda (ARM şablonu), alt kaynağı üst kaynak içinde veya üst kaynağın dışında belirtebilirsiniz. Kaynak adı ve kaynak türü için sağladığınız değerler, alt kaynağın üst kaynağın içinde mi yoksa dışında mı tanımlandığına bağlı olarak değişir.

İpucu

ARM şablonlarıyla aynı özellikleri sunduğundan ve söz diziminin kullanımı daha kolay olduğundan Bicep'i öneririz. Daha fazla bilgi edinmek için bkz. alt kaynaklar.

Üst kaynak içinde

Aşağıdaki örnekte, üst kaynağın resources özelliğine dahil edilen alt kaynak gösterilmektedir.

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

Alt kaynaklar yalnızca beş düzey derinde tanımlanabilir.

Üst kaynak türü içinde tanımlandığında, tür ve ad değerlerini eğik çizgi olmadan tek bir segment olarak biçimlendirirsiniz.

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

Aşağıdaki örnekte bir sanal ağ ve bir alt ağ gösterilmektedir. Alt ağın sanal ağ için kaynaklar dizisine dahil olduğuna dikkat edin. Ad Subnet1 olarak, tür ise alt ağlar olarak ayarlanır. Alt kaynağın dağıtılabilmesi için üst kaynağın mevcut olması gerektiğinden, alt kaynak üst kaynağa bağımlı olarak işaretlenir.

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

Tam kaynak türü hala Microsoft.Network/virtualNetworks/subnetsşeklindedir. Üst kaynak türünden varsayıldığı için sağlamazsınız Microsoft.Network/virtualNetworks/ .

Alt kaynak adı Subnet1 olarak ayarlanmıştır, ancak tam ad üst adı içerir. Üst kaynaktan varsayıldığı için VNet1 sağlamazsınız.

Dış üst kaynak

Aşağıdaki örnekte üst kaynağın dışındaki alt kaynak gösterilmektedir. Üst kaynak aynı şablonda dağıtılmadıysa veya birden fazla alt kaynak oluşturmak için kopya kullanmak istiyorsanız bu yaklaşımı kullanabilirsiniz.

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

Üst kaynağın dışında tanımlandığında, üst türü ve adı içerecek şekilde tür ve ad değerlerini eğik çizgilerle biçimlendirirsiniz.

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

Aşağıdaki örnekte, kök düzeyinde tanımlanan bir sanal ağ ve alt ağ gösterilmektedir. Alt ağın sanal ağ için kaynaklar dizisine dahil olmadığına dikkat edin. Ad VNet1/Subnet1 olarak, tür ise olarak Microsoft.Network/virtualNetworks/subnetsayarlanır. Alt kaynağın dağıtılabilmesi için üst kaynağın mevcut olması gerektiğinden, alt kaynak üst kaynağa bağımlı olarak işaretlenir.

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

Sonraki adımlar