Azure Container Apps 平臺提供偵錯控制台,可協助您在下列情況下對應用程式進行疑難解答:
- 當您使用只包含應用程式和其運行時間相依性的容器,或「無散發套件」映射時,即無法連線到目標容器。
- 遇到網路問題時,您的映像沒有偵錯公用程式來調查它們。
您可以使用 Azure CLI 連線到偵錯控制台。
注意
偵錯主控台會建立個別的容器,其會與應用程式執行所在的容器共用基礎資源。 如果偵錯容器已經存在,偵錯控制台會重複使用現有的容器,而不是建立新的容器。 每個容器應用程式復本最多有一個執行偵錯容器。 如果您不需要讓偵錯容器繼續執行,請在偵錯控制台會話中輸入 exit 或使用 Ctrl/Cmd + D 。
Azure 命令列介面 (Azure CLI)
若要連接到偵錯控制台的容器,請使用 az containerapp debug 命令。 若要結束主控台,請輸入 exit 或使用 Ctrl/Cmd + D。
例如,使用下列命令,使用單一容器連線到容器應用程式中的容器偵錯控制台。 執行此命令之前,請將 取代 <PLACEHOLDERS> 為您的容器應用程式值。
az containerapp debug \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP>
若要使用多個修訂、複本和容器連線到容器應用程式中的容器偵錯控制台,請在命令中包含 az containerapp debug 下列參數。
| 論點 | 描述 |
|---|---|
--revision |
要偵錯之容器的修訂名稱。 |
--replica |
要偵錯之容器的複本名稱。 |
--container |
要偵錯之容器的容器名稱。 |
您可以使用 az containerapp revision list 命令取得修訂版名稱。 執行此命令之前,請將 取代 <PLACEHOLDERS> 為您的容器應用程式值。
az containerapp revision list \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--query "[].name"
使用 az containerapp replica list 命令取得複本和容器名稱。 執行此命令之前,請將 取代 <PLACEHOLDERS> 為您的容器應用程式值。
az containerapp replica list \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--revision <REVISION_NAME> \
--query "[].{Containers:properties.containers[].name, Name:name}"
使用 az containerapp debug 命令連線到容器偵錯控制台。 執行此命令之前,請將 取代 <PLACEHOLDERS> 為您的容器應用程式值。
az containerapp debug \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--revision <REVISION_NAME> \
--replica <REPLICA_NAME> \
--container <CONTAINER_NAME>
偵錯控制台中的內建工具
下列診斷工具會預安裝至偵錯控制台,以協助您針對問題進行疑難解答:
如果您要安裝其他工具,請執行 tdnf install -y <TOOL_NAME> 命令。 執行此命令之前,請將 取代 <PLACEHOLDERS> 為您的容器應用程式值。
例如,使用下列命令在偵錯控制台中安裝 JDK:
tdnf install -y msopenjdk-17
在偵錯控制台中存取容器的文件系統
根據預設,偵錯控制台會以根使用者身分執行。 您可以透過 /proc/1/cwd/ 目錄存取容器的檔案系統。 如果您的容器未以根使用者身分執行,請在存取 /proc/1/cwd/ 目錄之前執行下列命令,否則您會收到許可權拒絕錯誤。
switch-user
如需詳細資訊,請參閱下列 Linux 人頁: