如何防止重复的 Lambda 函数调用?

1 分钟阅读
0

我的 AWS Lambda 函数不断收到针对单一事件的多个调用请求。如何防止我的 Lambda 函数从同一事件中多次调用?

简短描述

为了防止重复调用 Lambda 函数,请根据您使用的调用类型执行以下操作。

**注意:**对于同步调用,调用 Lambda 函数的客户端和 AWS 服务负责执行重试。对于异步调用,Lambda 会在出错时自动重试,并且两次重试之间会有延迟。

解决方案

对于异步调用

查看您的 Lambda 函数的 Amazon CloudWatch Logs 以验证以下内容:

  • 重复的调用是否具有相同的请求 ID
  • 如果重复的调用返回错误或超时

根据您的使用案例,执行以下操作之一:

对于返回错误或超时且具有相同请求 ID 的重复调用

**注意:**返回错误或超时且具有相同请求 ID 的重复调用表示 Lambda 服务重试该函数。

为异步调用配置错误处理,以减少 Lambda 函数重试失败的异步调用请求次数。

有关更多信息,请参阅 AWS Lambda 中的错误处理和自动重试

对于没有返回错误或超时的重复调用

**注意:**未返回错误或超时的重复调用表示客户端重试。

对于同步调用

**注意:**根据每项服务的事件源映射,同步调用重试行为因 AWS 服务而异。有关更多信息,请参阅事件驱动的调用


相关信息

使用 CloudTrail 事件历史记录查看事件

使用 AWS Lambda 函数的最佳实践

Lambda 函数扩展

为什么我的 Lambda 函数重试有效的 Amazon SQS 消息并将其放入死信队列中?

AWS 官方
AWS 官方已更新 3 年前