Defina o nome e o tipo dos recursos filhos
Recursos filho são recursos que existem apenas no contexto de outro recurso. Por exemplo, uma extensão de máquina virtual não pode existir sem uma máquina virtual. O recurso de extensão é filho da máquina virtual.
Cada recurso pai aceita somente determinados tipos de recurso como recursos filho. O tipo de recurso para o recurso filho inclui o tipo de recurso para o recurso pai. Por exemplo, Microsoft.Web/sites/config
e Microsoft.Web/sites/extensions
são recursos filhos de Microsoft.Web/sites
. Os tipos de recurso aceitos são especificados no esquema do modelo do recurso pai.
Em um modelo do Azure Resource Manager (modelo ARM), você pode especificar o recurso filho dentro do recurso pai ou fora do recurso pai. Os valores fornecidos para o nome do recurso e tipo do recurso variam com base no fato de o recurso filho ser definido dentro ou fora do recurso pai.
Dica
Recomendamos o Bicep porque ele oferece as mesmas funcionalidades que os modelos do ARM e a sintaxe é mais fácil de usar. Para saber mais, confira recursos filho.
Dentro do recurso pai
O exemplo a seguir mostra o recurso filho incluído na propriedade do recurso pai.
"resources": [
{
<parent-resource>
"resources": [
<child-resource>
]
}
]
Os recursos filho só podem ser definidos em cinco níveis de profundidade.
Quando definido dentro do tipo de recurso pai, você formata os valores de tipo e nome como um único segmento sem barras.
"type": "{child-resource-type}",
"name": "{child-resource-name}",
O exemplo a seguir cria uma rede virtual e uma sub-rede. Observe que a sub-rede está incluída na matriz de recursos para a rede virtual. O nome é definido como Subnet1 e o tipo é definido como sub-redes. O recurso filho é marcado como dependente do recurso pai porque o recurso pai deve existir antes que o recurso filho possa ser implantado.
"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"
}
}
]
}
]
O tipo de recurso completo ainda é Microsoft.Network/virtualNetworks/subnets
.
Microsoft.Network/virtualNetworks/
não é fornecido porque ele é presumido do tipo de recurso pai.
O nome do recurso filho é definido como Subnet1, mas o nome completo inclui o nome pai. Você não fornece VNet1 porque é assumido a partir do recurso pai.
Recurso pai externo
O exemplo a seguir mostra o recurso filho fora do recurso pai. Você pode usar essa abordagem se o recurso pai não for implantado no mesmo modelo ou se quiser usar a cópia para criar mais de um recurso filho.
"resources": [
{
<parent-resource>
},
{
<child-resource>
}
]
Quando definido fora do recurso pai, você formata os valores de tipo e nome com barras para incluir o tipo e o nome pai.
"type": "{resource-provider-namespace}/{parent-resource-type}/{child-resource-type}",
"name": "{parent-resource-name}/{child-resource-name}",
O exemplo a seguir mostra uma rede virtual e uma sub-rede que são definidas no nível raiz. Observe que a sub-rede não está incluída na matriz de recursos da rede virtual. O nome é definido como VNet1/Subnet1 e o tipo é definido como Microsoft.Network/virtualNetworks/subnets
. O recurso filho é marcado como dependente do recurso pai porque o recurso pai deve existir antes que o recurso filho possa ser implantado.
"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"
}
}
]
Próximas etapas
- Para saber mais sobre a criação de modelos ARM, consulte Compreender a estrutura e a sintaxe dos modelos ARM.
- Para saber mais sobre o formato do nome do recurso ao referenciar o recurso, consulte a função de referência.