Подписаться на уведомления S3 в разделе SNS непосредственно на экземпляр EC2


Я хотел бы подписаться на тему S3 bucket notifications SNS непосредственно на экземпляре EC2, где у меня работает скрипт, который прослушивает событие обновления S3 bucket.

Я предполагаю, что мне нужно сделать:

aws sns subscribe --topic-arn [ARN of S3 bucket update topic] --protocol [email, email-json, http, https, or sqs]

Какой протокол имел бы смысл в этом контексте?

1 2

1 ответ:

Чтобы ответить на ваш вопрос, вам потребуется конечная точка на вашем экземпляре ec2, которая может принимать и обрабатывать сообщения от SNS, поэтому протокол будет http или https (в зависимости от того, как вы настроите сервер на вашем экземпляре ec2). Подробнее об этом можно прочитать в разделе отправка сообщений Amazon SNS на конечные точки HTTP / HTTPS

Обратите внимание, конечно, как вы написали свой сценарий, но если он использует python / java / javascript или что-нибудь, что может быть поддержано lambda, было бы намного лучше развернуть ваш код в лямбда-функции и есть сообщение, отправленное в эту лямбду, вы платите только тогда, когда он выполняется (в другом случае, ваш экземпляр ec2 должен быть всегда включен и работает, чтобы слушать сообщения). lambda - поддерживаемый протокол подписки sns

Третий вариант-ввести SQS на картинке, вы будете работать в асинхронном режиме (зависит от вашего требования, если это опция или нет) вы бы выбрали sqs в качестве значения протокола Вашего сообщения SNS (читать отправка Amazon SNS Сообщения в очереди Amazon SQS для получения дополнительной информации), и вам потребуется ваш веб-сервис ec2, чтобы выбрать сообщение в очереди sqs