Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Dapr (распределенная среда выполнения приложений) помогает разработчикам создавать устойчивые и надежные микрослужбы. В этом кратком руководстве описано, как разрешить запуск на стороне Dapr наряду с двумя приложениями-контейнерами, которые создают и используют сообщения, хранящиеся в хранилище состояний Хранилище BLOB-объектов Azure. Используя либо файлы Azure Resource Manager, либо Bicep, вы:
- Передайте команды Azure CLI для развертывания шаблона , который запускает все необходимые микрослужбы.
- Проверьте взаимодействие между двумя микрослужбами в портал Azure.
В этом кратком руководстве описаны приложения, развернутые в кратком руководстве dapr Hello World с открытым кодом.
Необходимые компоненты
- Установка интерфейса командной строки Azure
- Установка репозитория Git
- Учетная запись Azure с активной подпиской. Если ее нет, можно создать учетную запись бесплатно.
- Учетная запись GitHub. Если у вас еще нет одного, зарегистрируйтесь бесплатно.
Настройка
Чтобы войти в 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"
Подготовка репозитория GitHub
Перейдите в репозиторий с файлами ARM и Bicep, которые используются для развертывания решения.
Нажмите кнопку "Вилку" в верхней части репозитория, чтобы вставить репозиторий в учетную запись.
Теперь вы можете клонировать вилку, чтобы работать с ней локально.
Используйте следующую команду Git, чтобы клонировать вилку репозитория в каталог acadapr-templates .
git clone https://github.com/$GITHUB_USERNAME/Tutorial-Deploy-Dapr-Microservices-ACA.git acadapr-templates
Развернуть
Перейдите к каталогу acadapr-templates и выполните следующую команду:
az deployment group create \
--resource-group "$RESOURCE_GROUP" \
--template-file ./azuredeploy.json \
--parameters environment_name="$CONTAINERAPPS_ENVIRONMENT"
Может отображаться предупреждение (BCP081). Это предупреждение не влияет на успешность развертывания приложения.
az deployment group create \
--resource-group "$RESOURCE_GROUP" \
--template-file ./azuredeploy.bicep \
--parameters environment_name="$CONTAINERAPPS_ENVIRONMENT"
Эта команда развертывает следующее:
- Среда "Приложения контейнеров" и связанная рабочая область Log Analytics для размещения решения hello world Dapr.
- Экземпляр Application Insights для распределенной трассировки Dapr.
- Сервер приложений
nodeapp, работающийtargetPort: 3000с включенным dapr и настроенным с помощью:"appId": "nodeapp""appPort": 3000- Назначаемое пользователем удостоверение с доступом к хранилищу BLOB-объектов Azure с помощью назначения роли участника данных хранилища
- Компонент Dapr, используемый
"type": "state.azure.blobstorage"дляnodeappхранения состояния. - С поддержкой Dapr без головы
pythonapp, которая вызываетnodeappслужбу с помощью вызова службы Dapr. - Назначение роли идентификатора Microsoft Entra для приложения Node.js, используемого компонентом Dapr для установления подключения к хранилищу BLOB-объектов.
Проверьте результат.
Проверка успешного сохранения состояния
Чтобы убедиться, что службы работают правильно, просмотрите данные в учетной записи хранения Azure.
В браузере откройте портал Azure.
Перейдите к созданной учетной записи хранения в группе ресурсов.
Выберите контейнеры хранилища>данных в меню слева.
Выберите созданный контейнер.
Убедитесь, что в этом контейнере отображается файл с именем
order.Выберите файл .
Щелкните вкладку Изменить.
Нажмите кнопку Обновить и проверьте применение обновлений.
Просмотр журналов
Журналы из приложений-контейнеров хранятся в пользовательской ContainerAppConsoleLogs_CL таблице в рабочей области Log Analytics. Журналы можно просматривать через портал Azure или с помощью интерфейса командной строки. Сначала в рабочей области может возникнуть небольшая задержка.
Используйте следующую команду в Bash или PowerShell для просмотра журналов.
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 == 'nodeapp' and (Log_s contains 'persisted' or Log_s contains 'order') | project ContainerAppName_s, Log_s, TimeGenerated | take 5" \
--out table
В приведенных ниже выходных данных показан пример ответа, которого следует ожидать от этой команды.
ContainerAppName_s Log_s TableName TimeGenerated
-------------------- ------------------------------- ------------- ------------------------
nodeapp Got a new order! Order ID: 61 PrimaryResult 2021-10-22T21:31:46.184Z
nodeapp Successfully persisted state. PrimaryResult 2021-10-22T21:31:46.184Z
nodeapp Got a new order! Order ID: 62 PrimaryResult 2021-10-22T22:01:57.174Z
nodeapp Successfully persisted state. PrimaryResult 2021-10-22T22:01:57.174Z
nodeapp Got a new order! Order ID: 63 PrimaryResult 2021-10-22T22:45:44.618Z
Очистка ресурсов
Так как pythonapp непрерывно выполняет вызовы nodeapp с сообщениями, которые сохраняются в настроенном хранилище состояний, важно выполнить эти действия по очистке, чтобы избежать текущих оплачиваемых операций.
Если вы хотите удалить ресурсы, созданные в рамках этого пошагового руководства, выполните следующую команду.
az group delete \
--resource-group $RESOURCE_GROUP
Совет
Возникли проблемы? Сообщите о них в репозитории Azure Container Apps на GitHub.