我使用AWS Lambda部署了一个用Python2.7编写的服务,它是从一些页面提取数据并将结果发送到Web应用程序。该服务由AWS CloudWatch事件触发(固定速率为5分钟)。
但是,我发现有时服务一次触发两次。我得到了这个,因为有两个日志流打印相同的数据和结果,但具有不同的RequestID。并且数据库具有重复数据,这表明两者都成功运行。看起来服务几乎同时被触发了两次,无缘无故。
有没有人经历同样的事情,你如何解决它?或者,有没有办法限制一次只能执行一个函数。
答案 0 :(得分:3)
是。某些AWS服务的SLA 至少一次交付。我通过CloudWatch
和CloudTrail
体验了这一点。我不知道你是否只能限制一次。您必须检查数据是否已经处理过。我通过在处理数据之前在我的python代码中进行boto3
调用来克服这个问题。在不了解您的情况的情况下,很难提出解决方案。