Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как обновить приложение контейнера, созданное в предыдущей статье, создание и развертывание исходного кода в приложениях контейнеров Azure.
Если вы не выполнили действия, описанные в предыдущей статье, остановите эту статью и вернитесь к этой статье после выполнения всех действий.
Изучив этот учебник, вы:
- Внесите изменения кода в приложение.
- Отправьте изменения в реестр контейнеров с новым тегом.
- Просмотр обновленного приложения в браузере.
- Запросите поток журнала для просмотра зарегистрированных сообщений.
Необходимые компоненты
Чтобы завершить этот проект, вам потребуются средства, ресурсы и приложение контейнера, созданные в предыдущем руководстве, сборка и развертывание из исходного кода в приложения контейнеров Azure.
Настройка
При необходимости войдите в Azure из CLI.
az loginСоздайте переменные среды. Если переменные среды из последнего руководства по-прежнему существуют в терминале, этот шаг можно пропустить.
Если необходимо повторно создать переменные среды, сначала необходимо запросить имя реестра контейнеров, созданное в последней статье.
Выполните следующую команду, чтобы запросить реестр контейнеров, созданный в последнем руководстве.
az acr list --query "[].{Name:name}" --output tableПосле получения имени реестра контейнеров замените
<REGISTRY_NAME>его именем реестра и выполните следующую команду.RESOURCE_GROUP="my-demo-group" CONTAINER_APP_NAME="my-demo-app" REGISTRY_NAME="<REGISTRY_NAME>"Обновите и запустите исходный код.
Замените все содержимое
Startup.csследующим кодом:public class Startup { public void ConfigureServices(IServiceCollection services) { } public void Configure(IApplicationBuilder app, ILogger<Startup> logger) { app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapGet("/", async context => { logger.LogInformation("Hello Logger!"); await context.Response.WriteAsync("Hello Logger!"); }); }); } }Эта версия кода регистрирует средство ведения журнала для записи сведений в консоль и поток журналов приложений контейнеров.
Создайте проект в конфигурации выпуска.
dotnet build -c ReleaseЗатем запустите приложение, чтобы убедиться, что код реализован правильно.
dotnet run --configuration Release
Создание и отправка образа в реестр
Теперь, когда код обновлен, вы можете отправить последнюю версию в реестр контейнеров в качестве нового образа.
Чтобы убедиться, что тег, используемый для реестра, является уникальным, используйте следующую команду, чтобы создать имя тега.
IMAGE_TAG=$(date +%s)
Теперь вы можете создать и отправить новый образ контейнера в реестр с помощью следующей команды.
az acr build \
-t $REGISTRY_NAME.azurecr.io/$CONTAINER_APP_NAME:$IMAGE_TAG \
-r $REGISTRY_NAME .
Создание новой редакции
Вы можете создать новую редакцию приложения-контейнера на основе нового образа контейнера, отправленного в реестр.
az containerapp revision copy \
--name $CONTAINER_APP_NAME \
--resource-group $RESOURCE_GROUP \
--image "$REGISTRY_NAME.azurecr.io/$CONTAINER_APP_NAME:$IMAGE_TAG" \
--output none
Команда revision copy создает новую редакцию приложения контейнера с указанным образом контейнера из реестра.
Проверка развертывания
Теперь, когда приложение развернуто, можно запросить URL-адрес с помощью этой команды.
az containerapp show \
--name $CONTAINER_APP_NAME \
--resource-group $RESOURCE_GROUP \
--query properties.configuration.ingress.fqdn -o tsv
В веб-браузере перейдите по URL-адресу приложения. После запуска приложения-контейнера он выводит Hello Logger!.
Поток журнала запросов
Вы только что видели выходные данные, отправленные в браузер, поэтому теперь можно использовать следующую команду, чтобы просмотреть сообщения, зарегистрированные в потоке журналов.
az containerapp logs show \
--name $CONTAINER_APP_NAME \
--resource-group $RESOURCE_GROUP \
--follow
Запрос возвращает ответ, аналогичный следующему примеру:
{"TimeStamp", "xxxx", "Log": "info: Microsoft.Hosting.Lifetime[0]"}
{"TimeStamp", "xxxx", "Log": "Hosting environment: Production"}
{"TimeStamp", "xxxx", "Log": "info: Microsoft.Hosting.Lifetime[0]"}
{"TimeStamp", "xxxx", "Log": "Content root path: /app"}
{"TimeStamp", "xxxx", "Log": "info: Startup[0]"}
{"TimeStamp", "xxxx", "Log": "Hello Logger!""}
Обратите внимание, как можно увидеть сообщение Hello Logger! в потоке.
Чтобы остановиться после потока, можно ввести cmd/CTRL + C , чтобы завершить сообщения.
Очистка ресурсов
Если вы не собираетесь использовать ресурсы Azure, созданные в этом руководстве, их можно удалить с помощью следующей команды.
az group delete --name my-demo-group
Совет
Возникли проблемы? Сообщите о них в репозитории Azure Container Apps на GitHub.
Следующие шаги
Узнайте, как подключиться к службам в приложениях контейнеров Azure.