Вопрос: Что такое Amazon Simple Notification Service (Amazon SNS)?

Amazon Simple Notification Service (Amazon SNS) – это веб-сервис, упрощающий настройку, использование и отправку оповещений из облака. Он дает разработчикам гибкие и недорогие возможности публикации сообщений из приложения с мгновенной доставкой подписчикам или другим приложениям и обеспечивает необходимое масштабирование. Он помогает разработчикам, облегчая проведение крупномасштабных вычислительных операций. Передача сообщений в Amazon SNS реализована по принципу «публикация-подписка» (pub-sub), при этом оповещения доставляются клиенту по методу push, не требуя периодических проверок или опросов на предмет изменения информации и обновлений. Простые интерфейсы API, работающие с минимальными требованиями к предварительной разработке, отсутствие расходов на обслуживание и управление, оплата по факту использования – все эти особенности сервиса Amazon SNS позволяют разработчикам просто встраивать в свои приложения мощную систему оповещений.

Вопрос: Как начать работу с Amazon SNS?

Чтобы создать тему Amazon SNS и начать публиковать в нее сообщения, воспользуйтесь 10-минутным учебным пособием Send Fanout Notifications с пошаговыми инструкциями.

Дополнительные сведения см. в Руководстве по Amazon SNS для разработчиков, а также в образцах кода в центре ресурсов.

Вопрос: Каковы преимущества использования сервиса Amazon SNS?

У сервиса Amazon SNS есть ряд преимуществ, которые делают его практичным решением для создания и интеграции слабосвязанных распределенных приложений.

  • Мгновенная доставка на основе технологии push (без опросов).
  • Простые интерфейсы API и удобная интеграция с приложениями.
  • Гибкая доставка сообщений по нескольким транспортным протоколам.
  • Экономичный тарифный план, предполагающий оплату по факту использования, без предварительных платежей.
  • Консоль управления AWS с простым интерактивным веб-интерфейсом.

Вопрос: В каких ситуациях могут использоваться оповещения Amazon SNS?

Сфера применения Amazon SNS очень широка: оповещения о событиях, приложения мониторинга, системы управления рабочими процессами, обновление срочной информации, мобильные приложения, а также любые другие приложения, для которых актуальна отправка или получение оповещений. Например, в системах управления рабочими процессами Amazon SNS можно использовать для трансляции событий внутри распределенных вычислительных систем, переноса данных между хранилищами или обновления записей в бизнес-системах. Соответствующие компоненты системы и конечные пользователи мгновенно получают текущую информацию о событиях и оповещения, связанные с успешной проверкой, подтверждением, изменением запасов и статусом доставки. Одним из стандартных шаблонов является использование SNS для публикации сообщений в очередях сообщений Amazon SQS для надежной асинхронной отправки одному или многим компонентам системы. Другой пример использования сервиса Amazon SNS – рассылка на мобильные устройства и приложения срочных оповещений о событиях. Высокая надежность и масштабируемость сервиса Amazon SNS является значительным преимуществом для разработчиков приложений, работающих с событиями в режиме реального времени.

Вопрос: Как работает сервис Amazon SNS?

Начать работу с сервисом Amazon SNS очень просто. Первым делом разработчик создает тему (своеобразную «точку доступа», определяющую конкретную тематику или тип событий), в которой будут публиковаться сообщения и на которую клиенты смогут подписываться для получения оповещений. После создания темы ее владелец может установить применимые для нее политики, например ограничить круг лиц, которые могут публиковать сообщения или подписываться на оповещения, или установить набор протоколов для передачи оповещений (например, HTTP/HTTPS, электронная почта, SMS). Подписчики – это клиенты, которые хотят получать оповещения по актуальным темам; они могут подписаться самостоятельно или по инициативе владельца темы. Подписчики указывают протокол и адрес (URL, email и т. д.) для доставки оповещений. Когда публикаторы хотят уведомить своих подписчиков об информации или обновлениях, они публикуют сообщение в теме – и сервис Amazon SNS немедленно доставляет его всем соответствующим подписчикам.

Вопрос: Чем отличаются сервисы Amazon SNS и Amazon SQS?

Оба сервиса – Amazon Simple Queue Service (SQS) и Amazon SNS – принадлежат к платформе AWS и специализируются на доставке сообщений, но имеют разные преимущества для разработчиков. Сервис Amazon SNS позволяет отправлять срочные сообщения множеству подписчиков посредством технологии push, которая устраняет необходимость в периодических проверках или опросах на предмет обновлений. Сервис очередей сообщений Amazon SQS используется распределенными приложениями для обмена сообщениями по принципу опроса и может использоваться для разделения компонентов отправки и приема. Сервис Amazon SQS обеспечивает гибкость при отправке и приеме сообщений, не требуя одновременной доступности распределенных компонентов приложений.

Одним из стандартных шаблонов является использование SNS для публикации сообщений в очередях Amazon SQS для надежной асинхронной отправки сообщений одному или многим компонентам системы.

Вопрос: Чем отличаются сервисы Amazon SNS и Amazon MQ?

Amazon MQ, Amazon SQS и Amazon SNS – сервисы обмена сообщениями, подходящие для компаний любого масштаба, от стартапов до крупных корпораций. Если обмен сообщениями используется в существующих приложениях и эту систему требуется быстро и просто перенести в облако, рекомендуем использовать сервис Amazon MQ. Сервис поддерживает стандартные отраслевые API и протоколы, что позволяет перейти с любого стандартного брокера сообщений на Amazon MQ, не переписывая код приложении в части обмена сообщениями. Если речь идет о разработке в облаке приложений с нуля, рекомендуем использовать Amazon SQS и Amazon SNS. Amazon SQS и SNS – это компактные и полностью управляемые сервисы очередей и тем сообщений со встроенным масштабированием и простыми удобными API. Amazon SQS и SNS можно использовать для того, чтобы разъединять и масштабировать микросервисы, распределенные системы и бессерверные приложения, а также чтобы повышать их надежность.

Вопрос: Как начать работать с Amazon SNS?

Чтобы зарегистрироваться в сервисе Amazon SNS, нажмите кнопку «Регистрация» на странице описания Amazon SNS. Чтобы получить доступ к этому сервису, у вас должен быть аккаунт Amazon Web Services. Если у вас его еще нет, вам будет предложено создать его в начале процесса регистрации в сервисе Amazon SNS. Чтобы начать пользоваться сервисом, после регистрации ознакомьтесь с документацией Amazon SNS и Руководством по началу работы. Используя только браузер, через Консоль управления AWS вы сможете легко создавать темы, редактировать соответствующие политики, добавлять подписчиков и отправлять оповещения.

Вопрос: Поддерживается ли Amazon SNS в Консоли управления AWS?

Поддержка Amazon SNS осуществляется в Консоли управления AWS, которая обеспечивает возможность доступа к сервису и управления им через интерактивный веб-интерфейс. Достаточно иметь в распоряжении браузер, чтобы легко создавать темы, добавлять подписчиков и отправлять оповещения через Консоль управления AWS. Консоль управления AWS также позволяет без труда публиковать сообщения для любого адреса (HTTP, SQS, Lambda, мобильных push-оповещений, электронной почты или SMS) и редактировать политики тем для управления доступом публикаторов и подписчиков.

Вопрос: Какие точки доступа к сервису Amazon SNS используются по регионам?

Обратитесь к разделу Конечные точки и регионы AWS в документации AWS для получения актуального списка всех точек доступа к сервису Amazon SNS.

Вопрос: Можно ли получить для своего аккаунта историю вызовов API SNS для анализа уровня безопасности и устранения неполадок в работе?

Да. Система SNS поддерживает веб-сервис AWS CloudTrail, который записывает все вызовы API AWS для вашего аккаунта и предоставляет вам лог-файлы. С помощью CloudTrail можно получить историю следующих событий: идентификационные данные и IP-адрес источника, совершившего вызов API, время вызова API, параметры запроса и ответные данные, переданные сервисом SNS.

В настоящий момент в сервисе SNS с помощью CloudTrail можно отслеживать только аутентифицированные вызовы. Логи CloudTrail для вызовов ConfirmSubscription и Unsubscribe без аутентификации пока недоступны. Подробные сведения см. в разделе «CloudTrail» Руководства разработчика по SNS.

Для получения истории всех вызовов API SNS для вашего аккаунта просто включите сервис CloudTrail в Консоли управления AWS. Подробные сведения о сервисе AWS CloudTrail см. по ссылке.


Вопрос: Сколько стоит Amazon SNS?

Используя Amazon SNS, вы платите только за то, чем пользуетесь, без минимальной оплаты или долгосрочных обязательств. Пользователь платит 0,50 USD за один миллион запросов Amazon SNS, 0,06 USD за 100 000 оповещений по HTTP и 2,00 USD за 100 000 оповещений по электронной почте. Пользователи могут бесплатно отправить 100 оповещений с помощью SMS-сообщений, при этом стоимость последующих сообщений будет зависеть от страны назначения.

В Amazon SNS есть уровень бесплатного пользования, позволяющий начать пользоваться сервисом бесплатно. Ежемесячно клиентам предоставляется на бесплатной основе первый миллион запросов Amazon SNS, первые 100 000 оповещений по HTTP, первые 100 SMS-оповещений и первая 1000 оповещений по электронной почте.

Подробные сведения о тарифах и стоимости передачи данных см. на странице Сведений об Amazon SNS.

Вопрос: Каков принцип оплаты пользования сервисом Amazon SNS?

Для начала работы с сервисом не требуется плата за подключение. В конце месяца с вашей кредитной карты будет автоматически снята сумма за пользование сервисом по итогам месяца. Расходы за текущий расчетный период можно просмотреть в любое время на веб-сайте Amazon Web Services, войдя в аккаунт Amazon Web Services и щелкнув ссылку «История аккаунта» в разделе «Ваш аккаунт Amazon Web Services».

Вопрос: Когда начинается и заканчивается расчетный период пользования сервисом Amazon SNS?

Расчетный период пользования услугами Amazon SNS длится с первого до последнего дня каждого месяца. Расходы за месяц будут суммироваться в конце каждого месяца.

Вопрос: Ваши цены указаны с учетом налогов?

Если не указано иное, представленные здесь цены не включают применимые налоги и сборы, в том числе НДС и применимый налог с продаж.Для клиентов с платежным адресом в Японии использование сервисов AWS облагается потребительским налогом Японии. Подробнее.


Вопрос: Какой формат должна иметь тема Amazon SNS?

Название темы ограничено 256 символами. Допускается использование буквенно-цифровых символов, а также дефисов (-) и подчеркиваний (_). Названия тем в рамках одного аккаунта AWS должны быть уникальными. После удаления темы ее название можно использовать повторно. При создании каждой темы сервис Amazon SNS присваивает ей уникальное имя ARN (Amazon Resource Name), включающее название сервиса (SNS), регион, идентификатор пользователя AWS и название темы. Имя ARN будет возвращено в ответ на вызов API с запросом на создание темы. Это уникальное имя темы публикаторы и подписчики будут указывать каждый раз, когда им необходимо будет выполнить любое действие в связи с данной темой.

Вот как будет выглядеть имя ARN для темы с названием «mytopic», созданной пользователем с ID аккаунта AWS «123456789012» и размещенной в регионе Восток США:

arn:aws:sns:us-east-1:1234567890123456:mytopic. Примечание. Пытаться составить имя ARN из отдельных компонентов НЕ НУЖНО – всегда используйте имя ARN, возвращенное в ответ на вызов API с запросом на создание темы.

Вопрос: Какие операции доступны в сервисе Amazon SNS и кто может их выполнять?

Сервис Amazon SNS предоставляет набор простых операций API, позволяющих владельцам тем, подписчикам и публикаторам активировать оповещения о событиях.

Операции, доступные владельцу.

  • CreateTopic – создание новой темы.
  • DeleteTopic – удаление прежде созданной темы.
  • ListTopics – отображение списка тем, которыми владеет конкретный пользователь (идентификатор AWS).
  • ListSubscriptionsByTopic – отображение перечня подписок на конкретную тему.
  • SetTopicAttributes – установка/изменение атрибутов темы, в том числе прав доступа публикатора/подписчика, поддерживаемые транспортные протоколы и т. д.
  • GetTopicAttributes – получить/посмотреть текущие атрибуты темы.
  • AddPermission – предоставить избранным пользователям доступ для совершения указанных действий.
  • RemovePermission – закрыть избранным пользователям доступ для совершения указанных действий.

Операции, доступные подписчику.

  • Subscribe – оформление новой подписки на конкретную тему (сервис Amazon SNS пришлет сообщение о подтверждении).
  • ConfirmSubscription – ответ на сообщение о подтверждении запроса на подписку, выражающий согласие на получение оповещений из соответствующей темы.
  • UnSubscribe – отмена прежде оформленной подписки.
  • ListSubscriptions – отображение списка подписок конкретного пользователя (идентификатор AWS).

Операции, доступные публикатору, следующие.

  • Publish – публикация нового сообщения в теме.

Вопрос: Почему для отображения подписок используются две разные операции API?

Эти две операции API для отображения подписок выполняют отличные функции и возвращают разные результаты.

  • API ListSubscriptionsByTopic позволяет владельцу темы увидеть полный перечень активных подписчиков темы.
  • API ListSubscriptions позволяет пользователю получить список всех своих активных подписок (на одну или несколько тем).

Вопрос: Какие используются форматы и транспортные протоколы для получения оповещений?

Чтобы клиенты могли свободно выбирать способ доставки, сервис Amazon SNS поддерживает рассылку оповещений по нескольким транспортным протоколам. Во время подачи заявок на подписки клиенты могут выбрать один из следующих транспортных протоколов.

  • HTTP, HTTPS – подписчик должен указать URL-адрес в процессе оформления подписки; оповещения будут доставляться методом POST по протоколу HTTP на указанный URL-адрес.
  • Email, Email-JSON – сообщения отправляются на зарегистрированные адреса в виде электронной почты. По протоколу Email-JSON оповещения отправляются как объекты JSON, по протоколу Email – как текстовая почта.
  • SQS – пользователи могут указать URL-адрес очереди SQS в качестве конечной точки; сервис Amazon SNS поставит оповещение в указанную очередь (которую подписчик затем обрабатывает посредством API SQS, таких как ReceiveMessage, DeleteMessage и пр.) Внимание! Очереди FIFO на данный момент не поддерживаются.
  • SMS – сообщения отправляются на зарегистрированные телефонные номера в виде текстовых SMS-сообщений.

Вопрос: Могут ли владельцы тем ограничивать допустимые транспортные протоколы для своих тем?

Владельцы тем могут настраивать для них транспортные протоколы, устанавливая соответствующие разрешения в политиках управления доступом.

Вопрос: Как владелец может установить политики управления доступом?

Обзор шагов по установке политик управления доступом вы найдете в Руководстве по началу работы с сервисом Amazon SNS.

Вопрос: Можно ли подписаться на одну тему, указав несколько транспортных протоколов?

Подписчики темы Amazon SNS могут получать оповещения через любой поддерживаемый темой транспортный протокол. Тема может поддерживать подписки и рассылку оповещений по нескольким транспортным протоколам.

Вопрос: Могут ли подписчики получать только часть сообщений, опубликованных в теме, по собственному выбору?

Да, для создания более простых и упорядоченных архитектур «издатель-подписчик» можно использовать фильтрацию сообщений в Amazon Simple Notification Service (SNS). Фильтрация сообщений позволяет подписчикам темы Amazon SNS получать не все сообщения, опубликованные в теме, а только выбранные сообщения, которые их интересуют. Подробные сведения см. в документации; можно также воспользоваться 10-минутным учебным пособием Filter Messages Published to Topics.

Вопрос: Можно ли использовать Amazon SNS с другими сервисами AWS?

Amazon SNS можно использовать вместе со следующими сервисами AWS: Amazon SQS, Amazon EC2 и Amazon S3. Рассмотрим возможность совместного использования сервисов Amazon SNS, Amazon EC2, SQS и SimpleDB на примере системы обработки заказов. В такой системе при каждой транзакции или продвижении заказа по цепочке его обработки происходит обмен сообщениями между компонентами приложения. Когда клиент размещает заказ, эта транзакция записывается в базу данных Amazon SimpleDB, а приложение, работающее на инстансе Amazon EC2, перенаправляет запрос в платежную систему, которая производит списание с кредитной карты или банковского счета клиента. После принятия платежа в теме Amazon SNS публикуется сообщение с подтверждением заказа. В данном случае на тему по Email/HTTP подписаны различные пользователи – продавец, клиент и партнеры цепочки поставок – и оповещения от сервиса Amazon SNS в этой теме быстро проинформируют всех об успешной обработке платежа. Также оповещения можно использовать для организации системы обработки заказов, работающей на инстансе EC2, где оповещения по протоколу HTTP способны инициировать одновременные изменения в связанных компонентах, таких как система учета запасов или служба перевозки. При интеграции сервисов Amazon SNS и Amazon SQS все доставляемые оповещения могут также оставаться в очереди Amazon SQS, где потом будут обработаны приложением аудита.

Вопрос: Предоставляется ли сервис Amazon SNS во всех регионах, где доступны сервисы AWS?

Обратитесь к разделу Конечные точки и регионы AWS в документации AWS для получения актуальных сведений о доступности сервиса Amazon SNS.

Вопрос: Через какое время клиенту разрешается повторно создавать темы с названиями, которые использовались ранее?

Названия тем обычно становятся доступны для повторного использования через 30–60 секунд после удаления одноименной темы. Точное время зависит от количества активных подписок на тему – при этом темы с меньшим количеством подписчиков освободятся для повторного использования быстрее, чем те, на которые было подписано больше людей.


Вопрос: Как пользователь может подписаться на доставку оповещений по электронной почте?

Чтобы получать оповещения для конкретной темы по электронной почте, подписчик должен выбрать в качестве протокола Email или Email-JSON и указать действительный электронный адрес. Это можно сделать через Консоль управления AWS или посредством прямого вызова API Amazon SNS. После этого сервис Amazon SNS отправит на указанный адрес электронное письмо со ссылкой для подтверждения, запрашивая у владельца адреса явное подтверждение согласия на получение оповещений данной темы по электронной почте. Перейдя по указанной ссылке и подтвердив тем самым свою подписку, пользователь начнет получать на свой электронный адрес все сообщения, опубликованные в данной теме.

Вопрос: Почему в сервисе Amazon SNS предусмотрено два транспортных протокола для получения оповещений по электронной почте?

Два почтовых транспортных протокола предназначены для двух отдельных категорий клиентов или конечных пользователей. По протоколу Email-JSON оповещения отправляются как объекты JSON; он предназначен для приложений, которые обрабатывают почту программным путем. Транспортный протокол Email предназначен для конечных пользователей, или клиентов, а оповещения имеют вид обычных текстовых сообщений, которые удобно читать.

