Руководство. Создание и развертывание приложения в приложениях контейнеров Azure
В этой статье показано, как создать и развернуть микрослужбу в приложениях контейнеров Azure из исходного репозитория с помощью предпочитаемого языка программирования.
Это первое руководство в серии статей, которые показано, как использовать основные возможности в приложениях контейнеров Azure. Первым шагом является создание серверной веб-службы API, которая возвращает статическую коллекцию музыкальных альбомов.
Примечание.
Вы также можете создать и развернуть это приложение с помощью az containerapp up , следуя инструкциям в кратком руководстве. Создание и развертывание приложения в приложениях контейнеров Azure из статьи репозитория . Команда az containerapp up
— это быстрый и удобный способ создания и развертывания приложения в приложениях контейнеров Azure с помощью одной команды. Однако он не предоставляет тот же уровень настройки для приложения-контейнера.
В следующем руководстве серии будет построено и развернуто интерфейсное веб-приложение в приложениях контейнеров Azure.
На следующем снимке экрана показаны выходные данные api альбомов, развернутые в этом руководстве.
Необходимые компоненты
Чтобы завершить этот проект, вам потребуется следующее:
Требование | Instructions |
---|---|
Учетная запись Azure | Если у вас нет учетной записи, создайте бесплатную учетную запись. Для продолжения необходимо разрешение администратора доступа пользователей или владельца подписки Azure. Обязательно используйте самую ограничивающую роль для контекста. Дополнительные сведения см. в статье "Назначение ролей Azure" с помощью ролей портал Azure и Azure, ролей Microsoft Entra и классических ролейадминистратора подписки. |
Учетная запись GitHub | Зарегистрируйтесь бесплатно. |
git | Установка Git |
Azure CLI | Установите интерфейс командной строки Azure. |
Требование | Instructions |
---|---|
Учетная запись Azure | Если у вас нет учетной записи, создайте бесплатную учетную запись. Чтобы продолжить, вам потребуется разрешение участника или владельца подписки Azure. Дополнительные сведения см. в статье "Назначение ролей Azure" с помощью портал Azure. |
Учетная запись GitHub | Зарегистрируйтесь бесплатно. |
git | Установка Git |
Azure CLI | Установите интерфейс командной строки Azure. |
Docker Desktop | Docker предоставляет установщики, которые настраивают среду Docker в macOS, Windows и Linux. В командной строке введите docker , чтобы убедиться, что Docker запущен. |
Настройка
Чтобы войти в Azure из ИНТЕРФЕЙСА командной строки, выполните следующую команду и следуйте инструкциям, чтобы завершить процесс проверки подлинности.
az login
Чтобы убедиться, что вы используете последнюю версию интерфейса командной строки, выполните команду обновления.
az upgrade
Затем установите или обновите расширение "Приложения контейнеров Azure" для интерфейса командной строки.
Если при выполнении az containerapp
команд в Azure CLI или командлетах из Az.App
модуля PowerShell возникают ошибки о отсутствующих параметрах, убедитесь, что установлена последняя версия расширения "Приложения контейнеров Azure".
az extension add --name containerapp --upgrade
Примечание.
Начиная с мая 2024 г. расширения Azure CLI больше не поддерживают предварительные версии функций по умолчанию. Чтобы получить доступ к функциям предварительной версии контейнерных приложений, установите расширение "Приложения контейнеров" с --allow-preview true
помощью .
az extension add --name containerapp --upgrade --allow-preview true
Теперь, когда установлено текущее расширение или модуль, зарегистрируйте Microsoft.App
пространства имен и Microsoft.OperationalInsights
пространств имен.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Создание переменной среды
После завершения настройки Azure CLI вы можете определить переменные среды, которые используются в этой статье.
Определите следующие переменные в оболочке Bash.
RESOURCE_GROUP="album-containerapps"
LOCATION="canadacentral"
ENVIRONMENT="env-album-containerapps"
API_NAME="album-api"
FRONTEND_NAME="album-ui"
GITHUB_USERNAME="<YOUR_GITHUB_USERNAME>"
Перед выполнением этой команды обязательно замените <YOUR_GITHUB_USERNAME>
имя пользователя GitHub.
Затем определите уникальное имя реестра контейнеров.
ACR_NAME="acaalbums"$GITHUB_USERNAME
Подготовка репозитория GitHub
Перейдите в репозиторий для предпочитаемого языка и вилки репозитория.
Нажмите кнопку Fork в верхней части репозитория альбома, чтобы вилку репозитория в учетную запись.
Теперь вы можете клонировать вилку примера репозитория.
Используйте следующую команду Git, чтобы клонировать вилку репозитория в папку code-to-cloud :
git clone https://github.com/$GITHUB_USERNAME/containerapps-albumapi-csharp.git code-to-cloud
Затем измените каталог в корневой каталог клонированного репозитория.
cd code-to-cloud/src
создание группы ресурсов Azure;
Создайте группу ресурсов для упорядочивания служб, связанных с развертыванием приложения контейнера.
az group create \
--name $RESOURCE_GROUP \
--location "$LOCATION"
Создание реестра в Реестре контейнеров Azure
После создания образа контейнера API альбома создайте экземпляр Реестр контейнеров Azure (ACR) в группе ресурсов для его хранения.
az acr create \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --name $ACR_NAME \ --sku Basic
Реестр контейнеров должен разрешить маркеры аудитории Azure Resource Manager (ARM) для проверки подлинности, чтобы использовать управляемое удостоверение для извлечения образов.
Используйте следующую команду, чтобы проверить, разрешены ли маркеры ARM для доступа к Реестр контейнеров Azure (ACR).
az acr config authentication-as-arm show --registry "$ACR_NAME"
Если разрешены маркеры ARM, команда выводит следующую команду.
{ "status": "enabled" }
Если это
status
такdisabled
, разрешите маркеры ARM с помощью следующей команды.az acr config authentication-as-arm update --registry "$ACR_NAME" --status enabled
Создание управляемого удостоверения, назначаемого пользователем
Чтобы избежать использования учетных данных администратора, извлеките образы из частных репозиториев в Microsoft Реестр контейнеров Azure с помощью управляемых удостоверений для проверки подлинности. По возможности используйте управляемое удостоверение, назначаемое пользователем, для извлечения изображений.
Создайте управляемое удостоверение, назначаемое пользователем. Перед выполнением следующих команд выберите имя управляемого удостоверения и замените
\<PLACEHOLDER\>
его именем.IDENTITY="<YOUR_IDENTITY_NAME>"
az identity create \ --name $IDENTITY \ --resource-group $RESOURCE_GROUP
Получите идентификатор ресурса удостоверения.
IDENTITY_ID=$(az identity show \ --name $IDENTITY \ --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)
Сборка приложения
С помощью задач ACR можно создавать и отправлять образ Docker для API альбомов без локальной установки Docker.
Создание контейнера с помощью ACR
Выполните следующую команду, чтобы инициировать сборку образа и отправить процесс с помощью ACR. В .
конце команды представляет контекст сборки Docker, то есть эта команда должна выполняться в папке src , в которой находится Dockerfile.
az acr build --registry $ACR_NAME --image $API_NAME .
az acr build
Выходные данные команды показывают ход отправки исходного кода в Azure, а также сведения об операциях и docker push
операцияхdocker build
.
Сборка приложения
Ниже показано, как создать образ контейнера локально с помощью Docker и отправить образ в новый реестр контейнеров.
Создание контейнера с помощью Docker
Следующая команда создает образ контейнера для API альбомов и тегирует его полным именем сервера входа ACR. В .
конце команды представляет контекст сборки Docker, то есть эта команда должна выполняться в папке src , в которой находится Dockerfile.
docker build --tag $ACR_NAME.azurecr.io/$API_NAME .
Отправка образа в реестр контейнеров
Сначала войдите в Реестр контейнеров Azure.
az acr login --name $ACR_NAME
Теперь отправьте образ в реестр.
docker push $ACR_NAME.azurecr.io/$API_NAME
Создание среды приложений-контейнеров
Среда "Приложения контейнеров Azure" выступает в качестве безопасной границы для группы приложений-контейнеров.
Создайте среду приложений контейнеров с помощью следующей команды.
az containerapp env create \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location "$LOCATION"
Развертывание образа в приложении-контейнере
Теперь, когда вы создали среду, вы можете создать и развернуть приложение контейнера с помощью az containerapp create
команды.
Создайте и разверните приложение-контейнер с помощью следующей команды.
az containerapp create \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--environment $ENVIRONMENT \
--image $ACR_NAME.azurecr.io/$API_NAME \
--target-port 8080 \
--ingress external \
--registry-server $ACR_NAME.azurecr.io \
--user-assigned "$IDENTITY_ID" \
--registry-identity "$IDENTITY_ID" \
--query properties.configuration.ingress.fqdn
Для этого
--ingress
external
приложение контейнера доступно из общедоступного Интернета.Для
target-port
параметра задано8080
соответствие порта, прослушиваемого контейнером запросов.query
Без свойства вызовaz containerapp create
возвращает ответ JSON, содержащий широкий набор сведений о приложении. Добавление параметра запроса фильтрует выходные данные только для полного доменного имени приложения (FQDN).Эта команда добавляет роль в
acrPull
управляемое удостоверение, назначаемое пользователем, поэтому она может извлекать образы из реестра контейнеров.
Проверка развертывания
Скопируйте полное доменное имя в веб-браузер. В веб-браузере перейдите к конечной точке /albums
полного доменного имени.
Очистка ресурсов
Если вы не будете продолжать работу с руководством по обмену данными между микрослужбами , вы можете удалить ресурсы Azure, созданные в ходе этого краткого руководства. Выполните следующую команду, чтобы удалить группу ресурсов вместе со всеми ресурсами, созданными в этом кратком руководстве.
az group delete --name $RESOURCE_GROUP
Совет
Возникли проблемы? Сообщите о них в репозитории Azure Container Apps на GitHub.
Следующие шаги
Это краткое руководство — это точка входа для набора прогрессивных руководств, демонстрирующих различные функции в приложениях контейнеров Azure. Узнайте, как включить взаимодействие с веб-интерфейсом, который вызывает API, развернутый в этой статье.