将消息从SNS发布到运动

use*_*649 5 amazon-sqs amazon-sns aws-lambda

我需要将消息从SNS发布到运动。我发现,不可能直接订阅与SNS / SQS相同的内容。我将需要编写lambda以便从SNS获取并将其发布到运动学。还有其他方法可以将记录从SNS直接发布到运动学吗?谢谢

Joh*_*ein 10

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函数。

请参阅:订阅-Amazon Simple Notification Service

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

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

您唯一的其他选择是更改当前将消息发送到SNS的系统,然后将其发送到Kinesis。

  • 或者您使用AWS刚刚推出的EventBridge服务https://aws.amazon.com/eventbridge/。它支持 Kinesis 作为订阅者 (4认同)
  • 此答案不再有效,因为请求的功能现已在 SNS 中提供:https://aws.amazon.com/about-aws/whats-new/2021/01/amazon-sns-adds-support-for-message -通过-kineses-data-firehose-subscriptions进行归档和分析/ (2认同)

Ota*_*ira 6

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