共用方式為


連線 至應用程式實例以進行疑難解答

注意

Azure Spring Apps 是 Azure Spring Cloud 服務的新名稱。 雖然服務有新的名稱,但在我們努力更新資產,例如螢幕快照、影片和圖表時,您會在某些地方看到舊名稱一段時間。

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

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

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

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

必要條件

  • 具有 Azure Spring Apps 擴充功能的 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 連線 角色的角色。 連線 至應用程式實例需要資料動作權限 Microsoft.AppPlatform/Spring/apps/deployments/connect/action

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

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

  1. 開啟 Azure 入口網站

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

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

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

    Screenshot of the Access Control(IAM) page showing the Add role assignment command.

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

    Screenshot of the Add role assignment page showing the Azure Spring Apps Connect Role.

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

  7. 選取檢閱+指派

連線 至應用程式實例

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

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

  1. 開啟 Azure 入口網站

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

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

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

  5. 選取應用程式實例。

    Screenshot of the Azure portal Console page showing an app instance.

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

    Screenshot of the Azure portal Console page showing a Custom Shell entry.

  7. 選取 Connect

    Screenshot of the Azure portal Console page showing the Connect command.

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

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

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

jps

輸出看起來應該像下列範例:

Screenshot showing the output of the jps command.

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

jstat -gc 1

輸出看起來應該像下列範例:

Screenshot showing the output of the jstat command.

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

當您完成疑難解答時,請使用 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,無法運作。

下一步