我的 AWS Lambda 函数收到了多个针对单个事件的调用请求。
对于同步调用,调用 Lambda 函数的客户端和 AWS 服务会重试操作。对于异步调用,Lambda 会自动对函数错误重试两次。
为防止重复调用 Lambda 函数,请根据您使用的调用方法执行以下操作。
**注意:**要对函数调用失败进行故障排除,请参阅如何排查 Lambda 函数故障?
查看您的 Lambda 函数的 Amazon CloudWatch Logs。验证重复调用是否具有相同的请求 ID,以及重复调用是否返回错误或超时。
然后,根据您的使用案例执行以下操作之一:
对于返回错误或超时且具有相同请求 ID 的重复调用
**注意:**返回错误或超时且具有相同请求 ID 的重复调用表明 Lambda 服务对该函数进行了重试。
为异步调用配置错误处理,减少 Lambda 函数对失败的异步调用请求进行重试的次数。
对于未返回错误或超时的重复调用
**注意:**未返回错误或超时的重复调用表明是客户端重试。
完成以下操作:
**注意:**同步调用重试行为因 AWS 服务而异,具体取决于每项服务的事件源映射。有关更多信息,请参阅使用来自其他 AWS 服务的事件调用 Lambda。
确保您的 Lambda 函数代码具有幂等性,并且能够多次处理消息。然后,识别并解决您的 Lambda 函数返回的任何错误。
处理 CloudTrail 事件历史记录
使用 AWS Lambda 函数的最佳实践
rePost Polyglot
已提问 3 年前
Tim
已发布 2 年前