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

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

本地逐步调试 Lambda 函数

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

例如,您可以通过设置断点、检查变量和一次执行一行函数代码来执行 Lambda 函数的本地分步调试。本地逐步调试通过使您能够查找和排除云中可能遇到的问题,从而收紧反馈回路。

使用AmazonToolkit 工具包

AmazonToolkit 是集成的开发环境 (IDE) 插件,它使您能够执行许多常见的调试任务,例如设置断点、检查变量以及一次执行一行函数代码。AmazonToolkit 使您能够更轻松地开发、调试和部署使用Amazon SAM。它们提供了构建、测试、调试、部署和调用集成到 IDE 中的 Lambda 函数的体验。

有关 的更多信息Amazon工具包,您可以与Amazon SAM,请参阅:

有很多Amazon适用于 IDE 和运行时的不同组合的工具包。下表列出支持分步调试的常用ID/运行时组合Amazon SAM:应用程序

IDE 运行时 AmazonToolkit 工具包 有关逐步调试的说明
Visual Studio 代码
  • Node.js

  • Python

  • .NET

  • Java

  • 转到

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

  • Python

Amazon Cloud9, 与Amazon工具包已启用1

使用Amazon无服务器应用程序使用AmazonToolkit 工具包中的Amazon Cloud9用户指南

网络风暴 Node.js Amazon Toolkit for JetBrains2

运行(调用)或调试本地函数中的Amazon Toolkit for JetBrains

PyCharm Python Amazon Toolkit for JetBrains2

运行(调用)或调试本地函数中的Amazon Toolkit for JetBrains

骑士 .NET Amazon Toolkit for JetBrains2

运行(调用)或调试本地函数中的Amazon Toolkit for JetBrains

IntelliJ Java Amazon Toolkit for JetBrains2

运行(调用)或调试本地函数中的Amazon Toolkit for JetBrains

戈兰 转到 Amazon Toolkit for JetBrains2

运行(调用)或调试本地函数中的Amazon Toolkit for JetBrains

备注:

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

  2. 使用Amazon Toolkit for JetBrains逐步调试Amazon SAM应用程序,您必须首先按照安装Amazon Toolkit for JetBrains中的Amazon Toolkit for JetBrains

正在运行Amazon SAM以调试模式本地

除了与AmazonToolkit),您还可在其他实例上运行Amazon SAM在 “调试模式” 中附加到第三方调试器,如PTVSD或者钻研

运行Amazon SAM在调试模式下,使用命令SAM 本地调用或者sam 本地 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 SAMCLI 绑定到端口,从而允许调试器连接。