【发布时间】:2018-10-31 04:32:31
【问题描述】:
我需要将消息从 SNS 发布到 kinesis。我发现,直接订阅 SNS/SQS 是不可能的。我将需要编写 lambda 以从 SNS 获取并将其发布到 kinesis。 有没有其他方法可以将记录从 SNS 直接发布到 kinesis? 谢谢
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-sqs amazon-sns
我需要将消息从 SNS 发布到 kinesis。我发现,直接订阅 SNS/SQS 是不可能的。我将需要编写 lambda 以从 SNS 获取并将其发布到 kinesis。 有没有其他方法可以将记录从 SNS 直接发布到 kinesis? 谢谢
【问题讨论】:
标签: amazon-web-services aws-lambda amazon-sqs amazon-sns
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。您需要编写一个将消息发送到 Kinesis 流的 Lambda 函数。
澄清一下:您的 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 文档有详细信息。
【讨论】: