如何从 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 代码
每天从 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 代码