共用方式為


在 Azure Spring Apps 中從遠端偵錯您的應用程式

注意

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

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

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

此功能說明如何在 Azure Spring Apps 中啟用應用程式的遠端偵錯。

必要條件

  • 使用 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 中已部署的應用程式。

啟用或停用遠端偵錯

基於安全性考慮,Azure Spring Apps 預設會停用遠端偵錯。 根據您的公司原則,您可以自行啟用應用程式的遠端偵錯,或看到系統管理員為您啟用它。 您可以使用 Azure CLI、Azure 入口網站 或 VS Code 擴充功能來啟用或停用遠端偵錯。

使用下列步驟,使用 Azure 入口網站 為您的應用程式啟用遠端偵錯:

  1. 瀏覽至您的應用程式頁面。

  2. 左側瀏覽窗格中的 [設定 ] 下,選取 [ 遠端偵錯]。

  3. 在 [ 遠端偵錯] 頁面上,啟用遠端偵錯並指定偵錯埠。

    顯示 [遠端偵錯] 頁面的 Azure 入口網站 螢幕快照,其中已選取 [遠端偵錯] 和 [偵錯埠] 選項。

指派 Azure 角色

若要從遠端偵錯應用程式實例,您必須獲授與角色 Azure Spring Apps Remote Debugging Role,其中包含 Microsoft.AppPlatform/Spring/apps/deployments/remotedebugging/action 數據動作許可權。

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

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

  1. 開啟 Azure 入口網站

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

  3. 在瀏覽窗格中,選取 [存取控制 (IAM)]。

  4. [存取控制 (IAM) 頁面上,選取 [新增],然後選取 [新增角色指派]。

    Azure Spring Apps 實例 Azure 入口網站 存取控制 (IAM) 頁面的螢幕快照,其中醒目提示 [新增角色指派] 選項。

  5. 在 [ 新增角色指派 ] 頁面上的 [ 名稱 ] 清單中,搜尋並選取 [Azure Spring Apps 遠端偵錯角色],然後選取 [ 下一步]。

    顯示 [新增角色指派] 頁面的 Azure 入口網站 螢幕快照,其中已醒目提示 Azure Spring Apps 遠端偵錯角色名稱。

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

  7. 選取檢閱+指派

從遠端偵錯應用程式實例

您可以使用適用於 IntelliJ 的 Azure 工具組或適用於 VS Code 的 Azure Spring Apps 擴充功能,從遠端偵錯應用程式實例。

本節說明如何使用適用於 IntelliJ 的 Azure 工具組遠端偵錯應用程式實例。

必要條件

啟用或停用遠端偵錯

使用下列步驟來啟用或停用遠端偵錯:

  1. 在 Azure Explorer 中登入您的 Azure 帳戶。

  2. 選取應用程式實例,然後選取 [ 啟用遠端偵錯]。

    IntelliJ 的螢幕快照,其中顯示 [啟用遠端偵錯] 功能表選項。

附加調試程式

使用下列步驟來附加調試程式。

  1. 選取應用程式實例,然後選取 [ 附加調試程式]。 IntelliJ 會連線到應用程式實例,並開始遠端偵錯。

    顯示 [附加調試程式] 選單選項的 IntelliJ 螢幕快照。

  2. 適用於 IntelliJ 的 Azure 工具組會建立遠端偵錯組態。 您可以在 [遠端 Jvm 偵錯] 底下 找到它」 設定您用於遠端偵錯之原始程式碼的模組類別路徑。

    顯示 [執行/偵錯組態] 頁面的 IntelliJ 螢幕快照。

疑難排解

本節提供疑難解答資訊。

  • 如果您無法附加除錯程式並收到類似 java.net.SocketException, connection resetFailed to attach to remote debugger, ClosedConnectionException的錯誤,請採取下列動作:

    • 請檢查 RBAC 角色,以確定您已獲授權從遠端偵錯應用程式實例。

    • 請確定您正在連線到有效的實例。 重新整理部署以取得最新的實例。

      IntelliJ 專案總管的螢幕快照,其中顯示 [應用程式實例] 節點的 [重新整理] 功能表選項。

  • 如果您成功附加除錯程式,但無法從遠端偵錯應用程式實例,請採取下列動作:

    • 請確定您的 IDE 包含您要偵錯的原始程式碼。
    • 請確定偵錯組態具有正確的模組類別路徑。

限制

只有 Java 應用程式才支援遠端偵錯。

計劃 部署類型 支援
標準和基本方案 Jar Yes
標準和基本方案 原始程式碼(Java) Yes
標準和基本方案 自訂映像 No
Enterprise 方案 Java 應用程式 Yes
Enterprise 方案 原始程式碼(Java) Yes
Enterprise 方案 自訂映像 No

提示

  • Java 遠端偵錯很危險,因為它允許遠端程式代碼執行。 Azure Spring Apps 可協助您保護用戶端 IDE 與遠端應用程式之間的通訊。 不過,您應該停用遠端偵錯,並在完成之後移除 RBAC 角色。
  • 您應該將應用程式實例中的規模調整為一個,以確保流量可以移至實例。

下一步