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


Краткое руководство. Развертывание существующего образа контейнера с помощью командной строки

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

В этой статье показано, как развернуть существующий контейнер в Контейнерах приложений Azure.

Примечание.

Авторизация частного реестра поддерживается с помощью имени пользователя и пароля реестра.

Необходимые компоненты

Настройка

Чтобы войти в 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

Настройка переменных среды

Задайте следующие переменные среды. Замените значения следующими <PLACEHOLDERS> значениями:

RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"

создание группы ресурсов Azure;

Создайте группу ресурсов для упорядочивания служб, связанных с развертыванием приложения контейнера.

az group create \
  --name $RESOURCE_GROUP \
  --location "$LOCATION"

Создать среду

Среда в Azure Container Apps создает безопасную границу вокруг группы приложений-контейнеров. Развертываемые в одной среде приложения-контейнеры развертываются в одной виртуальной сети и записывают журналы в одну рабочую область Log Analytics.

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

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION"

Создание приложения-контейнера

Создав среду, вы можете развернуть первое приложение-контейнер.

  1. Задайте переменные среды.

    Замените <PLACEHOLDERS> значения своими значениями. Имя субъекта-пользователя обычно будет иметь формат адреса электронной почты (например, username@domain.com).

     CONTAINER_APP_NAME=my-container-app
     KEY_VAULT_NAME=my-key-vault
     USER_PRINCIPAL_NAME=<USER_PRINCIPAL_NAME>
     SECRET_NAME=my-secret-name
     CONTAINER_IMAGE_NAME=<CONTAINER_IMAGE_NAME>
     REGISTRY_SERVER=<REGISTRY_SERVER>
     REGISTRY_USERNAME=<REGISTRY_USERNAME>
    
  2. Создайте хранилище ключей.

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

     az keyvault create --name $KEY_VAULT_NAME --resource-group $RESOURCE_GROUP
    
  3. Предоставьте учетным записям пользователя разрешения на управление секретами в хранилище ключей.

     KEY_VAULT_ID=$(az keyvault show --name $KEY_VAULT_NAME --query id --output tsv)
     az role assignment create --role "Key Vault Secrets Officer" --assignee "$USER_PRINCIPAL_NAME" --scope "$KEY_VAULT_ID"
    
  4. Сохраните пароль реестра контейнеров в хранилище ключей.

    Замените <REGISTRY_PASSWORD> значением.

     az keyvault secret set --vault-name $KEY_VAULT_NAME --name $SECRET_NAME --value "<REGISTRY_PASSWORD>"
    
  5. Извлеките пароль реестра контейнеров из хранилища ключей.

     REGISTRY_PASSWORD=$(az keyvault secret show --name $SECRET_NAME --vault-name $KEY_VAULT_NAME --query value --output tsv)
    
  6. Разверните образ контейнера в приложениях контейнеров Azure.

     az containerapp create \
       --name $CONTAINER_APP_NAME \
       --location $LOCATION \
       --resource-group $RESOURCE_GROUP \
       --image $CONTAINER_IMAGE_NAME \
       --environment $CONTAINERAPPS_ENVIRONMENT \
       --registry-server $REGISTRY_SERVER \
       --registry-username $REGISTRY_USERNAME \
       --registry-password $REGISTRY_PASSWORD
    

    Если вы включили входящий трафик в приложении-контейнере, можно добавить --query properties.configuration.ingress.fqdn в команду create, чтобы получить общедоступный URL-адрес приложения.

  1. Задайте переменные среды.

     CONTAINER_APP_NAME=my-container-app
     CONTAINER_IMAGE_NAME=mcr.microsoft.com/k8se/quickstart:latest
    
  2. Разверните образ контейнера в приложениях контейнеров Azure.

     az containerapp create \
       --image $CONTAINER_IMAGE_NAME \
       --name $CONTAINER_APP_NAME \
       --resource-group $RESOURCE_GROUP \
       --environment $CONTAINERAPPS_ENVIRONMENT
    

    Если вы включили входящий трафик в приложении-контейнере, можно добавить --query properties.configuration.ingress.fqdn в команду create, чтобы получить общедоступный URL-адрес приложения.


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

Чтобы убедиться, что развертывание было выполнено успешно, можно запросить рабочую область Log Analytics. Возможно, вам придется подождать несколько минут после развертывания, чтобы аналитика прибыла в первый раз, прежде чем вы сможете запросить журналы. Это зависит от ведения журнала консоли, реализованного в приложении контейнера.

Используйте следующие команды для просмотра сообщений журнала консоли.

LOG_ANALYTICS_WORKSPACE_CLIENT_ID=`az containerapp env show --name $CONTAINERAPPS_ENVIRONMENT --resource-group $RESOURCE_GROUP --query properties.appLogsConfiguration.logAnalyticsConfiguration.customerId --out tsv`

az monitor log-analytics query \
  --workspace $LOG_ANALYTICS_WORKSPACE_CLIENT_ID \
  --analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == $CONTAINER_APP_NAME | project ContainerAppName_s, Log_s, TimeGenerated" \
  --out table

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

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

Внимание

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

az group delete --name $RESOURCE_GROUP

Совет

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

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