如何从AWS Lambda调用中获取完整日志?

时间:2019-06-30 23:25:43

标签: javascript node.js amazon-web-services aws-lambda

首先,Cloudwatch日志不适用于此功能。只是获得有关它如何无法创建日志流的消息。但我不确定是否会有所帮助,因为在我调用该函数时:

aws lambda invoke --function-name update-data out \
--payload '{"year": "2013"}' --log-type Tail \
--query 'LogResult' --output text |  base64 -D

堆栈跟踪非常毫无价值:

2019-06-30T23:17:31.684Z    undefined   ERROR   Uncaught Exception
{"errorType":"Runtime.UserCodeSyntaxError",
"errorMessage":"SyntaxError: Unexpected identifier","stack":
["Runtime.UserCodeSyntaxError: SyntaxError: Unexpected identifier","

at _loadUserApp (/var/runtime/UserFunction.js:98:13)","
at Object.module.exports.load (/var/runtime/UserFunction.js:140:17)","
at Object.<anonymous> (/var/runtime/index.js:36:30)","
at Module._compile (internal/modules/cjs/loader.js:701:30)","
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)","
at Module.load (internal/modules/cjs/loader.js:600:32)","
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)","
at Function.Module._load (internal/modules/cjs/loader.js:531:3)","
at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)","
at startup (internal/bootstrap/node.js:283:19)"]}

[mild edits for readability]

该功能正在节点10中运行。我对实际问题有所怀疑,但是如果我想出一种更好的方法来查找故障原因,它将对将来真的很有帮助。

有没有办法找到Unexpected identifier错误的根源?行号和文件中的代码导致了该错误?

4 个答案:

答案 0 :(得分:3)

我遇到了类似的问题,而我的问题最终是在我的项目不支持的情况下,导入了使用ESM的软件包。

答案 1 :(得分:1)

AWS放大功能也有类似的问题。

我的问题是由导入语法(ES2015)引起的。 我使用require语法(节点)代替了导入语法。而且有效。

答案 2 :(得分:0)

SyntaxError: Unexpected identifier","stack":

表示错误出在您的功能代码中。您使用的是“标识符”堆栈,还没有被声明为mabe?

我从未使用过AWS lambda,但Runtime.UserCodeSyntaxError听起来像该函数遇到了与代码语法有关的运行时错误(在代码执行期间)。

答案 3 :(得分:0)

我没有使用Python的经验。 但是我在Java中拥有它。 在Java lambda函数中,我捕获了所有异常,并在捕获中使用了e.printstackTrace()。 输出会自动发送到CloudWatch