Вопрос: Может ли пользователь изменить тему письма и отображаемое имя для оповещений, отправляемых по Email/Email-JSON?

Сервис Amazon SNS позволяет пользователям изменять поле темы каждого публикуемого почтового сообщения, указав этот параметр в процессе вызова API Publish. Отображаемое имя для темы можно установить с помощью API SetTopicAttributes – это имя будет применяться ко всем письмам, отправляемым для данной темы.

Вопрос: Нужно ли пользователям специально настраивать почтовый ящик, чтобы получать оповещения от сервиса Amazon SNS?

В большинстве случаев пользователи смогут получать сообщения о подтверждении подписок и оповещения от сервиса Amazon SNS без каких-либо специальных настроек. Однако бывают ситуации, когда из-за стандартных установок почтовых доменов или других пользовательских настроек письма по ошибке перенаправляются в папку со спамом/нежелательной почтой. Чтобы не пропустить сообщений о подтверждении подписок и оповещений от сервиса Amazon SNS, пользователи могут добавить адрес no-reply@sns.amazonaws.com в список своих контактов, а также проверять папки со спамом и нежелательной почтой.

Вопрос: Если пользователи указывают в качестве адреса очередь SQS, требуется ли перед оформлением подписки создать очередь? Какие разрешения потребуются для этой очереди?

Прежде чем подписать на тему очередь SQS, пользователи должны создать ее при помощи консоли SQS. Выберите эту очередь в консоли, затем нажмите «Queue Actions» в панели меню и выберите пункт «Subscribe Queue to SNS Topic» из раскрывающегося списка. В диалоговом окне подписки выберите тему из раскрывающегося списка «Choose a Topic» и нажмите кнопку «Subscribe». За подробными пошаговыми инструкциями обратитесь к документации Amazon SNS.

Вопрос: Совместимы ли очереди FIFO сервиса SQS с сервисом Amazon Simple Notification Service (SNS)?

В настоящее время невозможно пересылать сообщения из Amazon SNS в очереди FIFO Amazon SQS. SNS можно использовать, чтобы пересылать сообщения в стандартные очереди.

Вопрос: Как разработчику настроить очередь Amazon SQS, чтобы получать оповещения Amazon SNS?

Чтобы сервис Amazon SNS доставлял оповещения в очередь SQS, разработчик должен подписаться на тему, выбрав транспортный протокол SQS и указав URL-адрес существующей очереди SQS. Владелец очереди SQS должен разрешить ей получать оповещения от сервиса Amazon SNS, подписав ее на тему, чтобы сообщения успешно доставлялись в очередь.

Если пользователь одновременно является владельцем темы Amazon SNS и очереди SQS, принимающей оповещения, никаких дополнительных действий от него не требуется. Любое сообщение, опубликованное в теме, автоматически будет доставляться в указанную очередь SQS. Если владелец очереди SQS не является владельцем темы, сервис Amazon SNS потребует явного подтверждения заявки на подписку.

Чтобы узнать подробнее о том, как подписать очередь SQS на тему и установить политики управления доступом к очередям SQS, обратитесь к документации Amazon SNS.

Вопрос: Как распределять идентичные сообщения в несколько очередей SQS?

Сначала создайте тему с помощью сервиса SNS. Затем создайте и подпишите несколько очередей SQS на тему SNS. Теперь при добавлении любого сообщения в тему SNS оно будет распределяться в очереди SQS, то есть сервис SNS доставит сообщение во все очереди SQS, которые подписаны на эту тему.

Вопрос: В каком формате сервис Amazon SNS отправляет структурированные оповещения?

Оповещение, отправляемое сервисом Amazon SNS для доставки по транспортным протоколам HTTP, HTTPS, Email-JSON и SQS, представляют собой простой объект JSON, содержащий следующую информацию.

  • MessageId – универсальный уникальный идентификатор каждого публикуемого оповещения.
  • Timestamp – время (GMT) публикации оповещения.
  • TopicArn – тема, в которой было опубликовано это сообщение.
  • Type – тип доставляемого сообщения (Notification для оповещений).
  • UnsubscribeURL – ссылка, позволяющая аннулировать подписку URL-адреса на эту тему и отказаться от дальнейших оповещений.
  • Сообщение: полезные данные (текст сообщения) в том виде, в котором они были получены от публикатора.
  • Subject – поле темы письма (если этот дополнительный параметр был включен в вызов API Publish наряду с сообщением).
  • Signature – подпись SHA1withRSA, в которой с применением 64-разрядного кода закодированы значения Message, MessageId, Subject (если есть), Type, Timestamp и Topic.
  • SignatureVersion – версия использованной подписи Amazon SNS.

Оповещения, отправляемые по транспортному протоколу Email, содержат только полезные данные (текст сообщения) в том виде, в котором они были получены от публикатора.

Вопрос: Как пользователь может подписаться на доставку SMS-оповещений?

Пожалуйста, смотрите ниже раздел «Вопросы по SMS».


Вопрос: Как пользователям обеспечить безопасность сообщений, отправляемых в мои темы?

Все вызовы API к Amazon SNS проверяются по подписи и идентификатору AWS. Кроме того, мы рекомендуем пользователям защитить данные в сети, подключаясь к нашим безопасным SSL-серверам.

Вопрос: Кто может создать тему?

Темы могут создавать только пользователи с действительным идентификатором AWS, зарегистрированные в сервисе Amazon SNS. Проще всего создать тему через Консоль управления AWS. Также ее можно создать посредством API CreateTopic. Консоль управления AWS доступна по адресу: http://aws.amazon.com/console.

Вопрос: Могут ли несколько пользователей публиковать сообщения в одной теме?

Владелец темы может установить разрешения, позволяющие публиковать сообщения в теме нескольким пользователям (имеющим действительный идентификатор AWS). По умолчанию публиковать сообщения в теме может только ее владелец.

Вопрос: Как владелец темы может предоставлять/отменять разрешения публиковать в теме и подписываться на нее?

Для разработчиков существуют простые интерфейсы API AddPermission и RemovePermission, позволяющие предоставлять/отменять разрешения для темы. Однако в случае условного доступа или более сложных ситуаций для управления разрешениями пользователи должны использовать политики управления доступом. Проще всего управлять разрешениями через Консоль управления AWS. Консоль управления AWS доступна по адресу: http://aws.amazon.com/console.

Вопрос: Как владелец темы может предоставит доступ подписчикам? Должны ли подписчики иметь действительные идентификаторы AWS?

C помощью сервиса Amazon SNS все пользователи могут легко получать оповещения, независимо от наличия идентификатора AWS. Владелец темы может предоставить или ограничить подписчикам доступ, установив соответствующие разрешения для темы в политиках управления доступом. Пользователи могут получать оповещения от сервиса Amazon SNS двумя способами.

  • При наличии идентификатора AWS: пользователи с действительным идентификатором AWS (нажмите эту ссылку, чтобы узнать, как его получить) могут подписаться на любую тему, если ее владелец предоставил им права доступа. Проверка идентификатора AWS является частью процедуры оформления подписки.
  • Остальные пользователи: владельцы тем могут оформить подписку и зарегистрировать адреса от имени пользователей, у которых нет идентификаторов AWS.

В обоих случаях владелец подписанного адреса должен явно согласиться на подписку, выполнив необходимые действия в ответ на запрос подтверждения со стороны сервиса Amazon SNS.

Вопрос: Как сервис Amazon SNS проверяет подлинность вызовов API?

Удостоверение подлинности всех вызовов API к сервису Amazon SNS происходит путем проверки подписи, которая должна быть включена в заявки и содержать секретный ключ аккаунта AWS.

Вопрос: Как сервис Amazon SNS предотвращает рассылку спама, когда утверждает заявки на подписки?

В процессе оформления подписки сервис Amazon SNS удостоверится, что только существующие, зарегистрированные подписчики/адреса будут получать оповещения. Чтобы предотвратить рассылку спама и убедиться, что подписчик/адрес заинтересован в получении оповещений по конкретной теме, сервис Amazon SNS требует от подписчиков явного согласия, которое подтверждается в два этапа.

1. Когда пользователь вызывает API Subscribe и подписывает свой адрес на рассылку, сервис Amazon SNS отправляет на указанный адрес запрос подтверждения.

2. Получив на свой адрес запрос подтверждения, подписчик должен подтвердить заявку на подписку, выполнив запрошенные ответные действия. Только после этого сервис Amazon SNS считает заявку на подписку действительной. Если реакции на запрос не последует, сервис Amazon SNS не будет отправлять оповещения по данному адресу. Детали процедуры подтверждения подписки различаются в зависимости от выбранного транспортного протокола.

  • Для подписки на оповещения по протоколу HTTP/HTTPS сервис Amazon SNS сначала отправит запрос подтверждения (содержащий токен) на указанный URL-адрес методом POST. Приложение, которое осуществляет мониторинг URL-адреса, должно вызвать API ConfirmSubscription, используя токен.
  • Для подписки на оповещения по протоколам Email и Email-JSON сервис Amazon SNS отправит на указанный электронный адрес письмо со ссылкой. Для подтверждения заявки на подписку пользователь должен перейти по этой ссылке.
  • Для подписки на оповещения по протоколу SQS сервис Amazon SNS поставит в указанную очередь сообщение с запросом, содержащее токен. Приложение, которое осуществляет мониторинг очереди, должно вызвать API ConfirmSubscription, используя токен.

