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


Добавление и настройка определения среды

В этой статье объясняется, как добавить, обновить или удалить определение среды в каталоге сред развертывания Azure. В нем также объясняется, как ссылаться на образ контейнера для развертывания среды.

В средах развертывания Azure вы используете каталог для предоставления группам разработчиков курированного набора готовых шаблонов инфраструктуры в виде кода (IaC), называемых определениями среды.

Определение среды состоит по крайней мере из двух файлов:

  • Шаблон из платформы IaC. Например:
    • Шаблон Azure Resource Manager (ARM) может использовать файл с именем azuredeploy.json.
    • Шаблон Bicep может использовать файл с именем main.bicep.
    • Шаблон Terraform может использовать файл с именем azuredeploy.tf.
  • Файл конфигурации, предоставляющий метаданные о шаблоне. Этот файл должен называться environment.yaml.

Команды разработчиков используют определения среды, предоставляемые в каталоге, для развертывания сред в Azure.

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

После добавления каталога в центр разработки служба проверяет указанный путь к папке, чтобы определить папки, содержащие шаблон и связанный файл среды. Указанный путь к папке должен быть папкой, содержащей вложенные папки, содержащие файлы определения среды.

Добавление определения среды

Чтобы добавить определение среды в каталог в средах развертывания Azure (ADE), сначала добавьте файлы в репозиторий. Затем вы синхронизируете каталог центра разработки с обновленным репозиторием.

Чтобы добавить определение среды, выполните приведенные действия.

  1. В репозитории GitHub или Azure DevOps создайте вложенную папку в пути к папке репозитория.

  2. Добавьте два файла в вложенную папку репозитория:

    • Файл шаблона IaC.

    • Среда в виде YAML-файла.

      Файл environment.yaml содержит метаданные, связанные с шаблоном IaC.

      Следующий скрипт является примером содержимого файла environment.yaml для шаблона ARM:

          name: WebApp
          version: 1.0.0
          summary: Azure Web App Environment
          description: Deploys a web app in Azure without a datastore
          runner: ARM
          templatePath: azuredeploy.json
      

      Используйте следующую таблицу, чтобы понять поля в файле environment.yaml :

      Поле Описание:
      name Имя определения среды.
      версия Версия определения среды. Это поле необязательно.
      Итоги Краткое описание определения среды.
      описание Подробное описание определения среды.
      Бегун Платформа IaC, которую использует шаблон. Значением может быть ARM или Bicep. Можно также указать путь к шаблону, хранящейся в реестре контейнеров.
      templatePath Путь к файлу шаблона IaC.

      Дополнительные сведения о параметрах и типах данных, которые можно использовать в environment.yaml, см. в разделе "Параметры и типы данных" в environment.yaml.

  3. В центре разработки перейдите в каталоги, выберите репозиторий и нажмите кнопку "Синхронизация".

    Снимок экрана: синхронизация каталога.

Служба сканирует репозиторий, чтобы найти новые определения среды. После синхронизации репозитория новые определения среды доступны для всех проектов в центре разработки.

Использование образов контейнеров для развертывания сред

ADE использует образы контейнеров для определения того, как развертываются шаблоны для сред развертывания. ADE поддерживает ARM и Bicep изначально, поэтому вы можете настроить определение среды, которое развертывает ресурсы Azure для среды развертывания, добавив файлы шаблонов (azuredeploy.json и environment.yaml) в каталог. Затем ADE использует стандартный образ контейнера ARM или Bicep для создания среды развертывания.

Вы можете создать пользовательские образы контейнеров для более сложных развертываний среды. Например, можно запускать скрипты до или после развертывания. ADE поддерживает пользовательские образы контейнеров для развертываний среды, которые могут помочь развернуть платформы IaC, такие как Pulumi и Terraform.

Команда ADE предоставляет примеры образов контейнеров ARM и Bicep, доступных через Реестр артефактов Microsoft (также известный как реестр контейнеров Майкрософт), чтобы помочь вам приступить к работе.

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

Укажите образ контейнера ARM или Bicep

В файле environment.yaml свойство runner указывает расположение используемого образа. Чтобы использовать образ, опубликованный на Реестр артефактов Microsoft, используйте соответствующий модуль выполнения идентификаторов, как указано в следующей таблице.

Платформа IaC Значение runner
ARM ARM
Bicep Bicep
Terraform Образец не указан. Вместо этого используйте пользовательский образ контейнера.

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

    name: WebApp
    version: 1.0.0
    summary: Azure Web App Environment
    description: Deploys a web app in Azure without a datastore
    runner: Bicep
    templatePath: azuredeploy.json

Указание пользовательского образа контейнера

Чтобы использовать пользовательский образ контейнера, хранящийся в репозитории, используйте следующий формат runner в файле environment.yaml:

runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}”`

Измените значение runner, чтобы ссылаться на репозиторий и пользовательский образ, как показано в следующем примере:

    name: WebApp
    version: 1.0.0
    summary: Azure Web App Environment
    description: Deploys a web app in Azure without a datastore
    runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}"
    templatePath: azuredeploy.json
Свойство Description
YOUR_REGISTRY Реестр, в который хранится пользовательский образ.
YOUR_REPOSITORY Репозиторий в этом реестре.
YOUR_TAG Тег, например номер версии.

Указание параметров для определения среды

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

Параметры определяются в файле environment.yaml .

Следующий скрипт является примером файла environment.yaml для шаблона ARM, включающего два параметра; location и name:

name: WebApp
summary: Azure Web App Environment
description: Deploys a web app in Azure without a datastore
runner: ARM
templatePath: azuredeploy.json
parameters:
- id: "location"
  name: "location"
  description: "Location to deploy the environment resources"
  default: "[resourceGroup().location]"
  type: "string"
  required: false
- id: "name"
  name: "name"
  description: "Name of the Web App "
  default: ""
  type: "string"
  required: false

Дополнительные сведения о параметрах и их типах данных, которые можно использовать в environment.yaml, см. в разделе "Параметры и типы данных" в environment.yaml.

Разработчики могут предоставлять значения для определенных параметров для своих сред с помощью портала разработчика.

Снимок экрана: портал разработчика на портале разработчика с областью параметров.

Разработчики также могут предоставлять значения для определенных параметров для своих сред с помощью интерфейса командной строки.

az devcenter dev environment create --environment-definition-name
                                    --catalog-name
                                    --dev-center
                                    --environment-name
                                    --environment-type
                                    --project
                                    [--description]
                                    [--no-wait]
                                    [--parameters]
                                    [--tags]
                                    [--user]
                                    [--user-id]

Дополнительные сведения о команде az devcenter dev environment create см. в расширении центра разработки Azure CLI.

Обновление определения среды

Чтобы изменить конфигурацию ресурсов Azure в существующем определении среды в средах развертывания Azure, обновите связанный файл шаблона в репозитории. Это изменение немедленно отражается при создании новой среды с помощью определения конкретной среды. Обновление также применяется при повторном развертывании среды, связанной с этим определением среды.

Чтобы обновить все метаданные, связанные с шаблоном, измените environment.yaml и обновите каталог.

Удаление определения среды

Чтобы удалить существующее определение среды, в репозитории удалите вложенную папку, содержащую файл шаблона и связанный файл YAML среды. Затем обновите каталог.

После удаления определения среды команды разработчиков больше не могут использовать определение конкретной среды для развертывания новой среды. Обновите ссылку на определение среды для всех существующих сред, использующих определение удаленной среды. Если ссылка не обновляется и среда повторно развертывается, развертывание завершается сбоем.