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
- Opis sekcji w szablonie usługi ARM można znaleźć w temacie Understand the structure and syntax of ARM templates (Omówienie struktury i składni szablonów usługi ARM).
- Aby scalić wiele szablonów, zobacz Używanie połączonych i zagnieżdżonych szablonów podczas wdrażania zasobów platformy Azure.
- Aby iterować określoną liczbę razy podczas tworzenia typu zasobu, zobacz Iteracja zasobów w szablonach usługi ARM.
- Aby zobaczyć, jak wdrożyć utworzony szablon, zobacz Deploy resources with ARM templates and Azure PowerShell (Wdrażanie zasobów przy użyciu szablonów usługi ARM i Azure PowerShell).