Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pomocí šablon Azure Resource Manager (šablon ARM) můžete nasadit do skupin prostředků, předplatných, skupin pro správu nebo tenantů. Obecně platí, že funkce šablon ARM fungují stejně pro všechny obory. Tento článek popisuje rozdíly, které existují pro některé funkce a jak tyto rozdíly závisejí na rozsahu.
Podporované funkce
Při nasazování do různých oborů zvažte následující skutečnosti:
Funkce je podporovaná
resourceGroup()pro nasazení skupin prostředků.Funkce
subscription()je podporovaná pro nasazení skupiny prostředků a předplatného.Funkce
reference()a funkce list() jsou podporovány pro všechny obory.Slouží
resourceId()k získání ID prostředku nasazeného ve skupině prostředků."subnet": { "id": "[resourceId(parameters('virtualNetworkResourceGroup'), 'Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnet1Name'))]" }subscriptionResourceId()Pomocí funkce získejte ID prostředku nasazeného v předplatném.Pokud například chcete získat ID prostředku pro definici zásady nasazenou do předplatného, použijte:
"roleDefinitionId": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'acdd72a7-3385-48ef-bd42-f606fba81ae7')]"extensionResourceId()Funkci použijte pro prostředky, které se implementují jako rozšíření skupiny pro správu. Vlastní definice zásad nasazené do skupiny pro správu jsou rozšíření skupiny pro správu.Pokud chcete získat ID prostředku pro definici vlastní zásady na úrovni skupiny pro správu, použijte:
"policyDefinitionId": "[extensionResourceId(variables('mgScope'), 'Microsoft.Authorization/policyDefinitions', parameters('policyDefinitionID'))]"tenantResourceId()Pomocí funkce získáte ID prostředku nasazeného v tenantovi. Předdefinované definice zásad jsou prostředky na úrovni tenanta. Při přiřazování předdefinovaných zásad na úrovni skupiny pro správu použijtetenantResourceIdfunkci.Chcete-li získat ID prostředku pro předdefinovanou definici zásady, použijte:
"policyDefinitionId": "[tenantResourceId('Microsoft.Authorization/policyDefinitions', parameters('policyDefinitionID'))]"
Rozlišení funkcí v oborech
Když nasadíte do více než jednoho oboru, přeloží se resourceGroup() funkce subscription() odlišně podle toho, jak šablonu určíte. Když vytvoříte odkaz na externí šablonu, funkce se vždy přeloží na rozsah pro tuto šablonu. Při vnoření šablony do nadřazené šablony použijte expressionEvaluationOptions vlastnost k určení, jestli se funkce přeloží na skupinu prostředků a odběr nadřazené šablony nebo vnořené šablony. Nastavte vlastnost na tak inner , aby se přeložila na obor pro vnořenou šablonu. Nastavte vlastnost na outer tak, aby se přeložila na rozsah nadřazené šablony.
Následující tabulka ukazuje, jestli se funkce přeloží na nadřazenou nebo vloženou skupinu prostředků a předplatné.
| Typ šablony | Scope | Řešení |
|---|---|---|
| vnořený | vnější (výchozí) | Nadřazená skupina prostředků |
| vnořený | vnitřní | Dílčí skupina prostředků |
| spojen | není k dispozici | Dílčí skupina prostředků |
Následující příklad šablony ukazuje:
- Vnořená šablona s výchozím oborem (
outer) - Vnořená šablona s oborem
inner - Propojená šablona.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2025-04-01",
"name": "defaultScopeTemplate",
"resourceGroup": "inlineGroup",
"properties": {
"mode": "Incremental",
"parameters": {},
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"resourceGroupOutput": {
"type": "string",
"value": "[resourceGroup().name]"
}
}
}
}
},
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2025-04-01",
"name": "innerScopeTemplate",
"resourceGroup": "inlineGroup",
"properties": {
"expressionEvaluationOptions": {
"scope": "inner"
},
"mode": "Incremental",
"parameters": {},
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"resourceGroupOutput": {
"type": "string",
"value": "[resourceGroup().name]"
}
}
}
}
},
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2025-04-01",
"name": "linkedTemplate",
"resourceGroup": "linkedGroup",
"properties": {
"mode": "Incremental",
"parameters": {},
"templateLink": {
"contentVersion": "1.0.0.0",
"uri": "https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/resourcegroupname.json"
}
}
}
],
"outputs": {
"parentRG": {
"type": "string",
"value": "[format('Parent resource group is {0}', resourceGroup().name)]"
},
"defaultScopeRG": {
"type": "string",
"value": "[format('Default scope resource group is {0}', reference('defaultScopeTemplate').outputs.resourceGroupOutput.value)]"
},
"innerScopeRG": {
"type": "string",
"value": "[format('Inner scope resource group is {0}', reference('innerScopeTemplate').outputs.resourceGroupOutput.value)]"
},
"linkedRG": {
"type": "string",
"value": "[format('Linked resource group is {0}', reference('linkedTemplate').outputs.resourceGroupOutput.value)]"
}
}
}
Pokud chcete otestovat předchozí šablonu a zobrazit výsledky, použijte PowerShell nebo Azure CLI.
New-AzResourceGroup -Name parentGroup -Location southcentralus
New-AzResourceGroup -Name inlineGroup -Location southcentralus
New-AzResourceGroup -Name linkedGroup -Location southcentralus
New-AzResourceGroupDeployment `
-ResourceGroupName parentGroup `
-TemplateUri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/azure-resource-manager/crossresourcegroupproperties.json
Výstup z předchozího příkladu je:
Name Type Value
=============== ========================= ==========
parentRG String Parent resource group is parentGroup
defaultScopeRG String Default scope resource group is parentGroup
innerScopeRG String Inner scope resource group is inlineGroup
linkedRG String Linked resource group is linkedgroup
Další kroky
- Další informace o definování parametrů v šabloně najdete ve struktuře a syntaxi šablon ARM.
- Tipy k řešení běžných chyb nasazení najdete v tématu řešení běžných chyb nasazení Azure pomocí Azure Resource Manageru.
- Informace o nasazení šablony, která vyžaduje token SAS, najdete v tématu nasazení privátní šablony ARM s tokenem SAS.