Примечание. Описанные выше шаги не требуются в том случае, если вы подписываете свою очередь Amazon SQS на свою же тему Amazon SNS – при этом очередь и тема должны принадлежать одному аккаунту AWS.

Вопрос: Как долго заявки на подписку могут ожидать подтверждения?

Запрос подтверждения заявки на подписку, присылаемый на ваш адрес, содержит токен, действительный в течение трех суток.

Вопрос: Кто может изменять права доступа к теме?

Права доступа к теме может изменять только ее владелец.

Вопрос: Как пользователи могут убедиться, что оповещения присылаются сервисом Amazon SNS?

Чтобы заверить подлинность всех оповещений, Amazon SNS подписывает их с использованием безопасной технологии асимметричного шифрования (сертифицированная пара ключей – закрытый и открытый). Amazon SNS размещает сертификат в известном месте (например, http://sns.us-east-1.amazonaws.com/SimpleNotificationService.pem для региона Восток США) и подписывает сообщения закрытым ключом на основе этого сертификата. Разработчики/приложения могут получить сертификат и проверять подписи оповещений с помощью открытого ключа, чтобы убедиться, что они на самом деле присланы сервисом Amazon SNS. Дополнительные сведения о размещении сертификатов см. на странице Amazon SNS.

Вопрос: Должны ли публикаторы также подписывать сообщения?

Сервис Amazon SNS требует, чтобы публикаторы, имеющие идентификатор AWS, подписывали свои сообщения секретным ключом AWS; затем эта подпись утверждается сервисом Amazon SNS.

Вопрос: Может ли публикатор/подписчик использовать SSL-канал для защиты сообщений?

Да, публикаторы и подписчики могут использовать протокол SSL, чтобы защитить канал обмена сообщениями. Издатели могут подключиться к сервису Amazon SNS по протоколу HTTP и публиковать сообщения через SSL-канал. Подписчику достаточно указать URL-адрес с защитой SSL в процессе оформления подписки, и оповещения будут доставляться на этот адрес по SSL-каналу.

Вопрос: Какие разрешения должен предоставить подписчик сервису Amazon SNS, чтобы оповещения отправлялись на указанный URL-адрес?

Владелец URL-адреса для получения оповещений должен предоставить разрешение сервису Amazon SNS отправлять сообщения на этот адрес.

Вопрос: Как аннулировать подписки?

Подписки могут быть аннулированы владельцем темы, подписчиком или иными лицами – в зависимости от способа, которым была подтверждена заявка на подписку.

  • Подписка, подтвержденная вызовом API ConfirmSubscription с флагом AuthenticateOnUnsubscribe, установленным в значение True, может быть аннулирована только владельцем темы или подписчиком.
  • Если подписка была подтверждена анонимно с флагом AuthenticateOnUnsubscribe, установленным в значение True, она может быть так же анонимно аннулирована.

Во всех случаях аннулирования подписки (кроме аннулирования самим подписчиком), на URL-адрес будет отправлено сообщение об отмене, чтобы его владелец мог повторно подписаться на тему (если запрос Unsubscribe был отправлен случайно или по ошибке). Подробные сведения об API ConfirmSubscription см. в документации Amazon SNS.


Вопрос: Соответствует ли Amazon SNS требованиям HIPAA?

Да, программа AWS соответствия требования HIPAA включает в себя сервис Amazon SNS как соответствующий требованиям HIPAA. Если вы заключили с AWS договор делового партнерства (BAA), вы можете использовать Amazon SNS для создания приложений, соответствующих требованиям HIPAA. Если у вас нет договора BAA или остались другие вопросы об использовании AWS для приложений, соответствующих требованиям HIPAA, свяжитесь с нами для получения дополнительной информации.

Подробнее см. в следующих ресурсах.

Текущий список программ соответствия, распространяющихся на Amazon SNS, см. на странице Сервисы AWS в программе обеспечения соответствия.

Вопрос: Каким еще требованиям соответствует Amazon SNS?

Для получения актуальной информации о соответствии SNS и других сервисов AWS требованиям см. страницу Сервисы AWS в программе соответствия требованиям.


Вопрос: Насколько надежно хранятся данные, опубликованные в сервисе Amazon SNS?

Сервис Amazon SNS хранит темы и сообщения доказавшей свою эффективность сетевой инфраструктуры и ЦОД Amazon. По меньшей мере три копии данных хранятся в нескольких зонах доступности, поэтому в случае единичного сбоя компьютера или сети доступ к Amazon SNS не будет потерян.

Вопрос: Может ли в оповещении содержаться несколько сообщений?

Нет, каждое оповещение может содержать лишь одно опубликованное сообщение.

Вопрос: Сколько раз подписчик будет получать каждое сообщение?

Хотя большей частью сообщения будут доставляться вашему приложению только один раз, распределенный характер сервиса Amazon SNS и изменчивые сетевые условия могут привести к тому, что подписчик иногда будет получать дубликаты сообщений. При разработке приложений необходимо учесть этот фактор, чтобы повторная обработка одного и того же сообщения не привела к ошибкам и противоречивости.

Вопрос: Будут ли сообщения доставляться в том же порядке, в котором были опубликованы?

Сервис Amazon SNS пытается доставлять сообщения от публикатора в том же порядке, в котором они были опубликованы в теме. Однако сетевые неполадки теоретически могут нарушить порядок доставки сообщений подписчику.

Вопрос: Можно ли удалить сообщение после публикации?

Нет, после успешной публикации в теме сообщение нельзя отозвать.

Вопрос: Гарантирует ли Amazon SNS доставку сообщений на подписанную конечную точку?

После публикации сообщения в теме сервис Amazon SNS пытается доставить оповещения всем подписчикам этой темы. Из-за возможных неполадок в сети Интернет или ограничений в доставке электронной почты некоторые сообщения могут не достичь адреса электронной почты или HTTP. В случае протокола HTTP можно контролировать режим повторных попыток доставки (линейный, геометрический, экспоненциальный алгоритм отсрочки), максимальную и минимальную задержку повторений и другие параметры посредством политики доставки SNS. Если успешная обработка опубликованных сообщений имеет критическую важность, разработчики должны реализовать доставку оповещений в очередь SQS (в дополнение к оповещениям через другие транспортные протоколы).

Вопрос: Что происходит с сообщениями Amazon SNS, если адрес подписчика недоступен?

Все сообщения, отправленные в SNS, обрабатываются и доставляются немедленно. Если сообщение не может быть успешно доставлено с первой попытки, SNS реализует политику повтора из 4 этапов: 1) повторение доставки без задержки между попытками; 2) повторение доставки с некоторой минимальной задержкой между попытками; 3) повторение доставки по некой модели отсрочки (линейной или экспоненциальной) и 4) повторение доставки с некоторой максимальной задержкой между попытками. 

Для каждого вида адресов применяются собственные политики повтора, описанные далее.

  • SQS. Если очередь SQS недоступна, SNS делает 10 повторов немедленно, а затем 100 000 повторов с интервалом в 20 секунд – в общей сложности 100 010 попыток на протяжении более 23 суток, после чего сообщение удаляется из SNS.
  • Lambda. Если сервис Lambda недоступен, SNS делает 2 повтора с интервалом в 1 секунду, затем 10 повторов с экспоненциально возрастающим интервалом от 1 секунды до 20 минут и, наконец, 38 повторов с интервалом 20 минут – всего 50 попыток на протяжении более 13 часов, после чего сообщение удаляется из SNS. 
  • HTTP(S). Для адресов HTTP(S), связанных с определенной темой можно установить политики доставки. Каждая политика доставки включает политику повтора и политику ограничения. Например, политика повтора может задавать минимальную/максимальную задержку повтора, количество повторов, которые должны быть выполнены перед задержкой, и тип отсрочки (линейная, экспоненциальная или арифметическая), который будет использоваться для повторных попыток доставки.  Когда количество повторов исчерпано, сообщение удаляется из SNS. Политика ограничения задается максимальным количеством попыток доставки в секунду на подписку.  Подробную информацию можно найти в разделе Настройка политики повторной доставки Amazon SNS для адресов HTTP/HTTPS.
  • Электронная почта. Если адрес электронной почты недоступен, SNS повторяет доставку 1 раз немедленно, 1 раз с интервалом 10 секунд, затем 10 раз с интервалом, увеличивающимся линейно от 10 секунд до 5 минут и, наконец, 90 раз с интервалом 5 минут – всего 102 попытки на протяжении более 7 часов, после чего сообщение удаляется из SNS.
  • Мобильные push-уведомления. Если мобильный адрес недоступен, SNS повторяет доставку 2 раза немедленно, 5 раз с интервалом в 20 секунд, затем 31 раз с интервалом, увеличивающимся экспоненциально от 20 секунд до 20 минут и, наконец, 12 раз с интервалом 20 минут – всего 50 попыток на протяжении более 4 часов, после чего сообщение удаляется из SNS.
  • SMS. Если адрес SMS недоступен, SNS повторяет доставку 2 раза с интервалом в 1 секунду, затем 10 раз с интервалом, увеличивающимся экспоненциально от 1 секунды до 10 минут и, наконец, 38 раз с интервалом 10 минут – всего 50 попыток на протяжении более 6 часов, после чего сообщение удаляется из SNS.

Вопрос: Какие возможности предоставляет новый функционал глобальной рассылки SMS?

