Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Интерфейс командной строки Azure Developer (azd) может создавать, публиковать и развертывать образы контейнеров в нескольких службах размещения Azure. Рабочий процесс контейнеризации объединяет целевую среду размещения с местом сборки и способом публикации. Оптимальное сочетание зависит от вашего приложения, инструментов, доступных вашей команде, и того, как вы продвигаете образы между средами.
Используйте эту статью для сопоставления этих вариантов с вашими потребностями. Он сравнивает следующие решения:
- Какая служба Azure размещает контейнер.
- Независимо от того, собирает ли
azdобраз локально, собирает ли его удаленно в Реестр контейнеров Azure (ACR) или использует существующий образ. - Публикует ли
azdи развертывает ли образ вместе или как отдельные шаги.
В этой статье сравниваются эти службы размещения общего назначения:
Начните с сравнения целевых объектов размещения и параметров сборки образов. После того как вы поймёте эти варианты, используйте их, чтобы определить подходящий рабочий процесс в разделе Сравнение рабочих процессов развертывания контейнеров.
Сравнение целевых объектов размещения контейнеров
Свойство host в azure.yaml указывает службу Azure, в которую azd развертывает контейнер. Выберите хост независимо от места сборки образа.
| Значение хоста | целевая среда размещения Azure | Рабочий процесс контейнера | Рекомендации |
|---|---|---|---|
containerapp |
задания Контейнеры приложений Azure и контейнерных приложений | Выполните сборку из проекта и Dockerfile или разверните предварительно созданный образ. | Поддерживает переменные среды уровня обслуживания и стратегии развертывания для контейнерных приложений. Используйте то же значение параметра host для заданий Container Apps. |
appservice |
Веб-приложение Linux для контейнеров в Служба приложений Azure | Выполните сборку из проекта и Dockerfile или разверните предварительно созданный образ. | Инфраструктура должна подготовить сайт с поддержкой контейнеров Linux и настроить для управляемого удостоверения доступ к ACR.
azd deploy обновляет только ссылку на изображение. |
aks |
Служба Azure Kubernetes | Создайте образ и разверните манифесты Kubernetes, диаграммы Helm или конфигурации Kustomize. | Обеспечивает большую часть управления, но требует управления конфигурацией кластера и Kubernetes. Использование Helm или Kustomize с azd требует включения флагов альфа-функций. |
Хосты azure.ai.agent и ai.endpoint также поддерживают конфигурацию Docker для специализированных сценариев Microsoft Foundry. Сведения об этих рабочих нагрузках см. в статье «Развертывание в сетевые конечные точки Microsoft Foundry» и в статье «Расширение агента Microsoft Foundry».
Сравнение параметров сборки образа
Определение службы определяет, создает ли azd образ или начинается с существующего образа.
| Вариант сборки | Требуемая конфигурация | Где выполняется сборка | Локальный обработчик контейнеров | Наиболее подходит для |
|---|---|---|---|---|
| Локальная сборка |
project и, при необходимости, docker |
Ваша среда разработки или CI-раннер | Обязательный | Быстрые итерации разработки и среды сборки, где уже доступны Docker или Podman. |
| Удаленная сборка ACR |
project и docker.remoteBuild: true. |
Реестр контейнеров Azure (Реестр контейнеров Azure) | Не требуется, если azd не возвращается после сбоя удаленной сборки |
Единообразные облачные сборки и среды без локального контейнерного движка. Документированные рабочие процессы удаленной сборки нацелены на Контейнеры приложений Azure. |
Существующий образ, управляемый с помощью azd |
image |
Исходная сборка отсутствует | Может понадобиться для операций жизненного цикла образов | Образы, которые уже существуют локально или в реестре и которые azd может извлекать, помечать тегами и отправлять. |
| Сквозная передача удалённого изображения |
image и docker.imagePassthrough: true. |
Нет сборки | Не требуется | Полностью определённые удалённые образы, которые размещающий ресурс должен использовать без изменений. |
Имейте в виду эти концептуальные различия при чтении статей конфигурации для каждого варианта:
-
Готовый образ использует свойство
imageвместоproject, иazdпо-прежнему может загружать, помечать и отправлять его. - Удаленная сборка ACR переходит на локальную сборку с помощью Docker или Podman, если удаленная сборка завершается сбоем и доступен поддерживаемый контейнерный движок.
-
Сквозная передача образа требует полного имени удалённого образа, включающего реестр; её нельзя использовать вместе с
remoteBuild, и она не поддерживает параметрыazd publish --from-packageилиazd publish --to, посколькуazdне управляет образом.
Полную конфигурацию каждого варианта см. в статье "Поддержка удаленных сборок с Реестр контейнеров Azure", "Использование сторонних реестров контейнеров", развертываний контейнеров службы приложений с Azure CLI разработчика и схемойdocker.
Сравнение рабочих процессов развертывания контейнеров
После того как вы сравните варианты размещения контейнеров в разделе Сравнение вариантов размещения контейнеров и варианты сборки образов в разделе Сравнение вариантов сборки образов, используйте следующую таблицу, чтобы определить наиболее подходящие сценарии работы для ваших задач.
| Если понадобится | Начать с | Почему |
|---|---|---|
| Развертывание контейнерного приложения на бессерверной платформе | Контейнеры приложений Azure с локальной сборкой | Этот рабочий процесс создает и развертывает проект на основе Dockerfile в одном рабочем процессе разработки. |
| Сборка без локальной установки Docker или Podman | Контейнеры приложений Azure с удаленной сборкой через ACR | ACR создает образ на основе вашего проекта и Dockerfile в Azure. |
| Разверните образ, созданный другой системой сборки | Контейнеры приложений Azure или служба приложений с предварительно созданным изображением | Свойство image определяет существующий образ вместо исходного кода для сборки. |
| Повторно использовать удалённый образ без загрузки, присвоения тега или отправки | Контейнеры приложений Azure с прямой передачей образа |
azd передает полную ссылку на образ непосредственно ресурсу размещения. |
| Размещение традиционного веб-приложения в виде контейнера Linux | Веб-приложение для контейнеров в Служба приложений Azure | App Service предоставляет интегрированную платформу веб-хостинга, а ваша инфраструктура определяет конфигурацию сайта, готовую к развертыванию в контейнере. |
| Управление манифестами Kubernetes и конфигурацией кластера | Azure Kubernetes Service (AKS) |
azd может создавать и публиковать образ, а затем развертывать манифесты Kubernetes, диаграммы Helm или конфигурации Kustomize. |
| Создайте образ один раз и продвигайте один и тот же образ по всем средам |
azd publish, за которым следует azd deploy --from-package |
Публикация и развертывание разделены, поэтому каждая среда получает один и тот же образ. |
Каждая строка объединяет варианты размещения из Сравнение целевых платформ размещения контейнеров и варианты сборки из Сравнение вариантов сборки образов в качестве отправной точки. Настройте нужный вариант в azure.yaml, а затем файлы Bicep или Terraform создадут соответствующие ресурсы размещения и реестра.
Минимальное определение службы задает host, источник сборки и Dockerfile:
services:
api:
project: ./src/api
language: docker
host: containerapp
docker:
path: ./Dockerfile
Чтобы адаптировать это определение к другому узлу, измените host значение и следуйте контракту конфигурации для каждого узла:
- Развертывание в приложениях контейнеров Azure с помощью интерфейса командной строки разработчика Azure
- Развертывания контейнеров службы приложений с помощью интерфейса командной строки разработчика Azure
- Поддержка Helm и Kustomize
Сравнение команд публикации и развертывания
После выбора хоста и варианта сборки укажите, следует ли объединить или разделить публикацию образа и развертывание.
| Command | Действия с изображением | действие ресурса Azure | Используйте, если |
|---|---|---|---|
azd up |
Сборка и отправка | Подготовка и развертывание | Вы хотите создать или обновить полную среду и развернуть приложение в одном рабочем процессе. |
azd deploy |
Сборка и отправка | Развертывание | Инфраструктура уже существует, и вы хотите развернуть изменения в приложении. |
azd publish |
Сборка и отправка | Нет | Вы хотите создать артефакт реестра без его развертывания.
azd publish поддерживает службы Container Apps и AKS. |
azd publish --from-package <image> |
Отправка существующего локального образа | Нет | Другой процесс создал образ, и вы хотите, чтобы azd его опубликовал. |
azd deploy --from-package <image> |
Нет | Развертывание | Вы хотите развернуть определенный образ без его пересборки. |
Например, опубликуйте версионированный образ и разверните этот же образ в другой среде:
azd publish api --to myregistry.azurecr.io/my-api:v1.0.0
azd env select production
azd deploy api --from-package myregistry.azurecr.io/my-api:v1.0.0
Этот рабочий процесс предотвращает различия, которые могут возникать при перестроении образа для каждой среды. Сведения о полном процессе публикации см. в разделе Рабочие процессы публикации Azure Developer CLI.