使用本地调试函数 Amazon SAM - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用本地调试函数 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
  • Node.js

  • Python

  • .NET

  • Java

  • Go

Amazon Toolkit for Visual Studio Code 《Amazon Toolkit for Visual Studio Code 用户指南》中的使用 Amazon Serverless Application
Amazon Cloud9
  • Node.js

  • Python

Amazon Cloud9,启用 Amazon 工具包后 1

使用《Amazon Cloud9 用户指南》中的 Amazon Toolkit 使用 Amazon 无服务器应用程序

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运行(调用)或调试本地函数

备注:

  1. Amazon Cloud9 要使用逐步调试 Amazon SAM 应用程序,必须启用 Amazon Toolkit。有关更多信息,请参阅Amazon Cloud9 用户指南》中的 “启用 Amazon 工具包”。

  2. 要使用分步调试 Amazon SAM 应用程序,必须先按照中安装中的说明进行安装和配置。 Amazon Toolkit for JetBrains Amazon Toolkit for JetBrainsAmazon Toolkit for JetBrains

在调试模式下在 Amazon SAM 本地运行

除了与 Amazon Toolkits 集成外,您还可以 Amazon SAM 在 “调试模式” 下运行以连接到第三方调试器,例如 pt vsd 或 delve。

要 Amazon SAM 在调试模式下运行,请使用命令sam local invokesam 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 绑定到允许调试器连接的端口。