Сервис Amazon SNS можно использовать для доставки SMS-сообщений (текстовых) более чем в 200 стран, и при этом получателю не нужно подписываться на рассылку явным образом, как это требовалось ранее. Там, где это требуется в соответствии с местным законодательством и нормативами, нужно будет предварительно получить разрешение получателя на отправку SMS-сообщений на его телефонный номер. Кроме того, теперь можно помечать SMS-сообщения как транзакционные, чтобы повысить надежность доставки, или как рекламные для оптимизации расходов. Чтобы избежать случайного перерасхода средств, можно установить лимиты расходов на рассылку сообщений на уровне аккаунта и на уровне сообщения.

Вопрос: В каких случаях следует помечать SMS-сообщения как транзакционные?

SMS-сообщения, имеющие первостепенное значение для вашего бизнеса, следует помечать как транзакционные. Это обеспечит доставку таких сообщений, например сообщений, содержащих одноразовые пароли или PIN-коды, по максимально надежным маршрутам. За пределами США такие маршруты обычно стоят дороже чем маршруты для передачи рекламных сообщений. Никогда не помечайте маркетинговые сообщения как транзакционные, потому что это нарушает местные политики регулирования в некоторых странах, а потому ваш аккаунт может быть помещен в список нарушителей и заблокирован.

Вопрос: В каких случаях следует помечать SMS-сообщение как рекламное?

SMS-сообщения, содержащие маркетинговую информацию, следует помечать как рекламные. Amazon SNS обеспечивает пересылку таких сообщений по маршрутам, имеющим достаточную надежность доставки, но значительно более дешевым, чем самые надежные маршруты. Кроме того, такая пометка позволяет Amazon SNS обрабатывать и доставлять сообщения в соответствии с требованиями местных законов и нормативов.

Вопрос: Что такое лимиты расходов на уровне аккаунта и на уровне сообщения и как эти лимиты работают?

Лимит расходов может быть указан для аккаунта AWS и для отдельных сообщений, и эти лимиты влияют только на цену отправляемых SMS-сообщений.

Лимит расходов, установленный по умолчанию на уровне аккаунта, составляет 1,00 USD в месяц (если не указано иное). Если необходимо увеличить лимиты, заполните форму увеличения лимитов SNS. В поле New limit value введите требуемое значение лимита ежемесячных расходов. В поле Use Case Description напишите, что вы просите увеличить лимит исходящих SMS-сообщений, которые можно отправлять ежемесячно.

Amazon SNS отправляет публикуемые клиентом SMS-сообщения до тех пор, пока общая стоимость трафика SMS-сообщений остается ниже лимита расходов, установленного для соответствующего календарного месяца. Когда лимит расходов будет превышен, Amazon SNS прекращает доставку сообщений до тех пор, пока клиент не увеличит лимит расходов или не наступит новый календарный месяц. Аналогичным образом можно указать лимит расходов для отдельного сообщения, и Amazon SNS будет отправлять сообщение только в том случае, если стоимость доставки меньше установленного лимита. Amazon SNS не будет отправлять SMS-сообщения, если превышен лимит расходов на уровне аккаунта, независимо от того, превышен или нет лимит расходов на уровне сообщения.

Вопрос: Поддерживается ли двусторонний обмен SMS-сообщениями?

В настоящее время Amazon SNS не поддерживает возможность двустороннего обмена SMS-сообщениями, кроме случаев отказа от подписки там, где это требуется местными нормативами.

Вопрос: Нужно ли подписывать телефонный номер на тему SNS, прежде чем отправлять на него SMS-сообщение?

Теперь нет необходимости подписывать телефонный номер на тему Amazon SNS, чтобы отправить на него сообщение. Можно просто отправить сообщения на телефонный номер с помощью консоли Amazon SNS или запроса Publish API Amazon SNS.

Вопрос: Продает ли AWS короткие номера?

Да. Вы можете зарезервировать выделенный короткий номер, закрепленный за вашим аккаунтом и доступный только вам.

Для резервирования короткого номера обратитесь с заявкой в Центр AWS Support. Подробнее см. в разделе Резервирование выделенного короткого номера для отправки SMS Руководства для разработчиков по Amazon SNS.

Сведения о ценах см. в разделе Цены на рассылку SMS по всему миру.

Вопрос: Продает ли AWS длинные номера?

Нет. AWS в настоящее время не продает длинные номера.

Вопрос: Будут ли SMS-оповещения приходить с конкретного длинного или короткого номера?

Amazon SNS использует для отправки SMS-оповещений пул длинных и коротких номеров. Определенная вероятность того, что SMS-оповещения будут отправляться с нескольких номеров, остается, но Amazon SNS обеспечивает отправку сообщений конкретного аккаунта AWS на конкретный телефонный номер с одного и того же короткого или длинного номера. Это называется «закрепленный идентификатор отправителя».

Чтобы быть уверенным, что во всех SMS-сообщениях, отправляемых через сервис Amazon SNS, в качестве отправителя указан постоянный короткий номер, можно зарезервировать выделенный короткий номер. Зарезервировав короткий номер, вы даете вашей аудитории возможность легко определять, что источником сообщений является ваша организация. Подробнее см. в разделе Резервирование выделенного короткого номера для отправки SMS Руководства для разработчиков по Amazon SNS.

Вопрос: Для каких стран Amazon SNS поддерживает функцию глобальных SMS-сообщений?

Amazon SNS поддерживает функцию глобальных SMS-сообщений более чем в 200 странах, и охват постоянно увеличивается. Полный перечень стран, для которых поддерживается отправка SMS-сообщений, приведен в списке стран.

Вопрос: Какие регионы AWS поддерживают глобальную рассылку SMS-сообщений?

1) Восток США-1 (Вирджиния), 2) Запад США 2 (Орегон), 3) Запад ЕС-1 (Дублин), 4) Азия и Тихий океан (Токио), 5) Азия и Тихий океан (Сингапур) и 6) Азия и Тихий океан (Сидней).

Вопрос: Изменяются ли телефонные номера AWS?

Да. Amazon SNS использует для отправки SMS-оповещений пул длинных и коротких номеров. Хотя и существует вероятность, что SMS-оповещения будут приходить с нескольких номеров, Amazon SNS обеспечивает отправку сообщений от конкретного аккаунта AWS на конкретный телефонный номер с одного и того же короткого или длинного номера. Это называется «закрепленный идентификатор отправителя».

Вопрос: Почему некоторые устройства, работающие через одного и того же оператора связи, получают сообщения с различных телефонных номеров?

Amazon SNS использует для отправки SMS-оповещений пул длинных и коротких номеров. Поэтому, хотя и существует вероятность, что SMS-оповещения будут приходить с нескольких номеров, Amazon SNS обеспечивает отправку сообщений конкретного аккаунта AWS на конкретный телефонный номер с одного и того же короткого или длинного номера. Это называется «закрепленный идентификатор отправителя».

Вопрос: Какой формат телефонного номера применяется при отправке сообщений в другие страны?

AWS настоятельно рекомендует использование формата E.164 для всех телефонных номеров, как в полях «кому», так и «от кого» (если применимо). Обратитесь к полному списку стран, отправка SMS в которые поддерживается.

Вопрос: Может ли Amazon SNS определить, является ли телефонный номер мобильным, стационарным или относится к IP-телефонии (VoIP)?

Нет. В настоящее время Amazon SNS не определяет, является ли телефонный номер мобильным, стационарным или относится к IP-телефонии (VoIP).

Вопрос: Поддерживается ли доставка SMS-сообщений по времени или по расписанию?

Нет. Amazon SNS в настоящее время не поддерживает доставку SMS-сообщений по времени или по расписанию.

Вопрос: Каким образом можно отследить состояние доставки SMS-сообщений?

Если включить функцию Delivery Status в Amazon SNS, можно получить следующую информацию по каждому сообщению: ID сообщения, время отправки, номер телефона получателя, состояние доставки, причина состояния доставки (если применимо), цена и время ожидания.

Вопрос: Предоставляется ли поддержка MMS?

Нет. В настоящее время Amazon SNS не поддерживает MMS-сообщения.

Вопрос: Какова стоимость получения SMS-сообщения от Amazon SNS?

Стоимость входящих SMS-сообщений зависит от тарифного плана оператора беспроводной/мобильной связи получателя по передаче данных и сообщений.

Вопрос: Как получатель может отписаться от получения SMS-сообщений от AWS?

Получатели могут отписаться от получения сообщений с помощью своих устройств, отправив любое из следующих сообщений.

  • ARRET (французский язык)
  • CANCEL
  • END
  • OPT-OUT
  • OPTOUT
  • QUIT
  • REMOVE
  • STOP
  • TD
  • UNSUBSCRIBE
Для отписки получатель должен отправить сообщение на длинный или короткий номер, который был использован Amazon SNS для доставки сообщения. После отписки получатель больше не будет получать SMS-сообщений от имени данного аккаунта AWS, если только не подпишется снова на рассылку для своего номера телефона.

Вопрос: Как узнать, что устройство получателя отписалось от получения глобальных SMS-сообщений?

Список номеров, отписавшихся от сообщений для вашего аккаунта, отображается в консоли SNS. Кроме того, API Amazon SNS предоставляет запрос ListPhoneNumbersOptedOut для получения списка отписавшихся телефонных номеров.

Вопрос: Если пользователь отписался от получения сообщений, будет ли его номер автоматически исключен из подписки на тему SNS?

