创建了一个Lambda函数,以从AWS Textract API获取分析。以下是相关代码(Node.js 12)
exports.handler = async (event, context, callback) => {
...
let request = textract.getDocumentAnalysis(params);
request.send((err, data) => {
if (err) console.log(err, err.stack);
else console.log(data);
});
callback(null, request);
};
在CloudWatch日志中出现此错误:
ERROR Invoke Error
{
"errorType": "Error",
"errorMessage": "Unable to stringify response body",
"stack": [
"Error: Unable to stringify response body",
" at _trySerializeResponse (/var/runtime/RAPIDClient.js:175:11)",
" at RAPIDClient.postInvocationResponse (/var/runtime/RAPIDClient.js:45:22)",
" at complete (/var/runtime/CallbackContext.js:33:12)",
" at callback (/var/runtime/CallbackContext.js:43:7)",
" at /var/runtime/CallbackContext.js:104:16",
" at Runtime.exports.handler (/var/task/index.js:92:5)",
" at Runtime.handleOnce (/var/runtime/Runtime.js:66:25)"
]
}
当我修改回调函数:callback(null, request.X) ...Lambda 就会从Textract返回数据对象。起初我认为我必须深入到数据对象中(request.DocumentMetadata)...但实际上只要我在“request.”前面输入任何字符(至少是我尝试过的字符),它就可以正常工作了。感谢任何帮助。
const data = await rdsDataService.executeStatement(params, (err, res) => { if (err) console.log(err.stack); else console.log(res)}).promise(); callback(null, data)
。但它开始出现错误“4fdb13任务在6.01秒后超时”。如果我删除promise(),那么也没有任何区别。超时错误仍然存在。你能帮忙吗? - program_bumble_bee