本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 本機偵錯函數 AWS SAM
您可以使用 AWS SAM 搭配各種 AWS 工具組和偵錯工具,在本機測試和偵錯無伺服器應用程式。Lambda 函數的逐步偵錯可讓您在本機環境中一次識別和修正應用程式中的問題一行或指令。
您可以執行本機逐步偵錯的一些方式包括設定中斷點、檢查變數,以及一次一行執行函數程式碼。本機逐步偵錯可讓您尋找和故障診斷在雲端中可能遇到的問題,藉此加強回饋迴圈。
您可以使用 AWS Toolkits 進行偵錯,也可以 AWS SAM 在偵錯模式下執行。如需詳細資訊,請參閱本節中的主題。
使用 AWS 工具組
AWS 工具組是整合的開發環境 (IDE) 外掛程式,可讓您一次一行執行許多常見的偵錯任務,例如設定中斷點、檢查變數和執行函數程式碼。 AWS 工具組可讓您更輕鬆地開發、偵錯和部署使用 建置的無伺服器應用程式 AWS SAM。它們提供建置、測試、偵錯、部署和叫用整合到 IDE 的 Lambda 函數的體驗。
如需可與 搭配使用之 AWS Toolkit 的詳細資訊 AWS SAM,請參閱下列內容:
有各種 AWS Toolkit 可與不同的 IDEs 和執行時間組合搭配使用。下表列出支援 AWS SAM 應用程式逐步偵錯的常見 IDE/執行時間組合:
IDE | 執行期 | AWS 工具組 | 步驟式偵錯的指示 |
---|---|---|---|
Visual Studio 程式碼 |
|
AWS Toolkit for Visual Studio Code | 在 AWS 無伺服器應用程式 AWS Toolkit for Visual Studio Code 使用者指南中使用 |
AWS Cloud9 |
|
AWS Cloud9,啟用 AWS Toolkit1 |
使用 AWS Cloud9 AWS 使用者指南中的 Toolkit 使用無 AWS 伺服器應用程式。 |
WebStorm | Node.js | AWS Toolkit for JetBrains2 |
在 中執行 (叫用) 或偵錯本機函數 AWS Toolkit for JetBrains |
PyCharm | Python | AWS Toolkit for JetBrains2 |
在 中執行 (叫用) 或偵錯本機函數 AWS Toolkit for JetBrains |
Rider | .NET | AWS Toolkit for JetBrains2 |
在 中執行 (叫用) 或偵錯本機函數 AWS Toolkit for JetBrains |
IntelliJ | Java | AWS Toolkit for JetBrains2 |
在 中執行 (叫用) 或偵錯本機函數 AWS Toolkit for JetBrains |
GoLand | Go | AWS Toolkit for JetBrains2 |
在 中執行 (叫用) 或偵錯本機函數 AWS Toolkit for JetBrains |
備註:
-
若要使用 AWS Cloud9 逐步偵錯 AWS SAM 應用程式,必須啟用 AWS Toolkit。如需詳細資訊,請參閱AWS Cloud9 《 使用者指南》中的啟用 AWS Toolkit。
-
若要使用 AWS Toolkit for JetBrains 進行逐步偵錯 AWS SAM 應用程式,您必須先依照在 中安裝 中的指示進行安裝 AWS Toolkit for JetBrains和設定AWS Toolkit for JetBrains。
在偵錯模式下於 AWS SAM 本機執行
除了與 AWS Toolkits 整合之外,您也可以 AWS SAM 在「偵錯模式」中執行,以連接至第三方偵錯工具,例如 ptvsd
若要 AWS SAM 在偵錯模式下執行,請使用 命令sam local invoke或 sam local start-api搭配 --debug-port
或 -d
選項。
例如:
# Invoke a function locally in debug mode on port 5858 sam local invoke -d 5858 <function logical id> # Start local API Gateway in debug mode on port 5858 sam local start-api -d 5858
注意
如果您使用的是 sam local start-api
,本機 API Gateway 執行個體會公開所有 Lambda 函數。不過,由於您可以指定單一偵錯連接埠,因此一次只能偵錯一個函數。您需要在 AWS SAMCLI繫結至連接埠之前呼叫您的 API,以允許偵錯器連線。