Нет. Отписка от рассылки не аннулирует подписку на тему Amazon SNS, при этом подписка на тему выключается. Это значит, что если пользователь подпишется на получение сообщений, то ему не придется снова подписывать телефонный номер на тему.

Вопрос: Как убедиться в том, что конечный пользователь получил SMS-сообщение?

Чтобы получить информация об окончательном состоянии доставки SMS-сообщения, можно использовать функцию Delivery Status. Подробнее об этой функции и ее использовании см. в нашей документации.

Вопрос: Предоставляет ли Amazon SNS уведомления о доставке SMS-сообщений?

Функция Delivery Status предоставляет информация на основе уведомлений о доставке, полученных от оператора связи получателя. Подробнее о функции Delivery Status и ее использовании см. в нашей документации

Вопрос: Поддерживается ли доставка SMS-сообщений на такие сервисы VoIP, как Google Voice или Hangouts?

Да. Amazon SNS поддерживает доставку на сервисы VoIP, которые могут получать SMS-сообщения.


Вопрос: Где можно найти текущие цены на SMS по странам?

Цены зависят от страны назначения и оператора связи и приведены здесь. 

Вопрос: Почему цены на SMS постоянно меняются для одной и той же страны назначения и оператора связи?

Цены в на SMS-сообщения не являются неизменными, расходы на отправку сообщений в различные страны и различным операторам связи время от времени изменяются. В Amazon SNS принят прозрачный подход к ценообразованию, изменения цен видны клиентам, и они могут получить максимальные ценовые преимущества.

Вопрос: Должен ли я платить за неудавшуюся доставку или сообщения, отвергнутые оператором связи?

Возможно, за неудавшиеся доставки платить придется. Это произойдет в том случае, если оператор связи получателя сообщает, что вы пытаетесь отправить сообщения на недействительный телефонный номер. Телефонные номера могут быть недействительными по разным причинам: например, номер может не существовать, или на счету владельца номера может быть недостаточно средств, или это может быть номер стационарного телефона.

Вопрос: Существует ли уровень бесплатного пользования для SMS-сообщений?

Да, для SMS-сообщений установлен ежемесячный уровень бесплатного пользования. Первые 100 SMS-сообщений, отправленных на телефонные номера США каждый месяц, бесплатны. Дополнительные SMS-сообщения в США или любые сообщения, отправленные на телефонные номера за пределами США, оплачиваются согласно текущим ценам, приведенным здесь.


Вопрос: Действуют ли ограничения на количество тем или подписчиков на одну тему?

По умолчанию сервис SNS предлагает до 10 миллионов подписок на одну тему и до 100 000 тем на один аккаунт.  Для увеличения лимитов свяжитесь с нашей службой поддержки.

Вопрос: Какой объем и формат данных можно включить в сообщение?

Сообщения Amazon SNS, за исключением SMS-сообщений, могут содержать до 256 КБ текстовых данных, в том числи в форматах XML, JSON и в виде неформатированного текста.

Допускается использование следующих символов Юникода:

#x9 | #xA | #xD | [от #x20 до #xD7FF] | [от #xE000 до #xFFFD] | [от #x10000 до #x10FFFF]

