Funkcje zakresu dla szablonów usługi ARM

Resource Manager udostępnia następujące funkcje umożliwiające uzyskiwanie wartości zakresu wdrożenia w szablonie usługi Azure Resource Manager (szablon usługi ARM):

Aby uzyskać wartości z parametrów, zmiennych lub bieżącego wdrożenia, zobacz Funkcje wartości wdrożenia.

Porada

Zalecamy Bicep , ponieważ oferuje te same możliwości co szablony usługi ARM, a składnia jest łatwiejsza w użyciu. Aby dowiedzieć się więcej, zobacz funkcje zakresu .

grupa zarządzania

managementGroup()

Zwraca obiekt z właściwościami z grupy zarządzania w bieżącym wdrożeniu.

W pliku Bicep użyj funkcji zakresu managementGroup .

Uwagi

managementGroup() można używać tylko we wdrożeniach grup zarządzania. Zwraca bieżącą grupę zarządzania dla operacji wdrażania. Użyj polecenia , aby uzyskać właściwości dla bieżącej grupy zarządzania.

Wartość zwracana

Obiekt z właściwościami bieżącej grupy zarządzania.

Przykład grupy zarządzania

Poniższy przykład zwraca właściwości dla bieżącej grupy zarządzania.

{
  "$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')]"
    }
  }
}

Zostanie zwrócona następująca wartość:

"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"
  }
}

W następnym przykładzie zostanie utworzona nowa grupa zarządzania i zostanie użyta ta funkcja do ustawienia nadrzędnej grupy zarządzania.

{
  "$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()

Zwraca obiekt reprezentujący bieżącą grupę zasobów.

W Bicep użyj funkcji zakresu resourceGroup .

Wartość zwracana

Zwrócony obiekt ma następujący format:

{
  "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}",
  "name": "{resourceGroupName}",
  "type":"Microsoft.Resources/resourceGroups",
  "location": "{resourceGroupLocation}",
  "managedBy": "{identifier-of-managing-resource}",
  "tags": {
  },
  "properties": {
    "provisioningState": "{status}"
  }
}

Właściwość managedBy jest zwracana tylko dla grup zasobów, które zawierają zasoby zarządzane przez inną usługę. W przypadku aplikacji zarządzanych, usługi Databricks i usługi AKS wartość właściwości jest identyfikatorem zasobu zarządzającego.

Uwagi

Funkcji resourceGroup() nie można używać w szablonie wdrożonym na poziomie subskrypcji. Można go używać tylko w szablonach wdrożonych w grupie zasobów. Funkcji można używać resourceGroup() w połączonym lub zagnieżdżonym szablonie (z zakresem wewnętrznym), który jest przeznaczony dla grupy zasobów, nawet jeśli szablon nadrzędny jest wdrażany w subskrypcji. W tym scenariuszu połączony lub zagnieżdżony szablon jest wdrażany na poziomie grupy zasobów. Aby uzyskać więcej informacji na temat określania wartości docelowej grupy zasobów we wdrożeniu na poziomie subskrypcji, zobacz Deploy Azure resources to more than one subscription or resource group (Wdrażanie zasobów platformy Azure w więcej niż jednej subskrypcji lub grupie zasobów).

Typowym zastosowaniem funkcji resourceGroup jest utworzenie zasobów w tej samej lokalizacji co grupa zasobów. W poniższym przykładzie użyto lokalizacji grupy zasobów dla domyślnej wartości parametru.

"parameters": {
  "location": {
    "type": "string",
    "defaultValue": "[resourceGroup().location]"
  }
}

Możesz również użyć resourceGroup funkcji , aby zastosować tagi z grupy zasobów do zasobu. Aby uzyskać więcej informacji, zobacz Stosowanie tagów z grupy zasobów.

W przypadku używania szablonów zagnieżdżonych do wdrożenia w wielu grupach zasobów można określić zakres oceny resourceGroup funkcji. Aby uzyskać więcej informacji, zobacz Wdrażanie zasobów platformy Azure w więcej niż jednej subskrypcji lub grupie zasobów.

Przykład grupy zasobów

Poniższy przykład zwraca właściwości grupy zasobów.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "resourceGroupOutput": {
      "type": "object",
      "value": "[resourceGroup()]"
    }
  }
}

Powyższy przykład zwraca obiekt w następującym formacie:

{
  "id": "/subscriptions/{subscription-id}/resourceGroups/examplegroup",
  "name": "examplegroup",
  "type":"Microsoft.Resources/resourceGroups",
  "location": "southcentralus",
  "properties": {
    "provisioningState": "Succeeded"
  }
}

subskrypcja

subscription()

Zwraca szczegóły dotyczące subskrypcji dla bieżącego wdrożenia.

W aplikacji Bicep użyj funkcji zakresu subskrypcji .

Wartość zwracana

Funkcja zwraca następujący format:

{
  "id": "/subscriptions/{subscription-id}",
  "subscriptionId": "{subscription-id}",
  "tenantId": "{tenant-id}",
  "displayName": "{name-of-subscription}"
}

Uwagi

W przypadku używania szablonów zagnieżdżonych do wdrożenia w wielu subskrypcjach można określić zakres oceny funkcji subskrypcji. Aby uzyskać więcej informacji, zobacz Wdrażanie zasobów platformy Azure w więcej niż jednej subskrypcji lub grupie zasobów.

Przykład subskrypcji

Poniższy przykład przedstawia funkcję subskrypcji o nazwie w sekcji danych wyjściowych.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "subscriptionOutput": {
      "type": "object",
      "value": "[subscription()]"
    }
  }
}

Dzierżawy

tenant()

Zwraca dzierżawę użytkownika.

W aplikacji Bicep użyj funkcji zakresu dzierżawy .

Uwagi

tenant() można używać z dowolnym zakresem wdrożenia. Zawsze zwraca bieżącą dzierżawę. Użyj tej funkcji, aby uzyskać właściwości dla bieżącej dzierżawy.

Podczas ustawiania zakresu połączonego szablonu lub zasobu rozszerzenia użyj składni: "scope": "/".

Wartość zwracana

Obiekt z właściwościami dotyczącymi bieżącej dzierżawy.

Przykład dzierżawy

Poniższy przykład zwraca właściwości dzierżawy.

{
  "$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')]"
    }
  }
}

Zostanie zwrócona następująca wartość:

"tenantResult": {
  "type": "Object",
  "value": {
    "countryCode": "US",
    "displayName": "Contoso",
    "id": "/tenants/00000000-0000-0000-0000-000000000000",
    "tenantId": "00000000-0000-0000-0000-000000000000"
  }
}

Następne kroki