Обновление образа и автоматическое повторное развертывание веб-приложения

Завершено

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

В этом примере команда разработчиков регулярно добавляет новые возможности и улучшения в свое веб-приложение. Поэтому команда решила реализовать непрерывное развертывание.

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

Что такое веб-перехватчик?

Служба приложений Azure поддерживает непрерывное развертывание с помощью веб-перехватчиков. Веб-перехватчик — это служба Реестра контейнеров. Службы и приложения могут подписываться на веб-перехватчик, чтобы получать уведомления об обновлении образов в реестре. Веб-приложение, использующее Службу приложений, может подписаться на веб-перехватчик Реестра контейнеров Azure для получения уведомлений об обновлениях образа, содержащего это веб-приложение. Когда образ обновляется и Служба приложений получает уведомление, приложение автоматически перезапускает сайт и извлекает последнюю версию образа.

Что такое задачи Реестра контейнеров Azure?

C помощью функции задач Реестра контейнеров можно выполнять повторную сборку образа при каждом автоматическом изменении его кода. Задачу Реестра контейнеров можно настроить для отслеживания репозитория GitHub, содержащего ваш код, и активации повторной сборки при каждом изменении кода. Если сборка завершается успешно, Реестр контейнеров может сохранить образ в репозитории. Если веб-приложение настроено для непрерывной интеграции в Службе приложений, оно получает уведомление через веб-перехватчик и выполняет обновление.

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

Включение непрерывной интеграции из Службы приложений

Страница Центра развертывания ресурса Служба приложений в портал Azure автоматизирует настройку непрерывной интеграции. Если включить параметр Непрерывное развертывание, Служба приложений настраивает веб-перехватчик в реестре контейнеров для отправки уведомлений в конечную точку Службы приложений. Уведомления из реестра, переданные в эту конечную точку, инициируют перезапуск приложения и извлечение из контейнера последней версии образа.

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

Необходимо создать задачи реестра контейнеров из командной строки. В отличие от команды az acr build, с помощью которой мы ранее выполнили сборку образа, команда az acr task create создает и регистрирует долгосрочную задачу.

Ниже показано, как с помощью этой команды создать задние с именем buildwebapp. Задача отслеживает репозиторий GitHub для примера веб-приложения, которое использует этот модуль. При каждой фиксации изменений задача выполняет сборку образа Docker webimage из исходного кода в GitHub и сохраняет его в ваш реестр в Реестре контейнеров. Перед выполнением этой команды, необходимо создать личный маркер доступа GitHub с разрешениями на создание веб-перехватчика в репозитории. Для частных репозиториев маркеру также потребуется полный доступ на чтение из репозитория.

az acr task create --registry <container_registry_name> --name buildwebapp --image webimage --context https://github.com/MicrosoftDocs/mslearn-deploy-run-container-app-service.git --file Dockerfile --git-access-token <access_token>