在 DynamoDB 基于事件的调用期间超时后,AWS Lambda 是否开箱即用
Does AWS Lambda retires out of the box after a timeout during event based invocation from DynamoDB
我有一个 lambda 函数,可以从 DynamoDB 的事件流中提取数据。在 lambda 函数内部,我对内部 API 端点之一进行了 REST 调用。 Lambda 的当前超时设置为 60 秒。
问题: 在日志中,我注意到 Lambda 偶尔会抛出超时异常。可能是因为我的API没有在60秒内处理请求
问题: 我想了解如果 lambda 超时 那么发送到内部的事件和调用会发生什么API/ REST 调用。那些 calls/events 会重试并再次发送到开箱即用的 API 吗?
我阅读了以下链接:
https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html
但我无法理解 API 是否会再次收到那些 events/calls。
就上下文而言,这个问题是关于 DynamoDB Streams 和 AWS Lambda 触发器的。具体来说,AWS Lambda 服务如何处理由 Lambda 服务调用以处理 DynamoDB Streams 中的事件的 Lambda 函数处理的失败或超时事件。
根据 Using AWS Lambda with Amazon DynamoDB 文档:
If your [Lambda] function returns an error, Lambda retries the batch [of DynamoDB Streams events] until processing succeeds or the data expires.
Lambda treats all other results [anything but complete success] as a complete failure and retries processing the batch up to the retry limit.
因此,我推断超时不是完全成功,因此重试了整个批次。
顺便说一下,您提到“我有一个 lambda 函数可以从 DynamoDB 的事件流中提取数据”,但这实际上并不是 DynamoDB Streams / Lambda 集成的工作原理。 Lambda 服务轮询 DynamoDB 流,然后调用您的 Lambda 函数,将 DynamoDB 数据推送给您。
我有一个 lambda 函数,可以从 DynamoDB 的事件流中提取数据。在 lambda 函数内部,我对内部 API 端点之一进行了 REST 调用。 Lambda 的当前超时设置为 60 秒。
问题: 在日志中,我注意到 Lambda 偶尔会抛出超时异常。可能是因为我的API没有在60秒内处理请求
问题: 我想了解如果 lambda 超时 那么发送到内部的事件和调用会发生什么API/ REST 调用。那些 calls/events 会重试并再次发送到开箱即用的 API 吗?
我阅读了以下链接:
https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html
但我无法理解 API 是否会再次收到那些 events/calls。
就上下文而言,这个问题是关于 DynamoDB Streams 和 AWS Lambda 触发器的。具体来说,AWS Lambda 服务如何处理由 Lambda 服务调用以处理 DynamoDB Streams 中的事件的 Lambda 函数处理的失败或超时事件。
根据 Using AWS Lambda with Amazon DynamoDB 文档:
If your [Lambda] function returns an error, Lambda retries the batch [of DynamoDB Streams events] until processing succeeds or the data expires.
Lambda treats all other results [anything but complete success] as a complete failure and retries processing the batch up to the retry limit.
因此,我推断超时不是完全成功,因此重试了整个批次。
顺便说一下,您提到“我有一个 lambda 函数可以从 DynamoDB 的事件流中提取数据”,但这实际上并不是 DynamoDB Streams / Lambda 集成的工作原理。 Lambda 服务轮询 DynamoDB 流,然后调用您的 Lambda 函数,将 DynamoDB 数据推送给您。