Поделиться через


Функции области для шаблонов ARM

Azure Resource Manager предоставляет следующие функции для получения значений области развертывания в шаблоне Azure Resource Manager (шаблон ARM):

Сведения о получении значений из параметров, переменных или текущего развертывания см. в функциях значений развертывания.

Подсказка

Bicep рекомендуется, так как он предлагает те же возможности, что и шаблоны ARM, и синтаксис проще использовать. Дополнительные сведения см. в разделе scope "Функции".

managementGroup

managementGroup()

Возвращает объект со свойствами из группы управления в текущем развертывании.

В Bicep используйте функцию managementGroup области.

Замечания

managementGroup() можно использовать только в развертываниях группы управления. Она возвращает текущую группу управления для операции развертывания. Используйте его для получения свойств текущей группы управления.

Возвращаемое значение

Объект со свойствами текущей группы управления.

Пример группы управления

В следующем примере возвращаются свойства для текущей группы управления:

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

Возвращается следующее:

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

Следующий пример создает новую группу управления и использует эту функцию для задания родительской группы управления:

{
  "$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": "2024-02-01-preview",
      "scope": "/",
      "name": "[parameters('mgName')]",
      "properties": {
        "details": {
          "parent": {
            "id": "[managementGroup().id]"
          }
        }
      }
    }
  ],
  "outputs": {
    "newManagementGroup": {
      "type": "string",
      "value": "[parameters('mgName')]"
    }
  }
}

resourceGroup

resourceGroup()

Возвращает объект, представляющий текущую группу ресурсов.

В Bicep используйте функцию resourceGroup области.

Возвращаемое значение

Возвращаемый объект находится в следующем формате:

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

Свойство managedBy возвращается только для групп ресурсов, содержащих ресурсы, управляемые другой службой. Для управляемых приложений, Databricks и AKS значение свойства является идентификатором ресурса управления.

Замечания

Функцию resourceGroup() нельзя использовать в шаблоне, развернутом на уровне подписки. Его можно использовать только в шаблонах, развернутых в группе ресурсов. Функцию можно использовать resourceGroup() в связанном или вложенном шаблоне (с внутренней областью), предназначенной для группы ресурсов, даже если родительский шаблон развертывается в подписке. В этом сценарии связанный или вложенный шаблон развертывается на уровне группы ресурсов. Дополнительные сведения о целевой группе ресурсов в развертывании уровня подписки см. в статье "Развертывание ресурсов Azure в нескольких подписках или группах ресурсов".

Обычно функция resourceGroup используется для создания ресурсов в том же расположении, что и группа ресурсов. В следующем примере используется расположение группы ресурсов для значения параметра по умолчанию.

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

Вы также можете использовать функцию resourceGroup для применения тегов из группы ресурсов к ресурсу. Дополнительные сведения см. в разделе "Применение тегов из группы ресурсов".

При использовании вложенных шаблонов для развертывания в нескольких группах ресурсов можно указать область для оценки resourceGroup функции. Дополнительные сведения см. в статье "Развертывание ресурсов Azure в нескольких подписках или группах ресурсов".

Пример группы ресурсов

В следующем примере возвращаются свойства группы ресурсов:

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

В предыдущем примере объект возвращается в следующем формате:

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

подписка

subscription()

Возвращает сведения о подписке для текущего развертывания.

В Bicep используйте функцию subscription области.

Возвращаемое значение

Функция возвращает следующий формат:

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

Замечания

При использовании вложенных шаблонов для развертывания в нескольких подписках можно указать область для оценки subscription функции. Дополнительные сведения см. в статье "Развертывание ресурсов Azure в нескольких подписках или группах ресурсов".

Пример подписки

В следующем примере показана функция, вызванная subscription в разделе выходных данных :

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

Возвращает клиент пользователя.

В Bicep используйте функцию tenant области.

Замечания

tenant() можно использовать с любой областью развертывания. Он всегда возвращает текущий клиент. Используйте эту функцию для получения свойств для текущего клиента.

При настройке области для связанного шаблона или ресурса расширения используйте синтаксис: "scope": "/"

Возвращаемое значение

Объект со свойствами текущего клиента.

Пример клиента

В следующем примере возвращаются свойства для клиента:

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

Возвращается следующее:

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

Дальнейшие шаги