本文示範如何更新您在上一篇文章中建立的容器應用程式: 建置原始程式碼並將其部署至 Azure Container Apps。
如果您尚未完成上一篇文章中的步驟,請在此停止並返回本文,一旦完成所有步驟。
在本教學課程中,您會:
- 對您的應用程式進行程式碼變更。
- 使用新的標記將變更推送至容器登錄。
- 在瀏覽器中檢視更新的應用程式。
- 查詢記錄數據流以檢視記錄的訊息。
必要條件
若要完成此專案,您需要在上一個教學課程中建立的工具、資源和容器應用程式, 從原始程式碼建置和部署至 Azure Container Apps。
設定
如有必要,請從 CLI 登入 Azure。
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!"); }); }); } }此版本的程式代碼會註冊記錄器,以將資訊寫出至主控台和 Container Apps 記錄數據流。
在發行組態中建置您的專案。
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 容器應用程式存放庫中提出問題,讓我們在 GitHub 上了解該問題。
下一步
繼續瞭解如何連線到 Azure Container Apps 中的服務。