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