我有一个需求,需要将SNS的消息发布到Kinesis。我发现,不能直接通过与SNS / SQS订阅相同来完成。我需要编写Lambda从SNS中获取并将其发布到Kinesis。
是否有其他直接从SNS发布记录到Kinesis的方法?
谢谢
我有一个需求,需要将SNS的消息发布到Kinesis。我发现,不能直接通过与SNS / SQS订阅相同来完成。我需要编写Lambda从SNS中获取并将其发布到Kinesis。
是否有其他直接从SNS发布记录到Kinesis的方法?
谢谢
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。
好消息!截至2021年1月,Amazon SNS已通过Kinesis Data Firehose订阅增加了消息存档和分析支持。现在您可以将SNS消息加载到S3、Redshift、Elasticsearch、MongoDB、Datadog、Splunk、New Relic等中。 SNS文档有详细信息。