View a markdown version of this page

使用 Visual Studio 程式碼遠端偵錯 Lambda 事件函數 - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Visual Studio 程式碼遠端偵錯 Lambda 事件函數

使用 中的遠端除錯功能AWS Toolkit for Visual Studio Code,您可以對直接在 AWS 雲端中執行的 Lambda 事件函數進行除錯。此功能在調查難以在本機重現,或僅透過日誌難以診斷的問題時相當實用。

透過遠端偵錯功能,您可以:

  • 在 Lambda 事件函數程式碼中設定中斷點。

  • 即時逐步執行程式碼。

  • 在執行時期內檢查變數與狀態。

  • 部署至 的偵錯 Lambda 事件函數 AWS,包括 VPCs或具有特定 IAM 許可的函數。

支援的執行時期

下列執行時期支援遠端偵錯功能:

  • Python (AL2023)

  • Java

  • JavaScript/Node.js (AL2023)

注意

x86_64 與 arm64 架構都支援遠端偵錯功能。

安全性與遠端偵錯

遠端偵錯功能會在現有的 Lambda 安全邊界內運作。使用者可以使用 UpdateFunctionConfiguration許可將 layer 連接至 Event Function,該許可已具備存取 Event Function 環境變數和組態的能力。遠端偵錯功能不會超出現有許可範圍,而是會透過安全通道與自動工作階段管理來新增額外的安全控制項。此外,遠端偵錯功能完全由客戶控制,需要明確的許可與動作:

  • IoT 安全通道建立:工具 AWS 組必須建立 IoT 安全通道,只有在使用者使用 的明確許可時才會發生iot:OpenTunnel。

  • 偵錯層連接與權杖管理:偵錯程序會透過下列控制項維持安全性:

    • 偵錯層必須連接到 Lambda 事件函數,此程序需要下列許可: lambda:UpdateFunctionConfiguration和 lambda:GetLayerVersion。

    • 在每次偵錯工作階段之前,更新事件函數環境變數中的安全字符 (透過 產生iot:OpenTunnel)。此步驟也需要 lambda:UpdateFunctionConfiguration。

    • 出於安全考量,此權杖會自動輪換,偵錯層也會在每個偵錯工作階段結束時自動移除,無法重複使用。

注意

x86_64 與 arm64 架構都支援遠端偵錯功能。

先決條件

開始遠端偵錯之前,確認已滿足以下條件:

  1. 部署至您 AWS 帳戶的 Lambda 事件函數。

  2. AWS Toolkit for Visual Studio Code。如需安裝說明,請參閱 Setting up the AWS Toolkit for Visual Studio Code。

  3. 您已安裝的 AWS Toolkit 版本為 3.69.0 或更新版本。

  4. AWS 在 中設定的登入資料 AWS Toolkit for Visual Studio Code。如需詳細資訊,請參閱身分驗證與存取控制。

遠端偵錯 Lambda 事件函數

請依照下列步驟啟動遠端偵錯工作階段:

  1. 選取左側邊欄中的 AWS 圖示,在 VS 程式碼中開啟 AWS Explorer。

  2. 展開 Lambda 區段以查看事件函數。

  3. 開啟您要偵錯之事件函數的內容功能表。

  4. 從內容功能表中,選擇遠端調用。

  5. 在開啟的調用視窗中,勾選啟用偵錯方塊。

  6. 按一下調用,啟動遠端偵錯工作階段。

注意

Lambda 事件函數對事件函數程式碼和所有連接的層有 250MB 的合併限制。遠端偵錯層會將大約 40MB 新增至事件函數的大小。

當您執行下列操作時,遠端偵錯工作階段將結束:

  • 在遠端調用組態畫面中,選擇移除偵錯設定。

  • 在 VS Code 偵錯控制項中,點選中斷連線圖示。

  • 在 VS Code 編輯器中,選取處理常式檔案。

注意

在上次調用結束後,若閒置超過 60 秒,系統會自動移除偵錯層。

停用遠端偵錯

有三種方式可以停用此功能:

  • 拒絕函式更新:將 lambda:UpdateFunctionConfiguration 設定為 deny。

  • 限制 IoT 許可:拒絕 IoT 相關許可

  • 封鎖偵錯層:拒絕下列 ARN 的 lambda:GetLayerVersion:

    • arn:aws:lambda:*:*:layer:LDKLayerX86:*

    • arn:aws:lambda:*:*:layer:LDKLayerArm64:*

    注意

    停用此功能可防止在事件函數組態更新期間新增偵錯層。

如需有關在 VS Code 中使用 Lambda 的詳細資訊,請參閱使用 VS Code 在本機開發 Lambda 函式。

如需疑難排解、進階使用案例和區域可用性的詳細說明,請參閱 AWS Toolkit for Visual Studio Code 《 使用者指南》中的遠端偵錯 Lambda 函數。