Учебник. Развертывание в Контейнерах приложений Azure с помощью Visual Studio
С помощью Azure Container Apps можно запускать микрослужбы и контейнерные приложения на бессерверной платформе. Благодаря Azure Container Apps вы можете пользоваться преимуществами выполнения контейнеров, не заботясь о настройке облачной инфраструктуры вручную и сложных оркестраторах контейнеров.
В этом руководстве описано, как развернуть контейнерное приложение ASP.NET Core 8.0 в приложениях контейнеров Azure с помощью Visual Studio. Приведенные ниже действия также применимы к более ранним версиям ASP.NET Core.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Если ее нет, можно создать учетную запись бесплатно.
- Visual Studio 2022 версии 17.2 или более поздней (можно скачать бесплатно).
Создание проекта
Начните с создания контейнерного приложения ASP.NET Core.
В Visual Studio выберите "Файл" и нажмите кнопку "Создать => Проект".
В диалоговом окне найдите поиском ASP.NET, затем выберите Веб-приложение ASP.NET Core и нажмите кнопку Далее.
В поле Имя проекта укажите имя приложения MyContainerApp и нажмите кнопку Далее.
На экране Дополнительные сведения выберите Использование Docker, а затем убедитесь, что для параметра Операционная система Docker выбрано значение Linux. В настоящее время приложения контейнеров Azure не поддерживают контейнеры Windows. Выбор этого параметра гарантирует, что шаблон проекта поддерживает контейнеризацию по умолчанию. Если этот параметр включен, проект использует контейнер при запуске или сборке.
Нажмите кнопку Создать. Visual Studio создаст и загрузит проект.
Развертывание на платформе "Контейнеры приложений Azure"
Приложение включает Dockerfile, так как шаблон проекта был выбран параметр Enable Docker . Visual Studio использует Dockerfile для создания образа контейнера, запущенного приложениями контейнеров Azure.
Дополнительные сведения о специфике этого процесса см. в статье Как Visual Studio создает контейнерные приложения.
Теперь вы готовы развернуть приложение в приложениях контейнеров Azure.
Создание ресурсов
Диалоговые окна публикации в Visual Studio помогают выбирать существующие ресурсы Azure или создавать новые ресурсы для развертывания. Этот процесс также создает образ контейнера, отправляет образ в Реестр контейнеров Azure (ACR) и развертывает новый образ приложения контейнера.
Щелкните правой кнопкой мыши узел проекта MyContainerApp и выберите Публикация.
В диалоговом окне из списка параметров публикации выберите Azureи нажмите кнопку Далее.
На экране Указанный целевой объект выберите Контейнеры приложений Azure (Linux) и еще раз нажмите кнопку Далее.
Затем создайте контейнерное приложение Azure для размещения проекта. Щелкните зеленый значок плюса справа, чтобы открыть диалоговое окно "Создать". В диалоговом окне Создание введите следующие значения:
- Имя приложения-контейнера: введите имя
msdocscontainerapp
. - Имя подписки: выберите подписку, в которой вы хотите разместить приложение.
- Группа ресурсов. Группа ресурсов выступает в качестве логического контейнера для упорядочения связанных ресурсов в Azure. Вы можете выбрать существующую группу ресурсов или щелкнуть Создать, чтобы создать ее с именем на свой выбор, например
msdocscontainerapps
. - Среда контейнеров приложений: каждое контейнерное приложение должно быть частью среды контейнерных приложений. Среда обеспечивает изолированную сеть для одного или нескольких контейнерных приложений, что позволяет им легко вызывать друг друга. Нажмите кнопку Создать, чтобы открыть диалоговое окно "Создание" для среды контейнерных приложений. Оставьте значения по умолчанию и нажмите ОК, чтобы закрыть диалоговое окно среды.
- Имя контейнера. Это понятное имя контейнера, который выполняется для этого приложения контейнера. Используйте имя
msdocscontainer1
в рамках этого краткого руководства. Контейнерное приложение обычно выполняется в одном контейнере, но иногда требуется несколько контейнеров. Один из таких примеров: контейнер расширения необходим для выполнения таких действий, как специализированное ведение журнала или обмен данными.
- Имя приложения-контейнера: введите имя
Нажмите кнопку Создать, чтобы завершить создание контейнерного приложения. Visual Studio и Azure создадут необходимые ресурсы от вашего имени. Этот процесс может занять пару минут, поэтому дождитесь его завершения, прежде чем продолжать работу.
После создания ресурсов нажмите кнопку Далее.
На экране Реестр можно выбрать существующий реестр, если он у вас есть, или создать новый. Чтобы создать новый реестр, щелкните зеленый значок + справа. На экране Создание введите следующие значения:
- Префикс DNS: введите значение
msdocscontainerregistry
или имя на свой выбор. - Имя подписки. Выберите подписку, которую вы хотите использовать. Возможно, вам нужно выбрать только одну подписку.
- Группа ресурсов: выберите созданную ранее группу ресурсов msdocs.
- SKU: выберите Стандартный.
- Расположение реестра: выберите географически близкий к вам регион.
- Префикс DNS: введите значение
После заполнения этих значений нажмите кнопку "Создать". Visual Studio и Azure занимают некоторое время, чтобы создать реестр.
После создания реестра контейнеров убедитесь, что он выбран, а затем нажмите кнопку "Готово". Visual Studio занимает некоторое время для создания профиля публикации. Этот профиль публикации — это место, в котором Visual Studio хранит выбранные параметры публикации и ресурсы, чтобы можно было быстро опубликовать их всякий раз, когда вы хотите. После завершения диалоговое окно можно закрыть.
Публикация приложения с помощью Visual Studio
Хотя ресурсы и профиль публикации созданы, вам все равно нужно опубликовать и развернуть приложение в Azure.
Выберите Опубликовать в правом верхнем углу экрана профиля публикации, чтобы развернуть контейнерное приложение, созданное в Azure. Этот процесс может занять некоторое время, поэтому дождитесь завершения.
Когда развертывание приложения завершится, Visual Studio откроет браузер по URL-адресу развернутого сайта. Эта страница может первоначально отобразить ошибку, если все необходимые ресурсы не завершают подготовку. Вы можете периодически обновлять браузер, чтобы проверить, завершено ли развертывание полностью.
Публикация приложения с помощью GitHub Actions
Контейнерные приложения также можно развернуть с помощью CI/CD с помощью GitHub Actions. GitHub Actions — это мощный инструмент для автоматизации, настройки и выполнения рабочих процессов разработки непосредственно через репозиторий GitHub проекта.
Если Visual Studio обнаруживает проект, который вы публикуете, размещен в GitHub, поток публикации представляет дополнительный шаг типа развертывания. На этом этапе разработчики могут выбрать, как выполнять публикацию: непосредственно через Visual Studio с помощью действий, описанных ранее в кратком руководстве, или с помощью рабочего процесса GitHub Actions.
Если выбрать рабочий процесс GitHub Actions, Visual Studio создает папку github в корневом каталоге проекта, а также созданный файл YAML внутри него. Этот YAML-файл содержит конфигурации GitHub Actions для сборки и развертывания приложения в Azure при каждой отправке кода.
После внесения изменений и отправки кода можно проследить за выполнением процесса сборки и развертывания в GitHub на вкладке Действия. На этой странице представлены подробные журналы и индикаторы хода выполнения и состояния рабочего процесса.
Рабочий процесс завершается, когда появится зеленая галочка рядом с заданиями сборки и развертывания. При переходе на сайт приложений-контейнеров вы увидите последние изменения, примененные. URL-адрес контейнерного приложения можно найти на странице портала Azure.
Очистка ресурсов
Если вы больше не планируете использовать это приложение, вы можете удалить экземпляр Azure Container Apps и все связанные службы, удалив группу ресурсов.
Чтобы удалить созданные ресурсы, выполните следующие действия в портал Azure.
- В разделе Обзор выберите группу ресурсов msdocscontainerapps.
- Нажмите кнопку Удалить группу ресурсов на панели инструментов в разделе Обзор группы ресурсов.
- В диалоговом окне подтверждения Удалить "my-container-apps"? введите имя группы ресурсов msdocscontainerapps.
- Выберите команду Удалить.
Процесс удаления группы ресурсов может занять несколько минут.
Совет
Возникли проблемы? Сообщите о них в репозитории Azure Container Apps на GitHub.