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

Aws lambda 在由Kinesis触发的AWS Lambda中,是否有理由使用回调成功消息?,aws-lambda,amazon-kinesis,Aws Lambda,Amazon Kinesis,我不熟悉AWS,尤其是Lambda Complexies。我目前的目标是得到一个Lambda函数,它可以监听一个动觉流。我想知道的是,在Kinesis流触发Lambda函数的情况下,谁是Lambda的export.handler回调的调用者?换句话说,当在Lambda中成功执行回调时,谁是接收成功消息的调用方?这会被使用吗 e、 例如,空白Lambda函数的起始模板: exports.handler = (event, context, callback) => { callbac

我不熟悉AWS,尤其是Lambda Complexies。我目前的目标是得到一个Lambda函数,它可以监听一个动觉流。我想知道的是,在Kinesis流触发Lambda函数的情况下,谁是Lambda的export.handler回调的调用者?换句话说,当在Lambda中成功执行回调时,谁是接收成功消息的调用方?这会被使用吗

e、 例如,空白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?
};

Lambda的调用者是Kinesis,如果不使用回调函数,函数将一直执行到超时,这会在Lambda运行时间上花费更多的时间。因此,当您的执行完成时,需要退出例程。

Lambda的调用者将是Kinesis,如果您不使用回调,函数将一直执行到超时,从而使您在Lambda运行时间上花费更多的时间。因此,当您的执行完成时,需要退出例程。

我们的想法是,如果记录处理成功,您应该使用状态代码202回调,让kinesis知道这是成功的,以便将记录从流中删除。但是,如果无法处理该记录,请使用不同的状态代码回调,在这种情况下,将在稍后重新尝试该记录。24小时后,如果处理仍不成功,记录将被删除

例如:

if (success) {
   callback(null, {
        statusCode:200,
        body: "Record was successfully processed"
    })
} else {
    callback(null, {
        statusCode: 404,
        body: "Record was not successfully processed"
    })
} 

这个想法是,如果记录被成功处理,您应该使用状态代码202回调,让kinesis知道它是成功的,以便将记录从流中删除。但是,如果无法处理该记录,请使用不同的状态代码回调,在这种情况下,将在稍后重新尝试该记录。24小时后,如果处理仍不成功,记录将被删除

例如:

if (success) {
   callback(null, {
        statusCode:200,
        body: "Record was successfully processed"
    })
} else {
    callback(null, {
        statusCode: 404,
        body: "Record was not successfully processed"
    })
} 

很高兴知道。你知道问题的另一部分吗?成功消息是否用于此场景中的任何内容?进一步调查,回调的执行不会终止Lambda执行;Lambda将在回调执行之后继续运行。所以我对这个答案很困惑。回调不是一个退出例程。Lambda函数将保持热状态,但在exist例程发生后,不会对您收费。如果不是,它将向您收取每个请求的超时费用。因此,可以立即发出回调,然后继续免费使用Lambda,直到达到最大超时限制?这似乎不是AWS的明智策略。回调后不能免费使用Lambda,因为代码将退出,但Lambda将在没有冷启动的情况下运行5分钟,可以立即处理下一个请求。很高兴知道这一点。你知道问题的另一部分吗?成功消息是否用于此场景中的任何内容?进一步调查,回调的执行不会终止Lambda执行;Lambda将在回调执行之后继续运行。所以我对这个答案很困惑。回调不是一个退出例程。Lambda函数将保持热状态,但在exist例程发生后,不会对您收费。如果不是,它将向您收取每个请求的超时费用。因此,可以立即发出回调,然后继续免费使用Lambda,直到达到最大超时限制?这似乎不是AWS的明智策略。回调后不能免费使用Lambda,因为代码将退出,但Lambda将在没有冷启动的情况下运行5分钟,可以立即处理下一个请求。了解是什么迫使kinesis碎片的读取指针更新也很有用。异常不会更新读取器指针。。。还有什么不能更新读取指针?了解是什么迫使kinesis shard的读取指针更新也很有用。异常不会更新读取器指针。。。还有什么不能更新读取指针?