Поделиться через


Руководство. Создание и развертывание приложения в приложениях контейнеров Azure

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

Это первое руководство в серии статей, которые показано, как использовать основные возможности в приложениях контейнеров Azure. Первым шагом является создание серверной веб-службы API, которая возвращает статическую коллекцию музыкальных альбомов.

Примечание.

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

В следующем руководстве серии будет построено и развернуто интерфейсное веб-приложение в приложениях контейнеров Azure.

На следующем снимке экрана показаны выходные данные api альбомов, развернутые в этом руководстве.

Снимок экрана: ответ конечной точки 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

  1. После создания образа контейнера API альбома создайте экземпляр Реестр контейнеров Azure (ACR) в группе ресурсов для его хранения.

    az acr create \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION \
        --name $ACR_NAME \
        --sku Basic
    
  2. Реестр контейнеров должен разрешить маркеры аудитории 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 с помощью управляемых удостоверений для проверки подлинности. По возможности используйте управляемое удостоверение, назначаемое пользователем, для извлечения изображений.

  1. Создайте управляемое удостоверение, назначаемое пользователем. Перед выполнением следующих команд выберите имя управляемого удостоверения и замените \<PLACEHOLDER\> его именем.

    IDENTITY="<YOUR_IDENTITY_NAME>"
    
    az identity create \
        --name $IDENTITY \
        --resource-group $RESOURCE_GROUP
    
  2. Получите идентификатор ресурса удостоверения.

    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
  • Для этого --ingressexternalприложение контейнера доступно из общедоступного Интернета.

  • Для target-port параметра задано 8080 соответствие порта, прослушиваемого контейнером запросов.

  • query Без свойства вызов az containerapp create возвращает ответ JSON, содержащий широкий набор сведений о приложении. Добавление параметра запроса фильтрует выходные данные только для полного доменного имени приложения (FQDN).

  • Эта команда добавляет роль в acrPull управляемое удостоверение, назначаемое пользователем, поэтому она может извлекать образы из реестра контейнеров.

Проверка развертывания

Скопируйте полное доменное имя в веб-браузер. В веб-браузере перейдите к конечной точке /albums полного доменного имени.

Снимок экрана: ответ конечной точки API альбомов.

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

Если вы не будете продолжать работу с руководством по обмену данными между микрослужбами , вы можете удалить ресурсы Azure, созданные в ходе этого краткого руководства. Выполните следующую команду, чтобы удалить группу ресурсов вместе со всеми ресурсами, созданными в этом кратком руководстве.

az group delete --name $RESOURCE_GROUP

Совет

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

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

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