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


Функции развертывания для Bicep

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

Средство развертывания

deployer()

Возвращает сведения о субъекте (удостоверении), инициируемом текущее развертывание. Субъект может быть пользователем, субъектом-службой или управляемым удостоверением в зависимости от способа запуска развертывания.

Пространство имен: az.

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

Эта функция возвращает объект с подробными сведениями о субъекте развертывания, в том числе:

  • objectId: идентификатор объекта Идентификатора Microsoft Entra субъекта.
  • tenantId: идентификатор клиента Идентификатора Microsoft Entra.
  • userPrincipalName: имя участника-пользователя (UPN) при наличии. Для субъектов-служб или управляемых удостоверений это свойство может быть пустым.

Замечание

Возвращаемые значения зависят от контекста развертывания. Например, userPrincipalName может быть пустым для субъектов-служб или управляемых удостоверений.

{
  "objectId": "<principal-object-id>",
  "tenantId": "<tenant-id>",
  "userPrincipalName": "<user@domain.com or empty>"
}

Пример

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

output deployer object = deployer()

Пример выходных данных (значения отличаются в зависимости от развертывания):

{
  "objectId":"aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "tenantId":"aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
  "userPrincipalName":"john.doe@contoso.com"
}

Дополнительные сведения об удостоверениях Azure см. в статье "Что такое удостоверение Azure Active Directory?"

развертывание

deployment()

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

Пространство имен: az.

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

Файлы Bicep иногда компилируются в шаблоны ARM languageVersion 2.0 . Поэтому проверка типа Bicep рассматривает deployment() функцию для возврата только подмножества свойств, как будет возвращено в шаблоне ARM languageVersion 2.0. Дополнительные сведения см. в функции deployment() для languageVersion 2.0.

Пример

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

output deploymentOutput object = deployment()

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

{
  "name": "deploymentOutput",
  "location": "",
  "properties": {
    "template": {
      "contentVersion": "1.0.0.0",
      "metadata": {
        "_EXPERIMENTAL_WARNING": "This template uses ARM features that are experimental. Experimental features should be enabled for testing purposes only, as there are no guarantees about the quality or stability of these features. Do not enable these settings for any production usage, or your production environment may be subject to breaking.",
        "_EXPERIMENTAL_FEATURES_ENABLED": [
          "Asserts"
        ],
        "_generator": {
          "name": "bicep",
          "version": "0.39.26.7824",
          "templateHash": "10348958332696598785"
        }
      }
    }
  }
}

окружающая среда

environment()

Возвращает сведения о среде Azure, используемой для развертывания. Функция environment() не знает о конфигурациях ресурсов. Он может возвращать только один DNS-суффикс по умолчанию для каждого типа ресурса.

Пространство имен: az.

Замечания

Чтобы просмотреть список зарегистрированных сред для вашей учетной записи, используйте az cloud list или Get-AzEnvironment.

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

Эта функция возвращает свойства для текущей среды Azure. В примере ниже показаны свойства для глобальной среды Azure. Национальные облака могут возвращать немного другие свойства.

{
  "name": "",
  "gallery": "",
  "graph": "",
  "portal": "",
  "graphAudience": "",
  "activeDirectoryDataLake": "",
  "batch": "",
  "media": "",
  "sqlManagement": "",
  "vmImageAliasDoc": "",
  "resourceManager": "",
  "authentication": {
    "loginEndpoint": "",
    "audiences": [
      "",
      ""
    ],
    "tenant": "",
    "identityProvider": ""
  },
  "suffixes": {
    "acrLoginServer": "",
    "azureDatalakeAnalyticsCatalogAndJob": "",
    "azureDatalakeStoreFileSystem": "",
    "azureFrontDoorEndpointSuffix": "",
    "keyvaultDns": "",
    "sqlServerHostname": "",
    "storage": ""
  }
}

Пример

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

output environmentOutput object = environment()

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

{
  "name": "AzureCloud",
  "gallery": "https://gallery.azure.com/",
  "graph": "https://graph.windows.net/",
  "portal": "https://portal.azure.com",
  "graphAudience": "https://graph.windows.net/",
  "activeDirectoryDataLake": "https://datalake.azure.net/",
  "batch": "https://batch.core.windows.net/",
  "media": "https://rest.media.azure.net",
  "sqlManagement": "https://management.core.windows.net:8443/",
  "vmImageAliasDoc": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/quickstart-templates/aliases.json",
  "resourceManager": "https://management.azure.com/",
  "authentication": {
    "loginEndpoint": "https://login.microsoftonline.com/",
    "audiences": [ "https://management.core.windows.net/", "https://management.azure.com/" ],
    "tenant": "common",
    "identityProvider": "AAD"
  },
  "suffixes": {
    "acrLoginServer": ".azurecr.io",
    "azureDatalakeAnalyticsCatalogAndJob": "azuredatalakeanalytics.net",
    "azureDatalakeStoreFileSystem": "azuredatalakestore.net",
    "azureFrontDoorEndpointSuffix": "azurefd.net",
    "keyvaultDns": ".vault.azure.net",
    "sqlServerHostname": ".database.windows.net",
    "storage": "core.windows.net"
  }
}

Следующие шаги