繁体   English   中英

在 DynamoDB 基于事件的调用期间超时后,AWS Lambda 是否开箱即用

[英]Does AWS Lambda retires out of the box after a timeout during event based invocation from DynamoDB

我有一个 lambda function 从 DynamoDB 的事件 stream 中提取数据。 在 lambda function 内部,我有一个 REST 调用内部 API 端点之一。 当前为 Lambda 设置的超时为 60 秒。

问题:在日志中,我注意到 Lambda 偶尔会抛出超时异常。 可能是因为我的API没有在60秒内处理请求。

问题:我想了解如果 lambda超时,那么发送到内部 API/REST 调用的事件和调用会发生什么情况。 这些呼叫/事件会被重试并重新发送到开箱即用的 API 吗?

我阅读了以下链接:

https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html

AWS Lambda 从 DynamoDB 处理 stream

但我无法理解 API 是否会再次收到这些事件/电话。

对于上下文,这个问题是关于 DynamoDB Streams 和 AWS Lambda 触发器的。 具体来说,AWS Lambda 服务如何处理由 Lambda 服务调用的 Lambda 函数处理的失败或超时事件,以处理 DynamoDB Streams 中的事件。

根据将AWS Lambda 与 Amazon DynamoDB文档结合使用:

如果您的 [Lambda] function 返回错误,则 Lambda 会重试 [DynamoDB Streams 事件] 批次,直到处理成功或数据过期。

Lambda 将所有其他结果 [除完全成功之外的任何结果] 视为完全失败,并重试处理批处理直至重试限制。

所以,我会推断超时不是完全成功,因此重试了整个批次。

顺便说一下,您提到“我有一个 lambda function 从 DynamoDB 的事件 stream 中提取数据”,但这实际上并不是 DynamoDB Streams / Lambda 集成的工作原理。 Lambda 服务轮询 DynamoDB Stream,然后调用您的 Lambda function,将 DynamoDB 数据推送给您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM