在由Kinesis触发的AWS Lambda中,是否有理由使用回调成功消息?

时间:2017-07-19 00:29:52

标签: aws-lambda amazon-kinesis

我是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?
};

2 个答案:

答案 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运行时花费更多。因此,当您的执行完成时,需要退出例程。