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


Изучите рабочий процесс azd up

Интерфейс командной строки разработчика Azure (azd) позволяет подготавливать и развертывать ресурсы приложений в Azure только с помощью azd upодной команды. Это руководство предоставляет детальную разбивку azd up и объясняет, как различные этапы этого рабочего процесса соотносятся со структурой шаблона azd.

Следуйте инструкциям по использованию шаблона

В разделах впереди используются примеры из hello-azd шаблона для демонстрации различных azd концепций и шаблонов. Вы можете инициализировать шаблон на локальном компьютере:

azd init -t hello-azd

Дополнительные сведения о начале работы с azd и шаблонами hello-azd см. в статье Краткое руководство: Развертывание шаблона командной строки разработчика Azure.

Основные понятия

При работе с шаблоном azd можно подготовить и развернуть ресурсы приложения в Azure с помощью azd up команды. Выполните команду из окна терминала, открытого в папке шаблона:

azd up

azd up предназначен для многократного выполнения команды при разработке приложения, а новые изменения развертываются постепенно. Команда инициирует мощный рабочий процесс, который, по сути, упаковывает три конкретных этапа:

  1. Упаковка. Подготовка кода приложения и зависимостей для развертывания.
  2. Подготовка: Создает и настраивает необходимые ресурсы Azure для приложения с помощью файлов, описывающих инфраструктуру как код.
  3. Развертывание: развертывает упаковаемое приложение в подготовленных ресурсах Azure.

Вы также можете запускать каждый из этих этапов по отдельности с помощью соответствующей команды, но azd up предоставляет удобный оболочку для упрощения общего процесса. Каждый этап играет важную роль в обеспечении плавного и автоматизированного процесса развертывания. Вы можете повлиять на azd up этапы рабочего процесса с помощью конфигураций в файле шаблона azure.yaml . В следующих разделах подробно рассматриваются все этапы.

Этап упаковки

Этап упаковки — это первый шаг в azd up рабочем процессе. На этом этапе:

  • Код приложения готов к развертыванию. В зависимости от языка программирования, на котором построено приложение-шаблон, упаковка может включать создание или компиляцию приложения, объединение зависимостей или создание элементов развертывания, таких как образы Docker.
  • Структура azd шаблона обычно содержит src папку, в которой находится код приложения. Скрипты сборки или файлы конфигурации (например, Dockerfile) могут повлиять на то, как приложение должно быть упаковано.
  • Файл azure.yaml содержит сопоставления конфигурации, которые сообщают azd о том, где находится код приложения и какой язык он использует, так что azd может упаковыть его соответствующим образом.
  • На этом этапе приложение находится в состоянии развертывания перед переходом к следующему шагу.

Процесс упаковки можно запустить самостоятельно вне azd up с использованием команды azd package.

azd package

Примеры конфигураций упаковки

azd может упаковыть приложения, созданные с различными языками, различными способами. Например, если приложение использует контейнеризованный подход, azd шаблон может включать Dockerfile в каталог приложения src . Этап упаковки создает образ Docker для приложения на основе этого файла. Эти конфигурации управляются с помощью azure.yaml файла.

Например, рассмотрим следующую структуру проекта и конфигурации начального hello-azd шаблона:

Скриншот, демонстрирующий этап упаковки azd up.

На предыдущем изображении представлен файл azure.yaml.

  • Определяет код в каталоге src как приложение C#.
  • Указывает расположение Dockerfile для создания образа контейнера приложения.

При запуске azd up (или azd package) интерфейс командной строки разработчика Azure использует эту комбинацию конфигураций для сборки и упаковки кода приложения в каталоге src в виде образа контейнера .NET. Если файл Dockerfile не настроен, azd может также упаковать приложение .NET с помощью стандартного процесса публикации .NET.

Этап обеспечения

Этап подготовки создает и настраивает необходимые ресурсы Azure для приложения. Например, приложению может потребоваться экземпляр Службы приложений Azure для размещения самого приложения и учетной записи хранения Azure для хранения отправленных файлов. Этап подготовки использует файлы инфраструктуры как кода (IaC), включенные в шаблон, для определения ресурсов.