(согласно http://www.w3.org/TR/REC-xml/#charsets).

Каждые 64 КБ публикуемых данных оплачиваются как один запрос. Например, один вызов API объемом 256 КБ оплачивается как четыре запроса.

SMS-сообщения

Каждое SMS-сообщение может содержать до 140 байт, ограничение по количеству символов зависит от схемы кодировки. Например, SMS-сообщение может содержать:

  • 160 символов GSM;
  • 140 символов ASCII;
  • 70 символов UCS-2.

При публикации сообщения с размером, превышающим ограничение, Amazon SNS пересылает его в виде нескольких сообщений, размер каждого из которых соответствует ограничениям. При делении сообщения обеспечивается целостность слов, деление происходит только по границам слов. Максимальный общий размер единичной публикации SMS составляет 1600 байт.

Вопрос: Сколько фильтров сообщений можно применить к теме?

По умолчанию для каждого аккаунта в каждом регионе можно применить до 100 политик фильтрации в темах. Свяжитесь с нами, если требуется больше.

Вопрос: Ограничен ли выбор TCP-портов для связи между сервисами SNS и EC2 в разных регионах?

Да, следует использовать только TCP-порты 80/443/4080/8443, в противном случае мы не можем гарантировать соединение между сервисами SNS и EC2 в разных регионах.


Вопрос: Что такое доставка неформатированных сообщений?

Ваши сообщения при желании могут доставляться без дополнительного форматирования, то есть точно в таком виде, в котором были опубликованы. По умолчанию доставляемые сообщения кодируются в формат JSON с добавлением метаданных о самом сообщении и теме. Чтобы сообщения доставлялись без форматирования, используйте атрибут подписок RawMessageDelivery. Этот атрибут можно активировать через Консоль управления AWS или через API SetSubscriptionAttributes.

Вопрос: Что происходит по умолчанию, если атрибут подписки Raw Message Delivery не активирован?

Если этот атрибут не активирован, сообщения будут доставляться в формате JSON, как и раньше. Благодаря этому имеющиеся приложения продолжат работу в нормальном режиме.

Вопрос: Для каких типов адресов поддерживается доставка неформатированных сообщений?

Доставка сообщений без форматирования поддерживается для конечных точек SQS и HTTP(S). Доставка по электронной почте или SMS, а также в Lambda продолжится в прежнем формате, независимо от значения атрибута RawMessageDelivery.

Вопрос: Как неформатированные сообщения доставляются на HTTP-адреса?

При доставке неформатированного сообщения на адреса HTTP/s его текст будет включен в запрос POST по протоколу HTTP.


Вопрос: Что такое SNS Mobile Push?

Сервис SNS Mobile Push позволяет доставлять push-оповещения на устройства Apple, Google, Fire OS и Windows посредством Simple Notification Service (SNS), а также на Android-устройства в Китае с помощью Baidu Cloud Push. С помощью push-оповещений мобильное приложение мгновенно оповещает пользователя о событиях, без необходимости открывать само приложение. Например, установив приложение спортивной тематики и включив push-оповещения, вы сможете следить за счетом очков любимой команды, даже не запуская приложение. При нажатии на оповещение, появившееся на вашем устройстве, приложение запустится и отобразит дополнительную информацию. Это напоминает прием SMS-сообщений, только с расширенной функциональностью и гораздо меньшими затратами.

Вопрос: Как начать рассылку push-оповещений?

Push-оповещения можно отправлять только на устройства, где установлено ваше приложение, при условии, что пользователь согласен их получать. Сервис SNS Mobile Push не требует явного согласия для отправки push-оповещений – этого требуют операционные системы iOS, Android и Kindle Fire. Для отправки push-оповещений через сервис SNS ваше приложение и все устройства, на которых оно установлено, должны быть зарегистрированы в системе SNS. Дополнительные сведения см. в руководстве по использованию оповещений Amazon SNS Mobile Push.

Вопрос: Какие платформы push-оповещений поддерживаются?

В настоящее время поддерживаются следующие платформы push-оповещений:

  • Amazon Device Messaging (ADM);
  • Apple Push Notification Service (APNS);
  • Google Cloud Messaging (GCM);
  • Windows Push Notification Service (WNS) для Windows 8 и выше, а также для Windows Phone 8.1 и выше;
  • Microsoft Push Notification Service (MPNS) для Windows Phone 7 и выше;
  • Baidu Cloud Push для Android-устройств в Китае.

Вопрос: Сколько push-оповещений включено в уровень бесплатного пользования сервисом SNS?

Уровень бесплатного пользования сервисом SNS включает один миллион публикаций плюс один миллион доставленных push-оповещений. Итак, ежемесячно вы можете отправлять один миллион бесплатных push-оповещений. В этот один миллион бесплатных доставок включаются все оповещения, отправленные на любые мобильные устройства методом push.

Вопрос: Требуется ли сервису SNS Mobile Push особое подтверждение для активации push-оповещений?

Нет, не требуется. Конечные пользователи соглашаются получать push-оповещения при первом запуске приложения, независимо от того, доставляет ли сервис SNS такие оповещения.

Вопрос: Нужно ли вносить изменения в свое клиентское приложение, чтобы использовать сервис SNS Mobile Push?

Сервис SNS не требует внесения изменений в ваше клиентское приложение.  Независимо от того, используете ли вы сервис SNS, для правильной работы Baidu Cloud Push необходимо добавление специальных компонентов в код клиентского приложения.

Вопрос: Как темы SNS взаимодействуют с сервисом Mobile Push?

Подписаться на темы SNS могут пользователи любой поддерживаемой платформы push-оповещений, равно как и адресов электронной почты или SMS. Как только оповещение публикуется в тему, сервис SNS рассылает его идентичные копии по всем адресам, подписанным на данную тему. Если в сообщении вы используете платформозависимый текст, то оповещение не будет опубликовано в случае превышения допустимого размера, установленного требованиями соответствующей платформы push-оповещений.

Вопрос: Какой размер текста поддерживается для различных целевых платформ?

Сервис SNS будет поддерживать тот же максимальный размер текста, что и базовая аппаратная платформа. Клиенты могут использовать объекты JSON для отправки платформозависимых сообщений. Дополнительные сведения см. в руководстве по использованию API SNS Mobile Push.

Вопрос: Каков принцип использования платформозависимого текста?

Если вы публикуете сообщения в тему и хотите, чтобы при отправке по адресам они были приспособлены для разных платформ push-оповещений, выберите опцию «Use different message body for different protocols» в диалоговом окне операции «Publish», а затем обновите сообщения. Вы можете использовать платформозависимые тексты, чтобы указать, какие строки API в какой сервис push-оповещений следует отправить. Например, вы можете использовать платформозависимые тексты для регулировки счетчика оповещений в своем iOS-приложении через сервис APNS. Дополнительные сведения см. в руководстве по использованию оповещений Amazon SNS Mobile Push.

Вопрос: Можно ли использовать один токен для подписки на несколько тем?

Да. Каждый токен можно использовать для подписки на любое количество тем SNS.

Вопрос: Что такое прямая адресация? Каков принцип ее действия?

Прямая адресация позволяет доставлять оповещения непосредственно на отдельный адрес вместо отправки идентичных сообщений всем подписчикам темы. Это может пригодиться, если вы хотите доставить индивидуальное сообщение каждому получателю. Когда сервис SNS регистрирует токены устройств, он создает для каждого из них соответствующий адрес. На этот адрес токена можно публиковать сообщения так же, как и в тему. Сюда вы можете напрямую опубликовать либо текст оповещения, либо платформозависимый текст со специальными возможностями, такими как обновление счетчика оповещений в приложении. Прямая адресация пока доступна только для push-оповещений.

Вопрос: Поддерживает ли сервис SNS прямую адресацию для SMS и электронной почты?

В настоящее время прямая адресация доступна только для мобильных сервисов push-оповещений (APNS, GCM, ADM, WNS, MPNS, Baidu) и SMS. Передача сообщений по электронной почте требует использования тем.

Вопрос: Как сервис SNS Mobile Push обрабатывает замечания о токенах от сервисов оповещений?

Сервисы push-уведомлений, такие как APNS и GCM, присылают замечания о токенах, для которых истек срок действия или которые были заменены новыми токенами. Если сервис APNS или GCM сообщает, что срок действия конкретного токена истек или сам токен является недействительным, SNS автоматически отключает конечную точку приложения, связанную с данным токеном, и уведомляет пользователя об этом изменении, в частности посредством event.GCM; иногда он не только сообщает о наличии недействительного токена, но и предоставляет новый токен, связанный с конечной точкой приложения, в своем ответе, направленном к SNS. В этом случае SNS автоматически использует новое значение токена для обновления связанной конечной точки, в результате чего конечная точка остается активной, а затем уведомляет пользователя об этом изменении с помощью события.

Вопрос: Можно ли перенести существующие приложения в сервис SNS Mobile Push?

Да. Вы можете выполнить пакетную загрузку имеющихся токенов устройств на сервис Amazon SNS через интерфейс консоли или API. Также следует зарегистрировать приложение в сервисе SNS, загрузив свои данные доступа к соответствующим сервисам push-оповещений и настроив прокси-сервер или приложение для дальнейшей регистрации новых токенов в сервисе SNS.

Вопрос: Могу ли я проводить мониторинг своих push-оповещений через сервис Amazon CloudWatch?

Да. Сервис SNS публикует метрики CloudWatch, отражающие количество опубликованных, успешно доставленных и не доставленных оповещений, а также объем опубликованных данных. Для каждого приложения создаются свои метрики. Получить доступ к метрикам CloudWatch можно через Консоль управления AWS или через API CloudWatch.

Вопрос: Какие типы push-оповещений Windows поддерживаются сервисом Amazon SNS?

Сервис SNS поддерживает все типы push-оповещений для платформ Microsoft WNS и MPNS, включая оповещения на плитке, оповещения индикатора событий, всплывающие и неформатированные оповещения. Чтобы указать тип сообщения, который вы хотите использовать, используйте атрибут TYPE оповещения. Если для отправки одного и того же сообщения на все мобильные платформы вы используете обычные тексты, сервис SNS по умолчанию выберет для платформ Windows всплывающие оповещения. Когда вы используете платформозависимые тексты, необходимо указать тип оповещения для платформ Windows.

Вопрос: Поддерживает ли сервис SNS неформатированные push-оповещения Windows?

Да.  Для отправки неформатированных оповещений через сервис SNS необходимо закодировать их в текстовый формат.

Вопрос: Что такое Baidu Cloud Push?

Baidu Cloud Push – это сторонний сервис для пересылки push-оповещений для Android-устройств.  Вы можете использовать сервис Baidu Cloud Push для поддержания связи с клиентами в Китае, независимо от того, из какого магазина Android-приложений они скачают ваше приложение.  Дополнительную информацию о сервисе Baidu Cloud Push см. по ссылке http://developer.baidu.com/cloud/push.

Вопрос: Можно ли публиковать оповещения Baidu из любого региона AWS?

Да, сервис SNS поддерживает публикацию push-оповещений Baidu из любого общедоступного региона AWS.

Вопрос: Можно ли использовать оповещения Baidu со всеми магазинами Android-приложений?

Да, push-оповещения Baidu работают с любым приложением, установленным из любого магазина Android-приложений.

Вопрос: Что такое атрибуты сообщения?

Атрибуты сообщения позволяют добавить к нему структурированные элементы метаданных (например, временные метки, геопространственные данные, подписи и идентификаторы). Атрибуты сообщения не являются обязательными и отделены от текста сообщения, хотя и отправляются вместе с ним. Получатель сообщения может использовать эту информацию, чтобы предварительно обработать сообщение еще до ознакомления с его текстом.

Вы можете использовать атрибуты сообщения SNS при доставке через очередь SQS и мобильные push-оповещения. Подробнее об атрибутах сообщения см. в Руководстве по началу работы с SNS.

Вопрос: Какие атрибуты сообщения поддерживаются в сервисе SNS?

Сервис SNS поддерживает различные атрибуты сообщения, в зависимости от того, какие из них поддерживаются разными типами адресов.

  • При отправке на адреса SQS вы можете указать до 10 триплетов «имя-тип-значение» для каждого сообщения. Поддерживаются следующие типы: строчный, двоичный и числовой (включая целые числа, числа с плавающей запятой и двойной точностью).
  • При отправке на адреса для мобильных push-оповещений вы можете включать любые атрибуты сообщения, поддерживаемые той или иной мобильной платформой (например, тип оповещения).
Вопрос: Что такое «время жизни» (TTL)?
 
Некоторые сообщения, отправляемые через сервис SNS, имеют ценность или значимость в течение ограниченного периода времени. Сервис Amazon SNS позволяет задать время жизни (TTL) для каждого сообщения. Если для сообщения, не доставленного и не прочитанного конечным пользователем, истекает время жизни (TTL), такое сообщение удаляется. Значение TTL указывается в секундах и отсчитывается с момента вызова API Publish.
 
Вопрос: Как указать время жизни (TTL) для моих сообщений?
 
Вы можете указать значение TTL через консоль или API. Время жизни (TTL) сообщения можно задать в процессе его публикации, указав соответствующий атрибут ниже. Для каждой платформы используются разные атрибуты. Указанный для платформы атрибут применим только при условии доставки оповещений на эту платформу.
 
Вопрос: Чем равно TTL по умолчанию?
 
Для всех платформ сервис SNS по умолчанию присваивает сообщению TTL, равное четырем неделям.
 
Вопрос: Если значение TTL указано в атрибутах сообщения, то имеет ли оно приоритет над значением TTL, указанным в тексте сообщения?
 
Да. Сервисы Google GCM и Amazon ADM позволяют указывать значение TTL внутри текста сообщения. Если вы задали TTL и внутри текста, и в атрибуте сообщения, сервис SNS будет следовать значению атрибута.
 
Вопрос: Что произойдет, если задать TTL=0?
 
Некоторые платформы интерпретируют сообщение с TTL=0 как особо важное и пытаются немедленно его доставить, а в случае неудачной попытки считают его просроченным.  Если вы задали TTL=0, сервис SNS передаст ваше сообщение соответствующей платформе, сохранив это значение, чтобы сообщение рассматривалось как особо важное.
 
Вопрос: Какие адреса поддерживают параметр TTL в сервисе SNS?
 
Вы можете использовать параметр TTL при отправке на следующие сервисы мобильных push-оповещений: APNS, APNS_Sandbox, GCM, ADM, Baidu и WNS. Microsoft MPNS в настоящее время не поддерживает использование параметра TTL. Также этот параметр не поддерживается для адресов электронной почты, SQS, HTTP и SMS.
 
Вопрос: Какова роль функции Delivery Status в сервисе Amazon SNS?
 
Функция Delivery Status позволяет собирать информацию о статистике успешных доставок, недоставок и времени ожидания push-оповещений для поддерживаемых мобильных платформ. В настоящее время поддерживаются платформы Apple (APNS), Google (GCM), Windows (WNS и MPNS), Amazon (ADM) и Baidu. Информация о состоянии регистрируется в группах журналов Amazon CloudWatch, созданных сервисом Amazon SNS от вашего имени. Дополнительно можно создать рабочие метрики в сервисе Amazon CloudWatch и инициировать отправку предупреждений о состояниях, которые вас интересуют.
 
Вопрос: Функция Delivery Status в сервисе Amazon SNS доступна только для мобильных push-оповещений? Планируется ли добавить поддержку этой функции для других типов адресов?
 
На данный момент возможность Delivery Status доступна только для мобильных push-оповещений и SMS. Мы рассмотрим возможность ее добавления для других типов адресов, опираясь на отзывы клиентов.
 
Вопрос: Как активировать функцию Delivery Status?
 
Вы можете активировать функцию Delivery Status из Консоли Amazon SNS. На странице своего приложения выберите опцию Delivery Status в раскрывающемся списке меню «Application Actions». Дополнительные сведения см. в документации.
 
Вопрос: Можно ли активировать функцию Delivery Status через API Amazon SNS?
 
Да, вы можете активировать данную функцию через API Amazon SNS, добавив соответствующие атрибуты прикладного уровня. В нашей документации рассматриваются атрибуты прикладного уровня, которые необходимо добавить, а также специальные вызовы API для активации этой функции.
 
Вопрос: Сколько стоит функция Delivery Status?
 
В настоящее время сервис Amazon SNS не начисляет дополнительную плату за использование функции Delivery Status. Однако в некоторых случаях вам может быть начислена плата за пользование сервисом CloudWatch, так данная функция создает группы журналов Amazon CloudWatch. В прайс-листе вы найдете дополнительные сведения о тарифах сервиса CloudWatch и уровне бесплатного пользования.
 
Вопрос: Почему вы выборочно регистрируете успешные попытки доставок вместо выборочной регистрации неудачных попыток?
 
На основании отзывов клиентов мы обнаружили, что большинство разработчиков хотят знать обо всех неудачных попытках доставки для своих приложений и предпочитают сохранять историю успешных доставок только выборочно.
 
Вопрос: Как настроить предупреждения на основе метрик недоставок и метрик времени ожидания?
 
Активировав функцию Delivery Status, вам необходимо настроить фильтр метрик Log Metrics Filter в группах журналов Amazon CloudWatch, созданных от вашего имени сервисом Amazon SNS. Этот фильтр метрик можно настроить таким образом, чтобы извлекать нужную вам информацию, например, статистику недоставок и время ожидания. После настройки фильтра его нужно активировать и применить к метрике. Затем такую метрику можно использовать для настройки предупреждений на основе заданных пороговых значений. Подробные сведения см. в нашей документации или в блоге.
 

Вопрос: Что дает поддержка адресов AWS Lambda в сервисе Amazon SNS?

Публикуя сообщения в темах Amazon SNS, теперь можно вызвать функции AWS Lambda, подписав их на эти темы. Поскольку сервис Amazon SNS поддерживает распределение доставки, публикация одного сообщения может вызывать функции AWS Lambda – отдельно или наряду с доставкой оповещений любым поддерживаемым способом: через мобильные push-уведомления, адреса HTTP, очереди SQS, электронную почту и SMS.

Вопрос: Что такое AWS Lambda?

AWS Lambda – это сервис вычислений, запускающий ваш код при определенных событиях и автоматически управляющий вашими вычислительными ресурсами, что упрощает создание приложений, которые быстро реагируют на поступающую информацию. Узнать больше о сервисе AWS Lambda и о создании функций AWS Lambda можно здесь.

Вопрос: Как можно использовать функции AWS Lambda вместе с сервисом Amazon SNS?

Подписав функции AWS Lambda на темы Amazon SNS, вы можете настроить обработку сообщений. Вы можете вызвать функцию AWS Lambda для специальной обработки доставляемых сообщений. Сначала сообщение публикуется в функцию AWS Lambda, которая изменяет его (например, выполняет языковую локализацию), после чего фильтрует и переадресует эти сообщения на другие темы и адреса. Приложения и сервисы, которые уже отправляют оповещения Amazon SNS, такие как Amazon CloudWatch, теперь могут воспользоваться функциями AWS Lambda без необходимости выделять инфраструктуру и управлять ею для специальной обработки сообщений. Также вы можете доставлять сообщения через функции AWS Lambda, чтобы опубликовать их в других сервисах AWS, таких как Amazon Kinesis или Amazon S3. Вы можете подписать функцию AWS Lambda на тему Amazon SNS, чтобы она в свою очередь транслировала тему в другой сервис.

Вопрос: Как в сервисе Amazon SNS активировать поддержку адреса AWS Lambda?

Сначала нужно создать функцию AWS Lambda через свой аккаунт AWS и консоль AWS Lambda, а затем подписать эту функцию на тему через консоль Amazon SNS или вызовы API Amazon SNS. После этого все сообщения, публикуемые в темах Amazon SNS, будут доставляться на подписанные функции Lambda, помимо других подписанных адресов.

Вопрос: Что происходит при доставке сообщения из сервиса Amazon SNS в функцию AWS Lambda?

Сообщение, доставляемое из сервиса Amazon SNS в функцию AWS Lambda, создает инстанс функции и вызывает ее, выступая в качестве входного параметра. Подробные сведения о форматах сообщений см. в документации Amazon SNS и документации AWS Lambda.

Вопрос: Сколько стоит использование этого сервиса?

Публикация сообщений через Amazon SNS оценивается в 0,50 USD за миллион запросов. Кроме начислений за использование сервисов AWS, за доставку сообщения в функцию AWS Lambda дополнительная плата не взимается. В сервисе Amazon SNS есть уровень бесплатного пользования, составляющий один миллион запросов в месяц. Подробные сведения см. на странице Цены на Amazon SNS. Стоимость использования функции AWS Lambda зависит от количества поступивших запросов и времени, затраченного на исполнение программного кода. Уровень бесплатного пользования AWS Lambda включает один миллион запросов и 400 000 ГБ-секунд вычислений в месяц. Подробные сведения см. на странице Цены на AWS Lambda.

Вопрос: Можно ли подписать созданные кем-то другим функции AWS Lambda на собственные темы Amazon SNS?

В настоящее время владельцу аккаунта AWS не разрешается подписывать функцию AWS Lambda, принадлежащую другому аккаунту. Вы можете подписывать свои функции AWS Lambda на свои же темы Amazon SNS или на тему, созданную владельцем другого аккаунта, при условии, что политика данной темы SNS предоставляет такие права.

Вопрос: Ограничено ли число функций AWS Lambda, которые можно подписать на тему Amazon SNS?

Сервис Amazon SNS рассматривает функции AWS Lambda как любой другой адрес доставки. По умолчанию сервис SNS разрешает оформить 10 миллионов подписок на одну тему. Для увеличения лимита свяжитесь с нами.

Вопрос: Какие данные можно пересылать в функцию AWS Lambda?

Когда функция AWS Lambda вызывается доставкой сообщения Amazon SNS, эта функция получает такие данные, как ID сообщения, имя ARN темы, текст сообщения и атрибуты сообщения в виде объекта SNS Event. Подробнее о структуре объекта event, передаваемого функции AWS Lambda, см. в нашем блоге.

Вопрос: Можно ли отследить статус доставки сообщения в функцию AWS Lambda?

Для отслеживания доставки/недоставки сообщений вам необходимо активировать функцию Delivery Status в сервисе Amazon SNS. Подробнее об активации данной функции см. в нашем блоге.

Вопрос: В каких регионах доступен сервис AWS Lambda?

Полный список см. на странице Конечные точки и регионы AWS.

Вопрос: Должны ли функции AWS Lambda находиться в том же регионе, где я использую сервис Amazon SNS?

Вы можете подписать функции AWS Lambda на тему Amazon SNS в любом регионе.

Вопрос: Начисляется ли плата за передачу данных при вызове функций AWS Lambda?

Передача данных при доставке сообщений в функции AWS Lambda подлежит оплате. Подробные сведения см. на странице цен.

Вопрос: Ограничено ли количество параллельно выполняемых функций AWS Lambda?

Сервис AWS Lambda в настоящий момент поддерживает 100 параллельных запросов для одного аккаунта AWS. Если из-за доставок сообщений Amazon SNS в сервис AWS Lambda указанные лимиты превышаются, такие доставки будут откладываться. Если сервис AWS Lambda откладывает доставку сообщения Amazon SNS, будут предприняты повторные попытки его доставки. Подробные сведения о лимитах на параллельное выполнение функций см. в документации AWS Lambda.

Вопрос: Может ли сервис Amazon SNS использовать функции AWS Lambda, которые уже используются с другими сервисами (например, Amazon S3)?

Вы можете использовать те же функции AWS Lambda, которые используются с другими сервисами при условии, что они успевают одновременно анализировать объекты event от сервиса Amazon SNS и других сервисов. Подробнее о формате объекта SNS event см. в нашем блоге.

 

Вопрос: Что такое push-уведомления VoIP для iOS?
В платформе iOS 8 и выше приложения, использующие технологию VoIP (голос через IP), могут зарегистрироваться для получения удаленных оповещений VoIP, так чтобы система iOS запустила или «разбудила» приложение при поступлении пользователю входящего вызова VoIP. Процедура регистрации для получения оповещений VoIP напоминает подписку на регулярные push-уведомления для iOS. Дополнительную информацию см. в нашей документации.

Вопрос: Можно ли использовать push-уведомления VoIP и другие push-уведомления в одном приложении iOS?
Да, у вас может быть приложение iOS, зарегистрированное для получения push-уведомлений обоих типов. Однако вам необходимо будет приобрести у компании Apple сертификат на push-уведомления в дополнение к сертификату на обычные push-уведомления, создать новое платформенное приложение в сервисе Amazon SNS и выбрать тип платформы Apple VoIP Push. Дополнительную информацию см. в нашей документации.

Вопрос: Что такое push-уведомления для Mac OS?
Теперь с помощью сервиса Amazon SNS вы можете отправлять push-уведомления для настольных компьютеров Mac OS с операционной системой Mac OS X Lion (10.7) и выше. Дополнительную информацию см. в нашей документации.