В этом учебном пособии рассматривается сценарий массовой рассылки сообщений с использованием Amazon Simple Notification Service (SNS) и Amazon Simple Queue Service (SQS). В описанном сценарии сообщения отправляются множеству подписчиков, что устраняет необходимость периодической проверки или опроса на наличие обновлений и обеспечивает параллельную асинхронную обработку сообщения подписчиками.
Например, вы разрабатываете приложение с оптимизацией для облака и в этом приложении выполняется отправка сообщения Amazon SNS в тему при размещении заказа в интернет‑магазине. Всем очередям Amazon SQS, подписанным на эту тему, придут одинаковые оповещения о новом заказе.
Все сервисы AWS, которые используются в этом учебном пособии, входят в уровень бесплатного пользования AWS.
Для отправки распределенных оповещений о событиях необходимо выполнить вход в аккаунт
Создать бесплатный аккаунтУровень бесплатного пользования AWS включает 1 000 000 публикаций для Amazon Simple Notification Service и 1 000 000 запросов для Amazon Simple Queue Service.
Подробнее об уровне бесплатного пользования AWS »
Щелкните здесь, и в новом окне браузера откроется консоль управления AWS. При этом пошаговое руководство останется открытым. Когда стартовый экран загрузится, введите имя пользователя и пароль, чтобы начать работу. Затем наберите в поисковой строке notification и выберите Simple Notification Service, чтобы открыть консоль управления этим сервисом.
В этом шаге мы создадим тему Amazon SNS. Тема – это коммуникационный канал для отправки сообщений и подписки на уведомления. В этом примере рассматривается отправка сообщения из приложения для интернет‑коммерции в тему Amazon SNS при размещении заказа в интернет‑магазине.
После создания темы Amazon SNS можно создать очереди Amazon SQS, которые будут подписаны на эту тему.
При подписке нескольких очередей на тему во все очереди будут приходить одинаковые уведомления каждый раз, когда в тему поступит сообщение. Подключенные к этим очередям сервисы смогут параллельно обрабатывать заказы в асинхронном режиме.
Например, на инстансе сервера Amazon EC2, подключенном к одной из таких очередей, можно было бы организовать обработку или выполнение заказа, в то время как другие инстансы серверов можно было бы подсоединить к хранилищу данных и использовать для анализа всех поступивших заказов.
Для упрощения в этом руководстве подключение инстансов EC2 к очередям рассматриваться не будет.
а) Щелкните здесь, чтобы открыть консоль Amazon SQS в новом окне браузера. Если появится стартовая страница консоли SQS, нажмите Get Started Now. В противном случае перейдите к следующему шагу.
б) В первой очереди будут храниться заказы для вымышленного сервиса учета ресурсов, который отслеживает товары, при каждом заказе добавляя их в реестр или удаляя из него по мере необходимости.
На странице Create New Queue (Создать новую очередь) введите Orders‑for‑Inventory в поле Queue Name (Имя очереди). Оставьте выбранным вариант Standard Queue (Стандартная очередь) и щелкните Quick‑Create Queue (Быстрое создание очереди).
Вы создали две очереди Amazon SQS, и теперь их нужно подписать на тему Amazon SNS, которая распространяет оповещения о новых заказах.
б) Отобразится диалоговое окно Subscribe to a Topic (Подписка на тему). Из выпадающего списка Choose a Topic (Выбор темы) выберите созданную вами тему Amazon SNS New‑Orders.
Тема SNS отображается в списке, потому что была создана в том же аккаунте, что и очереди Amazon SQS. Если бы тема SNS была создана в другом аккаунте, вам пришлось бы использовать для подписки поле Topic ARN (ARN темы). Дополнительные сведения см. в документации Amazon SNS.
Не меняя параметра Topic Region, щелкните Subscribe.
Теперь ваши очереди подписаны на тему. В этом шаге вам предстоит моделировать размещение нового заказа, отправив в тему сообщение с деталями заказа из вымышленного приложения для интернет‑торговли.
б) Отобразится страница Publish Message to topic (Опубликовать сообщение в теме). В поле Subject (Тема) введите «Order 123‑4567890‑1234567». В поле Message (Сообщение) введите следующий текст, который имитирует пример заказа:
1 x Widget @ $29.99 USD
2 x Widget Cables @ $4.99
Нажмите Publish message (Опубликовать сообщение). Отобразится диалоговое окно с подтверждением.
При публикации нового сообщения оно будет доставлено по всем адресам, подписанным на тему, с помощью Amazon SNS. В сценарии с массовой рассылкой, таком как рассматриваемый, этими адресами являются очереди Amazon SQS.
В этом шаге вам предстоит подтвердить получение оповещений очередями, просмотрев сообщение, которое было отправлено в очереди из темы.
г) В столбце Body нажмите More Details (Подробнее). В поле Message Details (Подробнее) содержится документ в формате JSON. Этот документ включает в себя тему и текст сообщения, опубликованного в теме.
Вы подтвердили, что очередь Orders‑for‑Inventory получила оповещение о новом заказе из темы New‑Orders.
Щелкните Close.
Д. Предположим, что в вымышленном сервисе учета ресурсов обработка этого сообщения завершилась, и теперь мы можем безопасно удалить сообщение из очереди.
Нажмите Delete 1 Message (Удалить 1 сообщение). Для подтверждения нажмите Yes, Delete Checked Messages (Да, удалить выбранные сообщения). Затем нажмите Close (Закрыть).
В этом шаге вам предстоит удалить созданные для этого учебного пособия ресурсы, включая подписки на тему, саму тему, и очереди. Во избежание нежелательных затрат рекомендуется удалять ресурсы, которые больше не используются.
б) Отобразится диалоговое окно с подтверждением удаления. В диалоговом окне введите delete me и выберите Delete (Удалить). Тема и связанные с ней подписки удалены. Теперь можно закрыть окно браузера SNS (но не выходите из аккаунта, если вам еще нужно удалить очереди в консоли SNS).
Вы реализовали сценарий массовой рассылки сообщений с помощью Amazon SNS и Amazon SQS. Теперь можно приступать к использованию Amazon SNS и Amazon SQS вместе для доставки сообщений приложениям, которым требуется немедленное оповещение о событиях, или для буферизации сообщений в очередях Amazon SQS для дальнейшей обработки другими приложениями.
Теперь, когда вы освоили механизм массовой рассылки сообщений с использованием Amazon Simple Notification Service и Amazon Simple Message Queue Service, выберите одно из следующих направлений для более подробного изучения облачной системы доставки сообщений в AWS.
Подробнее
Ознакомьтесь с обзором возможностей, компонентов и примеров использования для тем сообщений в Amazon Web Services (AWS) Посетите веб‑страницу Amazon SNS »
Больше информации
Узнайте, как прямо сейчас обеспечить возможность отправки и получения оповещений из облака для приложений, конечных пользователей и устройств. Ознакомиться с документацией »
Решение в действии
Послушайте, как Capital One и другие клиенты используют Amazon SQS и Amazon SNS для изоляции и масштабирования приложений. Смотрите наш вебинар »