共用方式為


教學課程:在已啟用 Azure Arc 的 Kubernetes 上建立 Azure 容器應用程式 (預覽)

在本教學課程中,您會將容器應用程式建立至已啟用 Azure Arc 的 Kubernetes 叢集 (預覽),並了解如何:

  • 在 Azure Arc 上建立容器應用程式
  • 檢視應用程式的診斷

必要條件

在繼續建立容器應用程式之前,您必須先設定已啟用 Azure Arc 的 Kubernetes 叢集,以執行 Azure 容器應用程式

新增 Azure CLI 延伸模組

Azure Cloud Shell 中啟動 Bash 環境。

在新視窗中啟動 Cloud Shell。

接下來,新增必要的 Azure CLI 延伸模組。

警告

下列命令會安裝無法與公用雲端服務搭配使用的自訂容器應用程式延伸模組。 如果您切換回 Azure 公用雲端,則必須解除安裝延伸模組。

az extension add --upgrade --yes --name customlocation
az extension add --name containerapp  --upgrade --yes

建立資源群組

針對本教學課程中建立的服務建立資源群組。

GROUP_NAME="my-container-apps-resource-group"
az group create --name $GROUP_NAME --location eastus 

取得自訂位置資訊

從叢集管理員取得下列位置群組、名稱和識別碼。 如需詳細資訊,請參閱建立自訂位置

CUSTOM_LOCATION_GROUP="<RESOURCE_GROUP_CONTAINING_CUSTOM_LOCATION>"
CUSTOM_LOCATION_NAME="<NAME_OF_CUSTOM_LOCATION>"

取得自訂位置識別碼。

CUSTOM_LOCATION_ID=$(az customlocation show \
    --resource-group $CUSTOM_LOCATION_GROUP \
    --name $CUSTOM_LOCATION_NAME \
    --query id \
    --output tsv)

擷取連線環境識別碼

現在您已擁有自訂位置識別碼,您可以查詢連線環境。

線上的環境與標準 Container Apps 環境大致相同,但已啟用 Arc 的基礎 Kubernetes 叢集會控制網路限制。

CONTAINER_APP_NAME="my-container-app"
CONNECTED_ENVIRONMENT_ID=$(az containerapp connected-env list --custom-location $CUSTOM_LOCATION_ID -o tsv --query '[].id')

建立應用程式

下列範例會建立 Node.js 應用程式。

 az containerapp create \
    --resource-group $GROUP_NAME \
    --name $CONTAINER_APP_NAME \
    --environment $CONNECTED_ENVIRONMENT_ID \
    --environment-type connected \
    --image mcr.microsoft.com/k8se/quickstart:latest \
    --target-port 80 \
    --ingress external

az containerapp browse --resource-group $GROUP_NAME --name $CONTAINER_APP_NAME

使用 Log Analytics 取得診斷記錄

注意

當您安裝容器應用程式延伸模組以檢視診斷資訊時,需要 Log Analytics 組態。 如果您安裝了不含 Log Analytics 的擴充功能,請略過此步驟。

瀏覽至使用容器應用程式延伸模組設定的 Log Analytics 工作區,然後選取左側導覽中的 [記錄]

執行下列範例查詢,以顯示過去 72 小時內的記錄。

如果在執行查詢時發生錯誤,請在 10-15 分鐘內再試一次。 Log Analytics 可能會延遲從您的應用程式開始接收記錄。

let StartTime = ago(72h);
let EndTime = now();
ContainerAppConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where ContainerAppName_s =~ "my-container-app"

Kubernetes 叢集中裝載之所有應用程式的應用程式記錄都會記錄於名為 ContainerAppConsoleLogs_CL 的自訂記錄資料表中的 Log Analytics 工作區。

  • Log_s 包含指定容器應用程式延伸模組的應用程式記錄
  • AppName_s 包含容器應用程式名稱。 除了您透過應用程式程式碼撰寫的記錄之外,Log_s 資料行也包含容器啟動和關機的記錄。

您可以在開始使用 Kusto 中深入了解記錄查詢。

下一步