最近,AWS宣布了其lambda函数(Node.js 8.10运行时可用)的nodejs8.10运行时的可用性.虽然这对于快乐的流程来说似乎很好,但是我遇到了一些不愉快的流程问题,即我得到了"UnhandledPromiseRejectionWarnings".
我正在使用以下代码.我的想法是,我提供了一个不存在的对象的密钥来测试该场景的不满意流程.我的目标是将错误记录并传播出lambda,因为我在这里没有理智的处理方式(我无法在这个lambda函数中检索新密钥).我也希望能够在调用者中使用错误(例如,另一个lambda函数或步骤函数).
'use strict';
const AWS = require('aws-sdk');
exports.handler = async (event) => {
let data;
try {
data = await getObject(event.key);
} catch (err) {
console.error('So this happened:', err);
throw err;
}
return data;
}
const getObject = async (key) => {
let params = {
Bucket: process.env.BUCKET,
Key: key
};
const s3 = new AWS.S3();
let data;
try {
data = await s3.getObject(params).promise();
} catch(err) {
console.log('Error retrieving object');
throw err;
}
console.log('Retrieved data');
return …Run Code Online (Sandbox Code Playgroud)