回顾 - Webhook 处理架构
Posted: Sat Mar 22, 2025 9:53 am
在讨论我们所做的更改之前,让我们先回顾一下我们今天如何处理 webhook
Webhook 从我们备份的平台(目前有 3 个,但架构是通用的)通过 API 网关导入到 Lambda 函数中
Lambda 函数根据平台地理位置将传入的钩子路由到区域 SQS 队列
一层工作人员轮询队列并处理 webhook。通常,每个 webhook 都涉及我们将一个或多个项目备份到数据存储
变化 1 – 使用 HTTP API
几年来,我们一直在使用 API 网关来处理传入的 webhook 并将其 阿尔及利亚 WhatsApp 数据 路由到 Lambda 函数。随着 webhook 数量的增加,我们的 API 网关成本也在增加。2020 年 4 月,我们每月花费 1,000 多美元来处理 3 亿多条请求。这还是在调用任何业务逻辑之前。这可不小。
2019 年 12月,AWS 发布了 API Gateway 的 HTTP API。这些 API 的功能不如完整的 REST API 全面,但价格却比 REST API 便宜得多。经过一些测试后,我们确定我们实际上不需要 REST API 提供的任何额外处理,而且HTTP API 使用的Lambda 代理事件更易于处理。
通过切换到 HTTP API 进行 API 网关处理,我们将成本从每百万请求 3.50 美元降低到每百万请求 1 美元。以实际金额计算,成本从每月 1,000 多美元降低到每月 300 美元左右。成功了!
Webhook 从我们备份的平台(目前有 3 个,但架构是通用的)通过 API 网关导入到 Lambda 函数中
Lambda 函数根据平台地理位置将传入的钩子路由到区域 SQS 队列
一层工作人员轮询队列并处理 webhook。通常,每个 webhook 都涉及我们将一个或多个项目备份到数据存储
变化 1 – 使用 HTTP API
几年来,我们一直在使用 API 网关来处理传入的 webhook 并将其 阿尔及利亚 WhatsApp 数据 路由到 Lambda 函数。随着 webhook 数量的增加,我们的 API 网关成本也在增加。2020 年 4 月,我们每月花费 1,000 多美元来处理 3 亿多条请求。这还是在调用任何业务逻辑之前。这可不小。
2019 年 12月,AWS 发布了 API Gateway 的 HTTP API。这些 API 的功能不如完整的 REST API 全面,但价格却比 REST API 便宜得多。经过一些测试后,我们确定我们实际上不需要 REST API 提供的任何额外处理,而且HTTP API 使用的Lambda 代理事件更易于处理。
通过切换到 HTTP API 进行 API 网关处理,我们将成本从每百万请求 3.50 美元降低到每百万请求 1 美元。以实际金额计算,成本从每月 1,000 多美元降低到每月 300 美元左右。成功了!