Oborové funkce pro šablony ARM
Resource Manager poskytuje následující funkce pro získání hodnot rozsahu nasazení v šabloně Azure Resource Manageru (šablona ARM):
Pokud chcete získat hodnoty z parametrů, proměnných nebo aktuálního nasazení, podívejte se na funkce hodnot nasazení.
Tip
Doporučujeme Bicep, protože nabízí stejné možnosti jako šablony ARM a syntaxe se snadněji používá. Další informace najdete v tématu Funkce oboru .
managementGroup
managementGroup()
Vrátí objekt s vlastnostmi ze skupiny pro správu v aktuálním nasazení.
V Bicep použijte funkci oboru managementGroup .
Poznámky
managementGroup()
lze použít pouze v nasazení skupiny pro správu. Vrátí aktuální skupinu pro správu pro operaci nasazení. Slouží k získání vlastností pro aktuální skupinu pro správu.
Vrácená hodnota
Objekt s vlastnostmi aktuální skupiny pro správu.
Příklad skupiny pro správu
Následující příklad vrátí vlastnosti pro aktuální skupinu pro správu.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"variables": {
"mgInfo": "[managementGroup()]"
},
"resources": [],
"outputs": {
"mgResult": {
"type": "object",
"value": "[variables('mgInfo')]"
}
}
}
Vrátí se:
"mgResult": {
"type": "Object",
"value": {
"id": "/providers/Microsoft.Management/managementGroups/examplemg1",
"name": "examplemg1",
"properties": {
"details": {
"parent": {
"displayName": "Tenant Root Group",
"id": "/providers/Microsoft.Management/managementGroups/00000000-0000-0000-0000-000000000000",
"name": "00000000-0000-0000-0000-000000000000"
},
"updatedBy": "00000000-0000-0000-0000-000000000000",
"updatedTime": "2020-07-23T21:05:52.661306Z",
"version": "1"
},
"displayName": "Example MG 1",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
},
"type": "/providers/Microsoft.Management/managementGroups"
}
}
Další příklad vytvoří novou skupinu pro správu a použije tuto funkci k nastavení nadřazené skupiny pro správu.
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"mgName": {
"type": "string",
"defaultValue": "[format('mg-{0}', uniqueString(newGuid()))]"
}
},
"resources": [
{
"type": "Microsoft.Management/managementGroups",
"apiVersion": "2020-05-01",
"scope": "/",
"name": "[parameters('mgName')]",
"properties": {
"details": {
"parent": {
"id": "[managementGroup().id]"
}
}
}
}
],
"outputs": {
"newManagementGroup": {
"type": "string",
"value": "[parameters('mgName')]"
}
}
}
resourceGroup
resourceGroup()
Vrátí objekt, který představuje aktuální skupinu prostředků.
V Bicep použijte funkci oboru resourceGroup .
Vrácená hodnota
Vrácený objekt je v následujícím formátu:
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
"name": "{resourceGroupName}",
"type":"Microsoft.Resources/resourceGroups",
"location": "{resourceGroupLocation}",
"managedBy": "{identifier-of-managing-resource}",
"tags": {
},
"properties": {
"provisioningState": "{status}"
}
}
Vlastnost managedBy se vrátí pouze pro skupiny prostředků, které obsahují prostředky spravované jinou službou. U spravovaných aplikací, Databricks a AKS je hodnota vlastnosti ID prostředku pro správu prostředku.
Poznámky
Funkci resourceGroup()
nelze použít v šabloně nasazené na úrovni předplatného. Dá se použít jenom v šablonách, které jsou nasazené do skupiny prostředků. Funkci můžete použít resourceGroup()
v propojené nebo vnořené šabloně (s vnitřním oborem), která cílí na skupinu prostředků, i když je nadřazená šablona nasazená do předplatného. V tomto scénáři se propojená nebo vnořená šablona nasadí na úrovni skupiny prostředků. Další informace o cílení na skupinu prostředků v nasazení na úrovni předplatného najdete v tématu Nasazení prostředků Azure do více než jednoho předplatného nebo skupiny prostředků.
Běžným použitím funkce resourceGroup je vytvoření prostředků ve stejném umístění jako skupina prostředků. Následující příklad používá umístění skupiny prostředků pro výchozí hodnotu parametru.
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
}
Funkci můžete také použít resourceGroup
k použití značek ze skupiny prostředků na prostředek. Další informace najdete v tématu Použití značek ze skupiny prostředků.
Při použití vnořených šablon k nasazení do více skupin prostředků můžete určit rozsah vyhodnocení resourceGroup
funkce. Další informace najdete v tématu Nasazení prostředků Azure do více než jednoho předplatného nebo skupiny prostředků.
Příklad skupiny prostředků
Následující příklad vrátí vlastnosti skupiny prostředků.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"resourceGroupOutput": {
"type": "object",
"value": "[resourceGroup()]"
}
}
}
Předchozí příklad vrátí objekt v následujícím formátu:
{
"id": "/subscriptions/{subscription-id}/resourceGroups/examplegroup",
"name": "examplegroup",
"type":"Microsoft.Resources/resourceGroups",
"location": "southcentralus",
"properties": {
"provisioningState": "Succeeded"
}
}
předplatné
subscription()
Vrátí podrobnosti o předplatném pro aktuální nasazení.
V Bicep použijte funkci oboru předplatného.
Vrácená hodnota
Funkce vrátí následující formát:
{
"id": "/subscriptions/{subscription-id}",
"subscriptionId": "{subscription-id}",
"tenantId": "{tenant-id}",
"displayName": "{name-of-subscription}"
}
Poznámky
Při použití vnořených šablon k nasazení do více předplatných můžete určit rozsah pro vyhodnocení funkce předplatného. Další informace najdete v tématu Nasazení prostředků Azure do více než jednoho předplatného nebo skupiny prostředků.
Příklad předplatného
Následující příklad ukazuje funkci předplatného volanou v části výstupy.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"subscriptionOutput": {
"type": "object",
"value": "[subscription()]"
}
}
}
tenant
tenant()
Vrátí tenanta uživatele.
V Bicep použijte funkci oboru tenanta.
Poznámky
tenant()
lze použít s libovolným oborem nasazení. Vždy vrátí aktuálního tenanta. Tato funkce slouží k získání vlastností pro aktuálního tenanta.
Při nastavování oboru propojené šablony nebo prostředku rozšíření použijte syntaxi: "scope": "/"
.
Vrácená hodnota
Objekt s vlastnostmi o aktuálním tenantovi.
Příklad tenanta
Následující příklad vrátí vlastnosti tenanta.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"variables": {
"tenantInfo": "[tenant()]"
},
"resources": [],
"outputs": {
"tenantResult": {
"type": "object",
"value": "[variables('tenantInfo')]"
}
}
}
Vrátí se:
"tenantResult": {
"type": "Object",
"value": {
"countryCode": "US",
"displayName": "Contoso",
"id": "/tenants/00000000-0000-0000-0000-000000000000",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}
}
Další kroky
- Popis oddílů v šabloně ARM najdete v tématu Vysvětlení struktury a syntaxe šablon ARM.
- Pokud chcete sloučit více šablon, přečtěte si téma Použití propojených a vnořených šablon při nasazování prostředků Azure.
- Pokud chcete iterovat zadaný počet opakování při vytváření typu prostředku, přečtěte si téma Iterace prostředků v šablonách ARM.
- Pokud chcete zjistit, jak nasadit šablonu, kterou jste vytvořili, přečtěte si téma Nasazení prostředků pomocí šablon ARM a Azure PowerShellu.