Omfångsfunktioner för ARM-mallar

Resource Manager innehåller följande funktioner för att hämta distributionsomfångsvärden 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.

Tips

Vi rekommenderar Bicep eftersom det har 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.

Använd omfångsfunktionen managementGroup i Bicep.

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": "00000000-0000-0000-0000-000000000000"
    },
    "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 funktionen resourceGroup-omfång .

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 den hanterande resursen.

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 resursgruppen.

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.

I Bicep använder du prenumerationsomfångsfunktionen.

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 klientomfångsfunktionen.

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 för den aktuella klientorganisationen.

Klientexempel

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": "00000000-0000-0000-0000-000000000000"
  }
}

Nästa steg