Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
С помощью службы "Контейнеры приложений Azure" можно запускать микрослужбы и контейнерные приложения на бессерверной платформе. Благодаря контейнерным приложениям вы можете пользоваться преимуществами запуска контейнеров, избавляясь от забот о ручной настройке облачной инфраструктуры и сложных оркестраторах контейнеров.
В этой статье показано, как развернуть существующий контейнер в Контейнерах приложений Azure.
Примечание.
Авторизация частного реестра поддерживается с помощью имени пользователя и пароля реестра.
Предварительные условия
- Учетная запись Azure с активной подпиской.
- Если у вас нет учетной записи, вы можете создать ее бесплатно.
- Установите интерфейс командной строки Azure.
- Доступ к общедоступному или частному реестру контейнеров, например к Реестр контейнеров Azure.
Настройка
Чтобы войти в Azure из ИНТЕРФЕЙСА командной строки, выполните следующую команду и следуйте инструкциям, чтобы завершить процесс проверки подлинности.
az login
Чтобы убедиться, что вы используете последнюю версию интерфейса командной строки, выполните команду обновления.
az upgrade
Затем установите или обновите расширение "Приложения контейнеров Azure" для интерфейса командной строки.
Если при выполнении команд az containerapp в Azure CLI или командлетов из модуля Az.App в PowerShell возникают ошибки об отсутствующих параметрах, убедитесь, что у вас установлена последняя версия расширения для Azure Container Apps.
az extension add --name containerapp --upgrade
Примечание.
Начиная с мая 2024 г. расширения Azure CLI больше не поддерживают предварительные версии функций по умолчанию. Чтобы получить доступ к функциям предварительной версии "Container Apps", установите расширение --allow-preview true "Container Apps".
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"
Создание приложения-контейнера
Создав среду, вы можете развернуть первое приложение-контейнер.
Задайте переменные среды.
Замените значения
<PLACEHOLDERS>на свои. Имя пользователя обычно будет иметь формат адреса электронной почты (например,[email protected]).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>Создайте хранилище ключей.
Хранение пароля реестра контейнеров с помощью службы, такой как Azure Key Vault , всегда обеспечивает безопасность значений. В этом разделе показано, как создать хранилище ключей, сохранить пароль реестра контейнеров в Key Vault, а затем получить пароль для использования в коде.
az keyvault create --name $KEY_VAULT_NAME --resource-group $RESOURCE_GROUPПредоставьте учетным записям пользователя разрешения на управление секретами в хранилище ключей.
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"Сохраните пароль реестра контейнеров в хранилище ключей.
Замените
<REGISTRY_PASSWORD>значением.az keyvault secret set --vault-name $KEY_VAULT_NAME --name $SECRET_NAME --value "<REGISTRY_PASSWORD>"Извлеките пароль реестра контейнеров из хранилища ключей.
REGISTRY_PASSWORD=$(az keyvault secret show --name $SECRET_NAME --vault-name $KEY_VAULT_NAME --query value --output tsv)Разверните образ контейнера в приложениях контейнеров 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-адрес приложения.
Задайте переменные среды.
CONTAINER_APP_NAME=my-container-app CONTAINER_IMAGE_NAME=mcr.microsoft.com/k8se/quickstart:latestРазверните образ контейнера в приложениях контейнеров 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
Совет
Возникли проблемы? Сообщите нам на GitHub, создав запрос в репозитории Azure Container Apps.