AWS 减少 webhooks ec2 对队列的影响
AWS Reduce webhooks ec2 impact with queue
我有一个 PHP Web 应用程序 运行 在 ec2 服务器上。该应用程序与另一项服务集成,该服务涉及订阅多个 webhooks。
服务器从这些 webhook 接收的请求数量已经变得难以管理,我正在寻找一种更有效的方法来处理来自这些 webhook 的数据。
我最初的想法是使用 API 网关并将这些请求放入 SQS 队列并从该队列中批量读取。
但是,我希望 ec2 实例读取这些批次,因为用于处理 webhook 的代码是在我的整个应用程序中重复使用的代码。
这可能吗?还是我被迫在 SQS 中使用 lambda 函数?有没有更好的方法?
您建议的方法(API 网关 + SQS)可以正常工作。无需使用 AWS Lambda。在编写从 SQS 队列接收消息的应用程序代码时,您需要使用 AWS SDK for PHP。
我以前用过这个模式,这是一个很好的解决方案。
. . . am I forced to use a lamda function with SQS?
SQS plus Lambda 基本免费。此时,您每月会收到 1M(百万)次 lambda 调用和 1M(百万)次 SQS 请求。请记住,那些 SQS Requests 最多可能包含 10 条消息,这可能是 1000 万条消息,全部在免费套餐内。您的 EC2 实例可能始终处于开启状态。您的 lambda 函数不是。即使您只使用 Lambda 将 SQS 数据推送到 RDBMS 之类的数据存储,供您的 EC2 定期轮询,该操作也是安全可靠且成本非常低的。随着 SQS 的引入,您可以将常见的 EC2 代码转换为 Lambda 函数。这些现在 运行 时间为 15 分钟。
引用我的消息来源:
- SQS 定价参考:https://aws.amazon.com/sqs/pricing/
- Lambda 定价参考:https://aws.amazon.com/lambda/pricing/
我有一个 PHP Web 应用程序 运行 在 ec2 服务器上。该应用程序与另一项服务集成,该服务涉及订阅多个 webhooks。
服务器从这些 webhook 接收的请求数量已经变得难以管理,我正在寻找一种更有效的方法来处理来自这些 webhook 的数据。
我最初的想法是使用 API 网关并将这些请求放入 SQS 队列并从该队列中批量读取。
但是,我希望 ec2 实例读取这些批次,因为用于处理 webhook 的代码是在我的整个应用程序中重复使用的代码。
这可能吗?还是我被迫在 SQS 中使用 lambda 函数?有没有更好的方法?
您建议的方法(API 网关 + SQS)可以正常工作。无需使用 AWS Lambda。在编写从 SQS 队列接收消息的应用程序代码时,您需要使用 AWS SDK for PHP。
我以前用过这个模式,这是一个很好的解决方案。
. . . am I forced to use a lamda function with SQS?
SQS plus Lambda 基本免费。此时,您每月会收到 1M(百万)次 lambda 调用和 1M(百万)次 SQS 请求。请记住,那些 SQS Requests 最多可能包含 10 条消息,这可能是 1000 万条消息,全部在免费套餐内。您的 EC2 实例可能始终处于开启状态。您的 lambda 函数不是。即使您只使用 Lambda 将 SQS 数据推送到 RDBMS 之类的数据存储,供您的 EC2 定期轮询,该操作也是安全可靠且成本非常低的。随着 SQS 的引入,您可以将常见的 EC2 代码转换为 Lambda 函数。这些现在 运行 时间为 15 分钟。
引用我的消息来源:
- SQS 定价参考:https://aws.amazon.com/sqs/pricing/
- Lambda 定价参考:https://aws.amazon.com/lambda/pricing/