AWS减少队列对webhooks ec2的影响

时间:2018-10-16 13:58:53

标签: amazon-web-services amazon-ec2 webhooks amazon-sqs

我有一个在ec2服务器上运行的PHP Web应用程序。该应用程序与另一项服务集成在一起,其中涉及订阅许多Webhooks。

服务器从这些Webhooks接收到的请求数量变得难以控制,我正在寻找一种更有效的方式来处理来自这些Webhooks的数据。

我最初的想法是使用API​​网关,并将这些请求放入SQS队列中,然后从该队列中批量读取。

但是,我希望ec2实例读取这些批处理,因为用于处理Webhook的代码已在我的整个应用程序中重复使用。

这是否可行,或者我是否必须在SQS中使用lambda函数?有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

您建议的方法(API网关+ SQS)可以正常工作。无需使用AWS Lambda。在编写从SQS队列接收消息的应用程序代码时,您将要使用AWS SDK for PHP

我以前使用过这种模式,这是一个很好的解决方案。

答案 1 :(得分:0)

  

。 。 。我被迫在SQS中使用lamda函数吗?

SQS加Lambda基本上是免费的。目前,您每个月会收到100万个Lambda调用和100万个SQS请求。请记住,这些SQS Requests 可能包含多达10条消息,这可能是10M消息,所有消息都在免费层内。您的EC2实例可能一直处于打开状态。您的lambda函数不是。即使仅使用Lambda将SQS数据推送到RDBMS之类的数据存储中,以使EC2定期进行轮询,该操作也是防弹的并且非常便宜。随着SQS的引入,您可以将常见的EC2代码转换为Lambda函数。现在,它们的运行时间为15分钟。

引用我的消息来源: