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": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
},
"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": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}
}
Następne kroki
- Aby zapoznać się z opisem sekcji w szablonie usługi ARM, zobacz 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 dowiedzieć się, jak wdrożyć utworzony szablon, zobacz Wdrażanie zasobów przy użyciu szablonów usługi ARM i programu Azure PowerShell.