使用 AWS Durable Functions 监控第三方 Webhook 延迟
Source: Dev.to
概览
在本博客中,我解释了我们如何使用 Azure Durable Functions(实际是 AWS Step Functions 的等价实现)来监控第三方 webhook 的延迟。与外部服务集成时,webhook 通知并不总是立即到达——有时甚至根本不到达。我们需要对以下情况拥有可视性:
- webhook 是否真的到达
- 它们到达我们系统所需的时间
架构
该解决方案由三个主要组件组成:
-
API Gateway → Lambda – Lambda 向第三方服务发起请求,通过向 EventBridge 发送事件来启动 Durable Function,并向客户端返回同步响应。

-
Durable Function – 生成
callbackId,将回调元数据存入 DynamoDB,然后等待回调完成。这使我们能够知道 webhook 通知是否到达,以及如果到达,耗时多久。
-
API Gateway → SQS → Webhook 处理 Lambda – Webhook 处理程序从第三方消费通知,检索关联的
callbackId,并恢复 Durable Function 的执行。使用 SQS 可以防止在 Durable Function 启动之前 webhook 已经到达而导致的竞争条件。
监控
所有交互均通过 AWS X‑Ray 进行追踪。你还可以创建 CloudWatch 仪表盘 来可视化 webhook 到达的平均时间。

结论
通过组合 API Gateway、Lambda、EventBridge、DynamoDB、SQS 和 Durable Functions,我们获得了对第三方 webhook 投递时间的可靠可视性,并确保系统能够优雅地处理延迟或缺失的通知。
感谢阅读。