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

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

在本地逐步调试 Lambda 函数

您可以将 Amazon SAM 与各种 Amazon 工具包和调试器配合使用,在本地测试和调试无服务器应用程序。

例如,您可以通过设置断点、检查变量和逐行执行函数代码来对 Lambda 函数执行本地分步调试。本地分步调试使您可以发现和解决可能在云中遇到的问题,从而缩短反馈循环。

使用 Amazon Toolkits

Amazon Toolkits 是集成式开发环境(IDE)插件,可让您执行许多常见的调试任务,例如设置断点、检查变量和逐行执行函数代码。Amazon通过该工具包,您可以更轻松地开发、调试和部署使用 Amazon SAM 构建的无服务器应用程序。它们提供了构建、测试、调试、部署和调用集成到 IDE 中的 Lambda 函数的体验。

有关可与 Amazon SAM 配合使用的 Amazon Toolkits 的更多信息,请参阅以下内容:

有多种 Amazon Toolkits 适用于不同的 IDE 和运行时系统组合。下表列出了支持 Amazon SAM 应用程序逐步调试的常见 IDE/运行时系统组合:

IDE 运行时系统 Amazon Toolkit 逐步调试说明
Visual Studio 代码
  • 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 Toolkits 已启用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 Toolkits。有关更多信息,请参阅《Amazon Cloud9 用户指南》中的启用 Amazon Toolkit

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

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

除了与 Amazon Toolkits 集成外,您还可以在“调试模式”下运行 Amazon SAM 以附加到第三方调试器,例如 ptvsddelve

要在调试模式下运行 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 函数。但是,因为您能指定一个调试端口,所以每次只能调试一个函数。您需要在 Amazon SAM CLI 绑定到端口之前调用 API,以允许调试器进行连接。