本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用本地调试函数 Amazon SAM
您可以 Amazon SAM 与各种 Amazon 工具包和调试器配合使用,在本地测试和调试您的无服务器应用程序。通过逐步调试 Lambda 函数,您可以在本地环境中逐行或逐条指令地识别和修复应用程序中的问题。
您可以执行本地逐步调试的一些方法包括设置断点、检查变量以及逐行执行函数代码。本地分步调试使您可以发现和解决可能在云中遇到的问题,从而缩短反馈循环。
您可以使用 Amazon 工具包进行调试,也可以在调试模式 Amazon SAM 下运行。有关详细信息,请参阅本节中的主题。
使用 Amazon 工具包
Amazon 工具包是集成开发环境 (IDE) 插件,可让您执行许多常见的调试任务,例如设置断点、检查变量和逐行执行函数代码。 Amazon 工具包使您可以更轻松地开发、调试和部署使用构建的无服务器应用程序。 Amazon SAM它们提供了构建、测试、调试、部署和调用集成到 IDE 中的 Lambda 函数的体验。
有关可与之配合使用的 Amazon 工具包的更多信息 Amazon SAM,请参阅以下内容:
有各种各样的 Amazon 工具包适用于 IDEs 和运行时的不同组合。下表列出了支持应用程序分步调试的常用 IDE/Runtime 组合: Amazon SAM
IDE | 运行时 | Amazon 工具包 | 逐步调试说明 |
---|---|---|---|
Visual Studio Code |
|
Amazon Toolkit for Visual Studio Code | 《Amazon Toolkit for Visual Studio Code 用户指南》中的使用 Amazon Serverless Application |
Amazon Cloud9 |
|
Amazon Cloud9,启用 Amazon 工具包后 1 | |
WebStorm | Node.js | Amazon Toolkit for JetBrains2 |
在 Amazon Toolkit for JetBrains 中运行(调用)或调试本地函数 |
PyCharm | Python | Amazon Toolkit for JetBrains2 |
在 Amazon Toolkit for JetBrains 中运行(调用)或调试本地函数 |
Rider | .NET | Amazon Toolkit for JetBrains2 |
在 Amazon Toolkit for JetBrains 中运行(调用)或调试本地函数 |
IntelliJ | Java | Amazon Toolkit for JetBrains2 |
在 Amazon Toolkit for JetBrains 中运行(调用)或调试本地函数 |
GoLand | Go | Amazon Toolkit for JetBrains2 |
在 Amazon Toolkit for JetBrains 中运行(调用)或调试本地函数 |
备注:
-
Amazon Cloud9 要使用逐步调试 Amazon SAM 应用程序,必须启用 Amazon Toolkit。有关更多信息,请参阅《Amazon Cloud9 用户指南》中的 “启用 Amazon 工具包”。
-
要使用分步调试 Amazon SAM 应用程序,必须先按照中安装中的说明进行安装和配置。 Amazon Toolkit for JetBrains Amazon Toolkit for JetBrainsAmazon Toolkit for JetBrains
在调试模式下在 Amazon SAM 本地运行
除了与 Amazon Toolkits 集成外,您还可以 Amazon SAM 在 “调试模式” 下运行以连接到第三方调试器,例如 pt
要 Amazon 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 函数。但是,因为您能指定一个调试端口,所以每次只能调试一个函数。你需要先调用你的 API Amazon SAM CLI 绑定到允许调试器连接的端口。