即時串流 Azure Spring Apps 作業記錄 (預覽)
注意
基本、標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告。
標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps。
本文適用於:❌基本/標準 ✔️ Enterprise
本文說明如何使用 Azure CLI 取得作業的實時記錄以進行疑難解答。 您也可以使用診斷設定,分析 Azure Spring 應用程式中的診斷資料。 若要深入了解,請參閱使用診斷設定分析記錄和計量。 如需串流記錄的詳細資訊,請參閱 即時 串流 Azure Spring Apps 應用程式控制台記錄和 即時串流 Azure Spring Apps 受控元件記錄。
必要條件
- 具有 Azure Spring Apps 擴充功能的 Azure CLI 1.24.0 版或更高版本。 您可以使用下列命令來安裝擴充功能:
az extension add --name spring
。
指派 Azure 角色
若要串流作業記錄,您必須指派相關的 Azure 角色給您。 下表列出此角色獲授與許可權的必要角色和作業:
必要角色 | Operations |
---|---|
Azure Spring Apps 作業記錄讀取者角色 | Microsoft.AppPlatform/Spring/jobs/executions/logstream/action Microsoft.AppPlatform/Spring/jobs/executions/listInstances/action |
使用下列步驟,使用 Azure 入口網站 指派 Azure 角色:
開啟 Azure 入口網站。
開啟您的 Azure Spring Apps 服務實例。
在瀏覽窗格中,選取 [存取控制 [IAM]。
在 [存取控制 (IAM) 頁面上,選取 [新增],然後選取 [新增角色指派]。
在 [ 新增角色指派 ] 頁面上的 [ 名稱] 清單中,搜尋並選取目標角色,然後選取 [ 下一步]。
選取 [ 成員 ],然後搜尋並選取您的用戶名稱。
選取檢閱+指派。
檢視尾日誌
本節提供使用 Azure CLI 來產生結尾記錄的範例。
檢視特定實例的尾日誌
每次觸發作業時,都會建立新的作業執行。 此外,視作業的平行處理原則設定而定,數個複本或實例會以平行方式執行。
使用下列命令來列出作業執行中的所有實例:
az spring job execution instance list \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--job <job-name> \
--execution <job-execution-name>
您可以從輸出取得作業執行的所有實例名稱。
若要檢視特定實例的尾日誌,請使用 az spring job logs
命令搭配 -i/--instance
自變數,如下列範例所示:
az spring job logs \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <job-name> \
--execution <job-execution-name> \
--instance <instance-name>
在一個命令中檢視所有實例的尾日誌
若要檢視所有實例的尾日誌,請使用 --all-instances
自變數,如下列範例所示。 實例名稱是每個記錄行的前置詞。 當有多個實例時,會針對每個實例以批次方式列印記錄。 如此一來,一個實例的記錄就不會與另一個實例的記錄交錯。
az spring job logs \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <job-name> \
--execution <job-execution-name> \
--all-instances
持續串流新記錄
根據預設, az spring job logs
只會列印串流至控制台的現有記錄,然後結束。 如果您想要串流新的記錄,請新增 -f/--follow
自變數。
當您使用 -f/--follow
選項來尾端立即記錄時,除非作業持續寫入記錄,否則 Azure Spring Apps 記錄串流服務會每分鐘傳送活動訊號記錄至用戶端。 活動訊號記錄訊息會使用下列格式:2023-12-18 09:12:17.745: No log from server
。
特定實例的串流記錄
使用下列命令來取得特定實體的實體名稱和串流記錄:
az spring job execution instance list \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--job <job-name> \
--execution <job-execution-name>
az spring job logs \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <job-name> \
--execution <job-execution-name> \
--instance <instance-name> \
--follow
所有實例的串流記錄
使用下列命令來串流所有實體的記錄:
az spring job logs \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--name <job-name> \
--execution <job-execution-name> \
--all-instances \
--follow
當您在作業執行中串流多個實例的記錄時,一個實例的記錄會與其他實例的記錄交錯。
在虛擬網路插入實例中串流記錄
針對部署在自訂虛擬網路中的 Azure Spring 應用程式執行個體,您可以根據預設從私人網路存取記錄串流。 如需詳細資訊,請參閱在虛擬網路中部署 Azure Spring Apps
Azure Spring Apps 也可讓您從公用網路存取即時作業記錄。
注意
在公用網路上啟用記錄串流端點,會將公用輸入 IP 新增至您的虛擬網路。 如果您對此有所顧慮,使用時請務必小心。
使用下列步驟在公用網路上啟用記錄串流端點:
啟用記錄串流公用端點之後,您可以從公用網路存取作業記錄,就像存取一般實例一樣。
保護記錄串流公用端點的流量
作業的記錄串流會使用 Azure RBAC 來驗證作業的連線。 因此,只有具有適當角色的使用者才能存取記錄。
若要確保作業在公開公用端點時的安全性,請使用網路安全組篩選網路流量來保護您的端點。 如需詳細資訊,請檢閱教學課程:使用 Azure 入口網站透過網路安全性群組篩選網路流量。 網路安全性群組包含安全性規則,用來允許或拒絕進出多種 Azure 資源類型的輸入和輸出網路流量。 針對每個規則,您可以指定來源與目的地、連接埠和通訊協定。
注意
如果您在啟用記錄串流公用端點之後,無法從因特網存取虛擬網路插入實例中的作業記錄,請檢查您的網路安全組,以查看您是否允許這類輸入流量。
下表顯示我們建議的基本規則範例。 您可以使用 nslookup
之類的命令搭配端點 <service-name>.private.azuremicroservices.io
來取得服務的目標 IP 位址。
優先順序 | 名稱 | 連接埠 | 通訊協定 | 來源 | Destination | 動作 |
---|---|---|---|---|---|---|
100 | 規則名稱 | 80 | TCP | 網際網路 | 服務 IP 位址 | 允許 |
110 | 規則名稱 | 443 | TCP | 網際網路 | 服務 IP 位址 | 允許 |