Ниже приведены ключевые моменты, которые необходимо понять о стадии подготовки:

  1. azd поддерживает как Bicep, так и Terraform для задач «инфраструктура как код».
  2. По умолчанию файлы инфраструктуры как кода хранятся в папке infra , но это расположение можно настроить.
  3. azd выполняет поиск файла main.bicep или main.tf, который будет использоваться в качестве основного файла оркестрации для процесса IaC.

Снимок экрана: этап предоставления ресурсов azd up.

Вы также можете запустить процесс провизирования самостоятельно вне azd up, используя команду azd provision.

azd provision

Примеры конфигураций предоставления

В папке infra файл main.bicep обычно определяет ресурсы Azure, которые azd должен создать для приложения. Рассмотрим следующий фрагмент кода из main.bicep начального hello-azd шаблона:

// ...omitted code for other resource configurations

// Create an Azure Cosmos DB account
module cosmos 'app/cosmos.bicep' = {
  name: 'cosmos'
  scope: rg
  params: {
    userPrincipalId: principalId
    managedIdentityId: identity.outputs.principalId
  }
}

// Create a storage account
module storage './core/storage/storage-account.bicep' = {
  name: 'storage'
  scope: rg
  params: {
    name: !empty(storageAccountName) ? storageAccountName : '${abbrs.storageStorageAccounts}${resourceToken}'
    location: location
    tags: tags
    containers: [
      { name: 'attachments' }
    ]
  }
}

// Container apps environment and registry
module containerAppsEnv './core/host/container-apps.bicep' = {
  name: 'container-apps'
  scope: rg
  params: {
    name: 'app'
    containerAppsEnvironmentName: !empty(containerAppsEnvName) ? containerAppsEnvName : '${abbrs.appManagedEnvironments}${resourceToken}'
    containerRegistryName: !empty(containerRegistryName) ? containerRegistryName : '${abbrs.containerRegistryRegistries}${resourceToken}'
    location: location
  }
}

// ...omitted code for other resource configurations

Используя предыдущий код Bicep, azd создаёт следующие ресурсы:

  • Экземпляр Azure Cosmos DB для хранения данных, отправленных через приложение
  • Учетная запись хранения Azure для хранения отправленных образов
  • Приложение контейнера Azure для размещения приложения

Этап развертывания

Этап развертывания — это последний шаг в azd up рабочем процессе. На этом этапе:

  • Артефакты приложения, созданные на этапе упаковки, развертываются в зарезервированных ресурсах Azure.
  • azd использует файлы конфигурации в шаблоне, например azure.yamlдля определения способа развертывания приложения.
  • Переменные среды и строки подключения настроены для обеспечения взаимодействия приложения с подготовленными ресурсами.

Вы также можете запустить процесс развертывания самостоятельно за пределами azd up, используя команду azd deploy.

azd deploy

Примеры конфигураций развертывания

azure.yaml В файле можно указать, какая служба в проекте должна быть развернута в каком ресурсе Azure. Например, рассмотрим следующие конфигурации для начального hello-azd шаблона:

metadata:
  template: hello-azd-dotnet
name: azd-starter
services:
  aca:
    project: ./src # The location of the service source code
    language: csharp
    host: containerapp # The provisioned resource to deploy the service to
    docker:
      path: ./Dockerfile

Предыдущий код указывает azd развернуть артефакты, упакованные из кода в папке src, в containerapp, созданный на этапе предоставления. Можно также определить несколько служб и сопоставить каждую с разным узлом.

Заключение

Рабочий azd up процесс упрощает процесс развертывания приложений в Azure путем автоматизации этапов упаковки, подготовки и развертывания. Разработчики могут обеспечить согласованный и эффективный процесс развертывания, следуя azd структуре шаблона. Независимо от того, развертывается ли простое веб-приложение или сложная архитектура микрослужб, azd up команда упрощает переход от кода в облако.