Учебник. Развертывание в Контейнерах приложений Azure с помощью Visual Studio

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

В рамках работы с этим руководством вы развернете контейнерное приложение ASP.NET Core 6.0 на платформе "Контейнеры приложений Azure" с помощью Visual Studio. Приведенные ниже действия также применимы к более ранним версиям ASP.NET Core.

Предварительные требования

Создание проекта

Сначала создайте контейнерное приложение ASP.NET Core для развертывания в Azure.

  1. В Visual Studio выберите Файл, затем Создать => Проект.

  2. В диалоговом окне найдите поиском ASP.NET, затем выберите Веб-приложение ASP.NET Core и нажмите кнопку Далее.

  3. В поле Имя проекта укажите имя приложения MyContainerApp и нажмите кнопку Далее.

  4. На экране Дополнительные сведения выберите Использование Docker, а затем убедитесь, что для параметра Операционная система Docker выбрано значение Linux. Платформа "Контейнеры приложений Azure" пока не поддерживает контейнеры Windows. Выбор этого параметра гарантирует, что шаблон проекта поддерживает контейнеризацию по умолчанию. Если этот параметр включен, проект использует контейнер при запуске или сборке.

  5. Нажмите кнопку Создать. Visual Studio создаст и загрузит проект.

Снимок экрана: включение Docker.

Развертывание на платформе "Контейнеры приложений Azure"

Приложение включает документ Dockerfile, так как в шаблоне проекта был выбран параметр "Использование Docker". Visual Studio использует Dockerfile для создания образа контейнера, который выполняется на платформе "Контейнеры приложений Azure".

Дополнительные сведения о специфике этого процесса см. в статье Как Visual Studio создает контейнерные приложения.

Теперь вы готовы развернуть приложение на платформе "Контейнеры приложений Azure".

Создание ресурсов

Диалоговые окна публикации Visual Studio помогут вам выбрать существующие ресурсы Azure или создать новые. Эти ресурсы будут использоваться для развертывания приложений. Также в проекте будет создан образ контейнера с помощью Dockerfile. Затем этот образ будет отправлен в ACR и, наконец, новый образ будет развернут в выбранном контейнерном приложении.

  1. Щелкните правой кнопкой мыши узел проекта MyContainerApp и выберите Публикация.

  2. В диалоговом окне из списка параметров публикации выберите Azureи нажмите кнопку Далее.

    Снимок экрана: публикация в Azure.

  3. На экране Указанный целевой объект выберите Контейнеры приложений Azure (Linux) и еще раз нажмите кнопку Далее.

    Снимок экрана: выбранные контейнеры приложений.

  4. Затем создайте контейнерное приложение Azure для размещения проекта. Щелкните зеленый значок плюса справа, чтобы открыть диалоговое окно создания. В диалоговом окне Создание введите следующие значения:

    • Имя приложения-контейнера: введите имя msdocscontainerapp.
    • Имя подписки: выберите подписку, в которой вы хотите разместить приложение.
    • Группа ресурсов. Группа ресурсов выступает в качестве логического контейнера для упорядочения связанных ресурсов в Azure. Вы можете выбрать существующую группу ресурсов или щелкнуть Создать, чтобы создать ее с именем на свой выбор, например msdocscontainerapps.
    • Среда контейнеров приложений: каждое контейнерное приложение должно быть частью среды контейнерных приложений. Среда обеспечивает изолированную сеть для одного или нескольких контейнерных приложений, что позволяет им легко вызывать друг друга. Нажмите кнопку Создать, чтобы открыть диалоговое окно "Создание" для среды контейнерных приложений. Оставьте значения по умолчанию и нажмите ОК, чтобы закрыть диалоговое окно среды.
    • Имя контейнера: понятное имя контейнера для этого контейнерного приложения. Используйте имя msdocscontainer1 в рамках этого краткого руководства. Контейнерное приложение обычно выполняется в одном контейнере, но иногда требуется несколько контейнеров. Один из таких примеров: контейнер расширения необходим для выполнения таких действий, как специализированное ведение журнала или обмен данными.

    Снимок экрана: создание контейнеров приложений.

  5. Нажмите кнопку Создать, чтобы завершить создание контейнерного приложения. Visual Studio и Azure создадут необходимые ресурсы от вашего имени. Этот процесс может занять пару минут, поэтому дождитесь его завершения, прежде чем продолжать работу.

  6. После создания ресурсов нажмите кнопку Далее.

    Снимок экрана: выбор созданного ресурса.

  7. На экране Реестр можно выбрать существующий реестр, если он у вас есть, или создать новый. Чтобы создать новый реестр, щелкните зеленый значок + справа. На экране Создание введите следующие значения:

    • Префикс DNS: введите значение msdocscontainerregistry или имя на свой выбор.
    • Имя подписки: выберите подписку, которую следует использовать. У вас может быть только одна подписка.
    • Группа ресурсов: выберите созданную ранее группу ресурсов msdocs.
    • SKU: выберите Стандартный.
    • Расположение реестра: выберите географически близкий к вам регион.

    Снимок экрана: создание реестра контейнеров.

  8. После заполнения этих значений нажмите Создать. Visual Studio и Azure потребуется некоторое время для создания реестра.

  9. После создания реестра контейнеров убедитесь, что он выбран, а затем нажмите кнопку Готово. Через некоторое время Visual Studio создаст профиль публикации. В этом профиле публикации VS хранит выбранные вами параметры публикации и ресурсы, чтобы при необходимости вы могли быстро опубликовать их снова. После завершения диалоговое окно можно закрыть.

    Снимок экрана: выбор созданного реестра.

