首页 > 解决方案 > 使用提供的运行时如何在本地调试 AWS Lambda?

问题描述

我想在本地调试一个用 C++ 编写的 AWS Lambda 函数。理想情况下,我希望能够单步执行我的代码(就像您使用GDB或任何体面的 IDE 一样)。使用 AWS Lambda 执行此操作的方法通常包括AWS SAM

思路一,使用SAM调试:

不幸的是,SAM 不允许您调试提供的运行时,因为它“仅”支持 Node.js、Python 和 Go(比较文档)。

问题一:

有没有办法以某种方式将 GDB 附加到我编译的 lambda 函数?

思路二,使用 docker-lambda 运行:

您还可以使用lambci/docker-lambda启动您的函数。如果您想获得一些调试输出,您可以执行 strace docker run --rm -v my/build/dir:/var/task lambci/lambda:provided handler '{"some": "event"}'. 这有效,但并不是我正在寻找的调试质量。

问题2:

我可以以某种方式将 a 附加到正在运行的 lambda 函数docker-lambda吗?

想法3:远程

绝望地去追求任何你能得到的东西(这不是我想做的)。

问题 3:

如果在本地真的没有办法做到这一点,我应该如何在 AWS 上做到这一点?

标签: c++dockeraws-lambdagdbaws-sdk-cpp

解决方案


推荐阅读