2016-09-30 144 views
3

我部署了一个使用AWS Lambda以Python2.7编写的服务,它涉及从某些页面提取数据并将结果发送到Web应用程序。该服务由AWS CloudWatch事件触发(固定费率为5分钟)。AWS Lambda函数被CloudWatch事件触发了两次事件

但是,我发现有时该服务一次被触发两次。我得到这个是因为有两个日志流打印了相同的数据和结果,但具有不同的RequestID。而且数据库有重复的数据,这表明两个都成功了。看起来服务几乎在同一时间几乎没有任何原因被触发。

有没有人遇到同样的事情,你如何解决它?或者,有没有办法限制一次只能执行一个函数?

回答

2

是的。一些AWS服务的SLA为,至少一次交付。我已经通过CloudWatchCloudTrail来体验这一点。我不知道你是否可以只限制一次。你必须检查数据是否已被处理。我通过在处理数据之前在我的python代码中调用boto3来克服这个问题。不知道你的情况,很难提出解决方案。