将消息从SNS发布到kinesis

时间:2018-05-21 13:38:53

标签: aws-lambda amazon-sqs amazon-sns

我要求将消息从SNS发布到kinesis。我发现,直接订阅SNS / SQS是不可能的。我将需要编写lambda来从SNS获取并将其发布到kinesis。 有没有其他方法可以直接将记录从SNS发布到kinesis? 感谢

2 个答案:

答案 0 :(得分:6)

Amazon SNS是一种发布/订阅模式。

发送给SNS的消息可以订阅:

  • http/s:通过HTTP POST传送JSON编码的消息
  • email:通过SMTP发送邮件
  • email-json:通过SMTP
  • 传递JSON编码的邮件
  • sms:通过短信发送消息
  • sqs:将JSON编码的消息传递到Amazon SQS队列
  • application:将JSON编码的邮件传递给移动应用和设备的EndpointArn。
  • lambda:将JSON编码的消息传递给AWS Lambda函数。

请参阅:Subscribe - Amazon Simple Notification Service

其中,唯一可用于发送给Amazon Kinesis的是使用 AWS Lambda 。您需要编写一个Lambda函数,将该消息发送到Kinesis流。

澄清一下:您的Lambda函数不会“从SNS中获取”。相反,Lambda函数将由SNS触发,消息作为输入传递。然后,您的Lambda函数需要将消息发送给Kinesis。

您唯一的另一种选择是更改当前将消息发送到SNS的系统,并让它将消息发送给Kinesis。

答案 1 :(得分:3)

好消息!自 2021 年 1 月起,Amazon SNS 已通过 Kinesis Data Firehose 订阅增加了对消息存档和分析的支持。您现在可以将 SNS 消息加载到 S3、Redshift、Elasticsearch、MongoDB、Datadog、Splunk、New Relic 等。 SNS 文档中有详细信息。