Omfångsfunktioner för ARM-mallar
Resource Manager innehåller följande funktioner för att hämta omfångsvärden för distribution i din Azure Resource Manager-mall (ARM-mall):
Information om hur du hämtar värden från parametrar, variabler eller den aktuella distributionen finns i Funktioner för distributionsvärde.
Dricks
Vi rekommenderar Bicep eftersom det erbjuder samma funktioner som ARM-mallar och syntaxen är enklare att använda. Mer information finns i omfångsfunktioner .
managementGroup
managementGroup()
Returnerar ett objekt med egenskaper från hanteringsgruppen i den aktuella distributionen.
I Bicep använder du omfångsfunktionen managementGroup .
Kommentarer
managementGroup()
kan endast användas i en hanteringsgruppsdistribution. Den returnerar den aktuella hanteringsgruppen för distributionsåtgärden. Använd för att hämta egenskaper för den aktuella hanteringsgruppen.
Returvärde
Ett objekt med egenskaperna för den aktuella hanteringsgruppen.
Exempel på hanteringsgrupp
I följande exempel returneras egenskaper för den aktuella hanteringsgruppen.
{
"$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')]"
}
}
}
Då returneras:
"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"
}
}
I nästa exempel skapas en ny hanteringsgrupp och den här funktionen används för att ange den överordnade hanteringsgruppen.
{
"$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()
Returnerar ett objekt som representerar den aktuella resursgruppen.
I Bicep använder du omfångsfunktionen resourceGroup .
Returvärde
Det returnerade objektet har följande format:
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
"name": "{resourceGroupName}",
"type":"Microsoft.Resources/resourceGroups",
"location": "{resourceGroupLocation}",
"managedBy": "{identifier-of-managing-resource}",
"tags": {
},
"properties": {
"provisioningState": "{status}"
}
}
Egenskapen managedBy returneras endast för resursgrupper som innehåller resurser som hanteras av en annan tjänst. För hanterade program, Databricks och AKS är värdet för egenskapen resurs-ID för hanteringsresursen.
Kommentarer
Funktionen resourceGroup()
kan inte användas i en mall som distribueras på prenumerationsnivå. Den kan bara användas i mallar som distribueras till en resursgrupp. Du kan använda resourceGroup()
funktionen i en länkad eller kapslad mall (med inre omfång) som riktar sig till en resursgrupp, även när den överordnade mallen distribueras till prenumerationen. I det scenariot distribueras den länkade eller kapslade mallen på resursgruppsnivå. Mer information om hur du riktar in dig på en resursgrupp i en distribution på prenumerationsnivå finns i Distribuera Azure-resurser till mer än en prenumeration eller resursgrupp.
En vanlig användning av funktionen resourceGroup är att skapa resurser på samma plats som resursgruppen. I följande exempel används resursgruppens plats för ett standardparametervärde.
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
}
Du kan också använda resourceGroup
funktionen för att tillämpa taggar från resursgruppen på en resurs. Mer information finns i Tillämpa taggar från resursgrupp.
När du använder kapslade mallar för att distribuera till flera resursgrupper kan du ange omfånget för att resourceGroup
utvärdera funktionen. Mer information finns i Distribuera Azure-resurser till mer än en prenumeration eller resursgrupp.
Exempel på resursgrupp
I följande exempel returneras egenskaperna för resursgruppen.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [],
"outputs": {
"resourceGroupOutput": {
"type": "object",
"value": "[resourceGroup()]"
}
}
}
Föregående exempel returnerar ett objekt i följande format:
{
"id": "/subscriptions/{subscription-id}/resourceGroups/examplegroup",
"name": "examplegroup",
"type":"Microsoft.Resources/resourceGroups",
"location": "southcentralus",
"properties": {
"provisioningState": "Succeeded"
}
}
prenumeration
subscription()
Returnerar information om prenumerationen för den aktuella distributionen.
Använd prenumerationsomfångsfunktionen i Bicep.
Returvärde
Funktionen returnerar följande format:
{
"id": "/subscriptions/{subscription-id}",
"subscriptionId": "{subscription-id}",
"tenantId": "{tenant-id}",
"displayName": "{name-of-subscription}"
}
Kommentarer
När du använder kapslade mallar för att distribuera till flera prenumerationer kan du ange omfånget för utvärdering av prenumerationsfunktionen. Mer information finns i Distribuera Azure-resurser till mer än en prenumeration eller resursgrupp.
Prenumerationsexempel
I följande exempel visas prenumerationsfunktionen som anropas i avsnittet utdata.
{
"$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()
Returnerar användarens klientorganisation.
I Bicep använder du klientomfattningsfunktionen.
Kommentarer
tenant()
kan användas med valfritt distributionsomfång. Den returnerar alltid den aktuella klientorganisationen. Använd den här funktionen för att hämta egenskaper för den aktuella klientorganisationen.
När du anger omfånget för en länkad mall eller tilläggsresurs använder du syntaxen: "scope": "/"
.
Returvärde
Ett objekt med egenskaper om den aktuella klientorganisationen.
Exempel på klientorganisation
I följande exempel returneras egenskaperna för en klientorganisation.
{
"$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')]"
}
}
}
Då returneras:
"tenantResult": {
"type": "Object",
"value": {
"countryCode": "US",
"displayName": "Contoso",
"id": "/tenants/00000000-0000-0000-0000-000000000000",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}
}
Nästa steg
- En beskrivning av avsnitten i en ARM-mall finns i Förstå strukturen och syntaxen för ARM-mallar.
- Information om hur du sammanfogar flera mallar finns i Använda länkade och kapslade mallar när du distribuerar Azure-resurser.
- Information om hur du itererar ett angivet antal gånger när du skapar en typ av resurs finns i Resursiteration i ARM-mallar.
- Information om hur du distribuerar mallen som du har skapat finns i Distribuera resurser med ARM-mallar och Azure PowerShell.