我是AWS的新手,特别是Lambda的复杂功能。我目前的目标是让Lambda函数监听Kinesis流。我感到好奇的是,在Kinesis流触发Lambda函数的情况下,谁是调用者(出于Lambda的export.handler回调的目的)?换句话说,当Lambda中成功执行回调时,谁是接收成功消息的调用者?这会被使用吗?
例如,空白Lambda函数的起始模板:exports.handler = (event, context, callback) => {
callback(null, 'Hello from Lambda');
// the second arg of this callback is the success message;
// in the case of a Kinesis trigger, who receives it?
};
答案 0 :(得分:0)
想法是如果记录成功处理,你应该使用statusCode 202回调让kinesis知道它是成功的,以便从流中删除记录。但是,如果它无法处理记录,则使用不同的statusCode进行回调,在这种情况下,记录将在以后重新尝试。 24小时后,如果仍未成功处理,记录将被删除。
例如:
if (success) {
callback(null, {
statusCode:200,
body: "Record was successfully processed"
})
} else {
callback(null, {
statusCode: 404,
body: "Record was not successfully processed"
})
}
答案 1 :(得分:-1)
Lambda的调用者将是Kinesis,如果你不使用回调,该函数将执行直到超时,在Lambda运行时花费更多。因此,当您的执行完成时,需要退出例程。