abh*_*nyu 6 amazon-s3 amazon-web-services aws-lambda
我使用 PUT 操作将 AWS S3 触发器配置为 lambda 函数。
每 2 分钟上传 100kb 大小的 .txt 文件。
有时,S3 会在相同的事件和时间触发 lambda 两次。
触发器1:
START RequestId: f32a3353-bd53-48fd-aa49-c09ee9c82a3e 2019-07-30T22:47:05.122Z
触发器2:
START RequestId: f32a3353-bd53-48fd-aa49-c09ee9c82a3e 2019-07-30T22:47:05.98Z
我怎样才能避免这种情况?
让我引用一下文档:
有时,即使没有发生错误,您的函数也可能会多次接收同一事件。
另一个:
当发生错误时,您的函数可能会被调用多次。重试行为因错误类型、客户端、事件源和调用类型而异。例如,如果您异步调用函数并且它返回错误,则 Lambda 最多会再执行该函数两次。
参考:https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html
您的 lambda 必须是幂等的才能处理此行为,请参阅以下链接的更多详细信息:
https://aws.amazon.com/premiumsupport/knowledge-center/lambda-function-idempot/
https://cloudonaut.io/your-lambda-function-might-execute-twice-deal-with-it/
这可能是 Lambda 函数调用的问题,请参阅https://docs.aws.amazon.com/lambda/latest/dg/retries-on-errors.html
因此它是无害的(代码不会运行两次)
归档时间: |
|
查看次数: |
7582 次 |
最近记录: |