我要求将消息从SNS发布到kinesis。我发现,直接订阅SNS / SQS是不可能的。我将需要编写lambda来从SNS获取并将其发布到kinesis。 有没有其他方法可以直接将记录从SNS发布到kinesis? 感谢
答案 0 :(得分:6)
Amazon SNS是一种发布/订阅模式。
发送给SNS的消息可以订阅:
http/s
:通过HTTP POST传送JSON编码的消息email
:通过SMTP发送邮件email-json
:通过SMTP 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 文档中有详细信息。