我想在本地调试一个用 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 上做到这一点?