Udostępnij za pośrednictwem


Funkcje zakresu dla szablonów usługi ARM

Usługa 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.

Napiwek

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 .

managementGroup

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 grupy 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 pliku 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 to identyfikator zasobu zarządzającego.

Uwagi

Nie resourceGroup() można użyć funkcji w szablonie wdrożonym na poziomie subskrypcji. Można go używać tylko w szablonach wdrożonych w grupie zasobów. Możesz użyć resourceGroup() funkcji 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 wdrożony 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 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 wartości parametru domyślnego.

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

Możesz również użyć funkcji , aby zastosować resourceGroup 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 wdrażania 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 wdrażania 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

W poniższym przykładzie przedstawiono 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()]"
    }
  }
}

tenant

tenant()

Zwraca dzierżawę użytkownika.

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

Uwagi

tenant() może być używany 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 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