Публикация приложения с помощью Visual Studio

Хотя ресурсы и профиль публикации созданы, вам все равно нужно опубликовать и развернуть приложение в Azure.

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

Снимок экрана: публикация приложения.

Когда развертывание приложения завершится, Visual Studio откроет браузер по URL-адресу развернутого сайта. На этой странице сначала может отображаться ошибка, если не все необходимые ресурсы завершили подготовку. Вы можете периодически обновлять окно браузера, чтобы проверить, полностью ли завершено развертывание.

Снимок экрана: опубликованный сайт.

Публикация приложения с помощью GitHub Actions

Контейнерные приложения также можно развертывать с помощью CI/CD в GitHub Actions. Это мощный инструмент для автоматизации, настройки и выполнения рабочих процессов разработки непосредственно через репозиторий GitHub вашего проекта.

Если Visual Studio обнаружит, что публикуемый проект размещен на GitHub, поток публикации отобразит дополнительный шаг Тип развертывания. На этом этапе разработчики могут выбрать, как выполнять публикацию: непосредственно через Visual Studio с помощью действий, описанных ранее в кратком руководстве, или с помощью рабочего процесса GitHub Actions.

Снимок экрана: тип развертывания.

Если выбрать рабочий процесс GitHub Actions, Visual Studio добавит в корневой каталог проекта папку .github, которая содержит сгенерированный YAML-файл. Этот YAML-файл содержит конфигурации GitHub Actions для сборки и развертывания приложения в Azure при каждой отправке кода.

После внесения изменений и отправки кода можно проследить за выполнением процесса сборки и развертывания в GitHub на вкладке Действия. На этой странице представлены подробные журналы и индикаторы хода выполнения и состояния рабочего процесса.

Снимок экрана: действия GitHub.

Когда рядом с заданиями сборки и развертывания появится зеленый флажок, рабочий процесс будет завершен. При переходе на сайт Контейнеров приложений вы увидите последние примененные изменения. URL-адрес контейнерного приложения можно найти на странице портала Azure.

Очистка ресурсов

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

Чтобы удалить созданные ресурсы, выполните на портале Azure следующие действия:

  1. В разделе Обзор выберите группу ресурсов msdocscontainerapps.
  2. Нажмите кнопку Удалить группу ресурсов на панели инструментов в разделе Обзор группы ресурсов.
  3. В диалоговом окне подтверждения Удалить "my-container-apps"? введите имя группы ресурсов msdocscontainerapps.
  4. Выберите Удалить.
    На удаление группы ресурсов может потребоваться несколько минут.

Совет

Возникли проблемы? Сообщите о них в репозитории Azure Container Apps на GitHub.

Следующие шаги