如何从 AWS 发出及时的 POST 请求?

How to emit timely POST requests from AWS?

每天从 AWS 发出 POST 请求(准确地说是 webhook)的最有效方法是什么?

马上,我开始简单地创建一个带有事件计划 CRON 的 cloudWatch 规则,该规则将触发 SNS 发布 "every day at 18h",然后我创建了一个 SNS 主题 "AlertMyWebhook",其中包含所有 POST 端点作为主题的订阅者。

但是.. SNS 要求我确认每个端点的订阅...根据定义我不能这样做,因为 https 端点不是我的(webhook = 连接到其他人的 WEBapp)。

所以现在我开始想一些疯狂的事情,比如有一个 dynamoDB table 来存储所有 webhooks 端点 URL,加上一个 lambda 函数来读取table,获取每个 https 端点,并向它们发送 POST 请求...

坦率地说:这对我来说没有任何意义。

有什么办法可以避免SNS确认吗? 如果不是,您将如何 "trigger a POST every day at 18h" 而不创建类似单体的架构?

AWS SNS 和 Lambda 函数相互集成,因此您可以为您的主题订阅 Lambda 函数。当消息发布到该主题时,订阅的 Lambda 函数将使用有效负载(已发布的消息)调用。

使用此有效负载作为 Lambda 函数的输入会触发对端点的 POST 请求。一个好的方法是将所有 HTTPS POST 端点作为 Lambda 中的环境变量。因此,只要需要添加新的 POST 端点作为订阅端点,Lambda 函数中的代码就不会发生变化。有关如何集成 AWS SNS 和 Lambda 的更多信息,请查看此处。

Invoking Lambda functions using Amazon SNS notifications

调用 POST 请求的示例 NodeJS 代码