首先,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
错误的根源?行号和文件中的代码导致了该错误?
答案 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