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


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

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

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

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

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

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

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

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

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

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

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

  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 Имя определения среды.
      version Версия определения среды. Это поле является необязательным.
      summary Краткое описание определения среды.
      description Подробное описание определения среды.
      runner Платформа IaC, которую использует шаблон. Значение может быть ARM или Bicep. Можно также указать путь к шаблону, хранящемуся в реестре контейнеров.
      templatePath Путь к файлу шаблона IaC.

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

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

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

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

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

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

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

Чтобы приступить к работе, можно получить примеры образов контейнеров ARM и Bicep с помощью реестра артефактов Майкрософт (также известного как Реестр контейнеров Майкрософт).

Дополнительные сведения о создании пользовательского образа контейнера см. в разделе "Настройка образа контейнера для выполнения развертываний".

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

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

Платформа IaC Значение runner
РУКА РУКА
Бицепс Бицепс
Терраформирование Нет образца изображения. Вместо этого используйте пользовательский образ контейнера.

В следующем примере показано свойство runner, которое ссылается на пример изображения контейнера 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
Недвижимость Описание
ВАШ_РЕЕСТР Реестр, в который хранится пользовательский образ.
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.

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

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

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

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 в существующем определении среды в средах развертывания, обновите связанный файл шаблона в репозитории. Это изменение немедленно отражается при создании новой среды с помощью определения конкретной среды. Обновление также применяется при повторном развертывании среды, связанной с этим определением среды.

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

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

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

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