共用方式為


連線至應用程式執行個體以進行疑難排解

注意

基本標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告

標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps

本文適用於: ✔️ 基本/標準 ✔️ 企業

本文說明如何存取應用程式實例內的殼層環境,以執行進階疑難解答。

雖然 Azure Spring Apps 提供各種受控疑難解答方法,但您可能想要使用殼層環境執行進階疑難解答。 例如,您可能想要完成下列疑難解答工作:

  • 直接使用 Java 開發工具套件 (JDK) 工具。
  • 針對應用程式的後端服務進行診斷,以取得虛擬網路和非虛擬網路實例的網路連線和 API 呼叫延遲。
  • 診斷記憶體容量、效能和CPU/記憶體問題。

必要條件

  • 使用 Azure Spring 應用程式延伸模組的 Azure CLI。 使用下列命令移除舊版並安裝最新的延伸模組。 如果您先前已安裝 spring-cloud 延伸模組,請將其解除安裝,以避免設定與版本不符。

    az extension remove --name spring
    az extension add --name spring
    az extension remove --name spring-cloud
    
  • Azure Spring Apps 中已部署的應用程式。

  • 如果您已部署自定義容器,則為殼層程式。 預設值為 /bin/sh

指派 Azure 角色

線上到應用程式實例之前,您必須獲得 Azure Spring Apps Connect 角色的角色。 連線到應用程式實體需要資料動作權限 Microsoft.AppPlatform/Spring/apps/deployments/connect/action

您可以使用 Azure 入口網站 或 Azure CLI 來指派 Azure 角色。

使用下列步驟,使用 Azure 入口網站 指派 Azure 角色。

  1. 開啟 Azure 入口網站

  2. 開啟現有的 Azure Spring Apps 服務實例。

  3. 從左側功能表中選取 [存取控制 (IAM)]

  4. 在命令行中選取 [新增 ],然後選取 [ 新增角色指派]。

    存取控制(IAM) 頁面的螢幕快照,其中顯示 [新增角色指派] 命令。

  5. 在清單中搜尋 Azure Spring Apps Connect 角色 ,然後選取 [ 下一步]。

    [新增角色指派] 頁面的螢幕快照,其中顯示 Azure Spring Apps Connect 角色。

  6. 選取 [ 選取成員],然後搜尋您的用戶名稱。

  7. 選取檢閱+指派

線上到應用程式實例

您可以使用 Azure 入口網站 或 Azure CLI 連線到應用程式實例。

使用下列步驟,使用 Azure 入口網站 連線到應用程式實例。

  1. 開啟 Azure 入口網站

  2. 開啟現有的 Azure Spring Apps 服務實例。

  3. 從左側功能表選取 [應用程式],然後選取其中一個應用程式。

  4. 從左側功能表中選取 [ 控制台 ]。

  5. 選取應用程式實例。

    顯示應用程式實例的 [Azure 入口網站 控制台] 頁面螢幕快照。

  6. 選取或輸入殼層以在容器中執行。

    Azure 入口網站 主控台頁面的螢幕快照,其中顯示自定義殼層專案。

  7. 選取 Connect

    顯示 [連線] 命令之 [Azure 入口網站 控制台] 頁面的螢幕快照。

針對您的應用程式實例進行疑難解答

線上到應用程式實例之後,您可以檢查堆積記憶體的狀態。

使用下列命令來尋找 Java 行程識別碼,通常是 1

jps

輸出看起來會如下列範例所示:

顯示 jps 命令輸出的螢幕快照。

然後使用下列命令來執行 JDK 工具來檢查結果:

jstat -gc 1

輸出看起來會如下列範例所示:

顯示 jstat 命令輸出的螢幕快照。

中斷與應用程式實例的連線

當您完成疑難解答時,請使用 exit 命令來中斷應用程式實例的連線,或按 Ctrl+d

疑難排解工具

下列清單描述一些可用於疑難解答的預安裝工具:

  • lsof - 列出開啟的檔案。
  • top - 顯示系統摘要資訊和目前使用率。
  • ps - 取得執行中進程的快照集。
  • netstat - 列印網路連接和介面統計數據。
  • nslookup - 以互動方式查詢因特網名稱伺服器。
  • ping - 測試是否可以連線到網路主機。
  • nc - 使用 TCP 或 UDP 讀取和寫入網路連線。
  • wget - 可讓您下載檔案,並與 REST API 互動。
  • df - 顯示可用磁碟空間量。

您也可以使用 JDK 配套工具,例如 jpsjcmdjstat

下列清單顯示可用的工具,取決於您的服務方案和應用程式部署類型:

  • 原始碼、JAR 和成品部署:
    • 基本、標準和標準取用和專用方案:
      • 一般工具 - 是
      • JDK 工具 - 是,僅適用於 Java 工作負載。
    • 企業方案:
      • 一般工具 - 取決於您在建置器中選擇的 OS 堆疊。 是,適用於完整的OS堆疊。 否,適用於基底OS堆疊。
      • JDK 工具 - 是,僅適用於 Java 工作負載。
  • 自定義映像部署:視映射中已安裝的工具集而定。

注意

原始碼部署類型的路徑中不包含 JDK 工具。 執行 export PATH="$PATH:/layers/tanzu-buildpacks_microsoft-openjdk/jdk/bin" 任何 JDK 命令之前執行。

限制

在應用程式實例內使用殼層環境有下列限制:

  • 因為應用程式是以非根使用者身分執行,因此您無法執行需要根許可權的一些動作。 例如,您無法使用系統套件管理員 apt / yum來安裝新的工具。

  • 由於禁止某些 Linux 功能,因此需要特殊許可權的工具,例如 tcpdump,無法運作。

下一步