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

时间:2018-01-08 02:19:16

标签: amazon-web-services aws-lambda webhooks amazon-sns amazon-cloudwatch

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

马上,我开始简单地创建一个带有事件计划CRON的cloudWatch规则,触发SNS发布"每天18h"然后我创建了一个SNS主题" AlertMyWebhook&#34 ;将所有POST端点作为主题的订阅者。

但是...... SNS要求我确认每个端点的订阅......我不能按照定义,因为https端点不是我的(webhook = HOOK到某人ELSE' S WEBapp)。 / p>

所以现在我开始思考一些疯狂的事情,例如使用dynamoDB表存储所有webhooks端点URL,再加上lambda函数来读取表,获取每个https端点,然后发送一个POST请求给他们......

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

有没有办法避免SNS确认? 如果没有,你怎么做到每天18小时触发一次POST"没有创建一个像单片式的架构?

1 个答案:

答案 0 :(得分:1)

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

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

Invoking Lambda functions using Amazon SNS notifications

用于调用POST请求的示例NodeJS代码

AWS Lambda HTTP POST Request