直接在 EC2 实例上订阅 S3 存储桶通知 SNS 主题
Subscribe to S3 bucket notifications SNS Topic directly on EC2 instance
我想直接在 EC2 实例上订阅 S3 存储桶通知 SNS 主题,我有一个正在侦听 S3 存储桶更新事件的脚本 运行。
我想我需要做的是:
aws sns subscribe --topic-arn [ARN of S3 bucket update topic] --protocol [email, email-json, http, https, or sqs]
在这种情况下什么协议有意义?
要回答您的问题,您需要在 ec2 实例上有一个可以接收和处理来自 SNS 的消息的端点,以便协议为 http
或 https
(取决于您如何在您的 ec2 实例上设置服务器)。您可以在 Sending Amazon SNS Messages to HTTP/HTTPS Endpoints
中阅读更多相关信息
请注意您是如何编写脚本的,但是如果它使用 python/java/javascript 或 lambda 可以支持的任何东西,那么最好将您的代码部署在 lambda 函数中并将消息发送到此 lambda ,您只需在执行时付费(在另一种情况下,您的 ec2 实例需要始终启动并且 运行 收听消息)。 lambda
是sns订阅支持的协议
第三个方案是图中引入SQS,你会运行异步模式(选不选看你的需求)
您可以选择 sqs
作为 SNS 消息的协议值(阅读 Sending Amazon SNS Messages to Amazon SQS Queues 了解更多信息)并且您需要 ec2 网络服务在 sqs 队列
中选择消息
我想直接在 EC2 实例上订阅 S3 存储桶通知 SNS 主题,我有一个正在侦听 S3 存储桶更新事件的脚本 运行。
我想我需要做的是:
aws sns subscribe --topic-arn [ARN of S3 bucket update topic] --protocol [email, email-json, http, https, or sqs]
在这种情况下什么协议有意义?
要回答您的问题,您需要在 ec2 实例上有一个可以接收和处理来自 SNS 的消息的端点,以便协议为 http
或 https
(取决于您如何在您的 ec2 实例上设置服务器)。您可以在 Sending Amazon SNS Messages to HTTP/HTTPS Endpoints
请注意您是如何编写脚本的,但是如果它使用 python/java/javascript 或 lambda 可以支持的任何东西,那么最好将您的代码部署在 lambda 函数中并将消息发送到此 lambda ,您只需在执行时付费(在另一种情况下,您的 ec2 实例需要始终启动并且 运行 收听消息)。 lambda
是sns订阅支持的协议
第三个方案是图中引入SQS,你会运行异步模式(选不选看你的需求)
您可以选择 sqs
作为 SNS 消息的协议值(阅读 Sending Amazon SNS Messages to Amazon SQS Queues 了解更多信息)并且您需要 ec2 网络服务在 sqs 队列