Обзор

Вопрос: Что такое 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‑минутным учебным пособием по массовой рассылке уведомлений с пошаговыми инструкциями.

Дополнительные сведения см. в Руководстве по 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?

В Консоли управления AWS предусмотрена поддержка Amazon SNS, которая обеспечивает возможность доступа к сервису и управления им через интерактивный веб‑интерфейс. Достаточно иметь в распоряжении браузер, чтобы просто создавать темы, добавлять подписчиков и отправлять уведомления через Консоль управления 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 уведомлений по электронной почте. За обмен SMS-сообщениями взимается плата в зависимости от страны назначения.

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

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

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

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

Вопрос: Когда начинается и заканчивается расчетный период пользования 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 позволяет пользователю получить список всех своих активных подписок (на одну или несколько тем).

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

SQS: пользователи могут указать URL‑адрес стандартной очереди SQS или очереди FIFO в качестве адреса; сервис Amazon SNS поставит уведомление в указанную очередь (которую подписчик затем обрабатывает посредством API SQS, таких как ReceiveMessage, DeleteMessage и пр.).

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

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

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

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

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

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

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

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

Да, для создания более простых и упорядоченных архитектур «издатель – подписчик» можно использовать в Amazon Simple Notification Service (SNS) фильтрацию сообщений. Фильтрация сообщений позволяет подписчикам темы Amazon SNS получать не все сообщения, опубликованные в теме, а только определенные сообщения, которые их интересуют. Для наблюдения за применением политик фильтрации подписок в сервисе SNS можно использовать метрики Amazon CloudWatch, сбор которых ведется автоматически. С помощью типа ресурса AWS::SNS::Subscription в шаблонах AWS CloudFormation также можно быстро развертывать решения, использующие фильтрацию сообщений SNS. Подробные сведения см. в разделе Filter Messages with 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 секунд после удаления одноименной темы. Точное время зависит от количества активных подписок на тему, при этом темы с меньшим количеством подписчиков освобождаются для повторного использования быстрее, чем те, у которых было много подписчиков.

Темы FIFO

Вопрос. Что такое темы SNS FIFO?

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

Вопрос. Когда следует использовать темы SNS FIFO, а когда – Kinesis Data Streams?

Темы SNS FIFO и потоки Kinesis Streams дают возможность компоновать приложения, требующие строго упорядоченного обмена сообщениями между многими точками. Темы SNS FIFO обеспечивают еще лучшую интеграцию приложений, требующих упорядоченной передачи многих сообщений до 100 подписчикам. С другой стороны, Kinesis Streams поддерживают упорядоченную передачу сообщений до 5 подписчикам и часто используется для аналитики и обнаружения аномалий.

Протоколы передачи

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

Чтобы получать уведомления для конкретной темы по электронной почте, подписчик должен выбрать в качестве протокола 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» (Подписать на тему SNS) из раскрывающегося списка. В диалоговом окне подписки выберите тему из раскрывающегося списка «Choose a Topic» (Выбрать тему) и нажмите кнопку «Subscribe» (Подписаться). Подробные пошаговые инструкции можно найти в документации Amazon 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.

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

Подтверждение заявки на подписку содержит токен, действительный в течение 2 дней.

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

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

Вопрос: Как можно убедиться, что уведомления присылаются сервисом 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 по протоколу HTTPS и публиковать сообщения через 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, свяжитесь с нами для получения дополнительной информации. Обратите внимание: функции SMS‑сообщений и push-уведомлений Amazon SNS для мобильных устройств не входят в рамки соответствия требованиям HIPAA, а значит не подходят для передачи защищенной медицинской информации (PHI).

Ресурсы с подробной информацией см. ниже.

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

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

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

Надежность

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Глобальная рассылка SMS

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

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

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

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

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

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

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

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

Квота расходов, установленная по умолчанию на уровне аккаунта, составляет 1,00 USD в месяц (если не указано иное). Если необходимо увеличить квоту, заполните форму увеличения квоты SNS. В поле «New quota 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. Подробнее см. в разделе Reserving a Dedicated Short Code for SMS Messaging руководства по Amazon SNS для разработчиков.

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

Вопрос: Можно ли приобрести в AWS длинные номера?

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

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

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

Чтобы контролировать номер, с которого Amazon SNS отправляет сообщения, можно зарезервировать выделенные короткие или длинные номера. Зарезервировав один или несколько номеров, вы обеспечиваете получателям возможность легко определять, что источником сообщений является ваша организация. Подробнее см. в разделах Reserving a Dedicated Short Code for SMS Messaging или Reserving a Dedicated Long Code for SMS Messaging руководства по Amazon SNS для разработчиков.

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

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

Вопрос: В каких регионах AWS поддерживается глобальная рассылка SMS‑сообщений?

Чтобы просмотреть актуальный список регионов, где можно размещать приложения для отправки SMS‑сообщений с помощью Amazon SNS, обратитесь к разделу SNS Supported Regions and Countries документации Amazon SNS.

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

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

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

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

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

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‑сообщения.

10-значные длинные коды (10DLC)

Вопрос. Что такое 10DLC?

Ответ. 10DLC – это 10-значный длинный код, который вы можете использовать в качестве исходного идентификатора при отправке текстовых сообщений (SMS) потребителям в США. Максимальная пропускная способность 10DLC составляет 100 текстовых сообщений в секунду (TPS). AWS не определяет выделенную вам пропускную способность. Этот параметр назначает оператор при регистрации 10DLC. Чтобы использовать номера 10DLC, оператору требуется доставить информацию о вашей компании и примерах использования (также именуемых вашей кампанией 10DLC).

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

Вопрос. Сколько времени требуется на регистрацию кампании 10DLC?

Ответ. В некоторых случаях регистрация происходит мгновенно. Например, если вы ранее регистрировались в Реестре кампаний (TCR), то информация о вас уже хранится в базе. Но для некоторых кампаний процесс одобрения может занять неделю или более. После того, как TCR одобрила вашу компанию и кампанию 10DLC, вы можете приобрести номер телефона 10DLC и связать его с кампаниями. После приобретения номера 10DLC на активацию потребуется до недели. Подробнее см. раздел «10DLC» в Руководстве разработчика по Amazon SNS.

Вопрос. Могу ли я получить незарегистрированный длинный код P2P для отправки SMS-cообщений A2P на телефонные номера в США?

Ответ. Нет. С 16 февраля 2021 года вы не можете приобрести у AWS незарегистрированные коды с поддержкой SMS-сообщений (P2P). 1 июня 2021 года Amazon SNS прекращает поддерживать отправку SMS-сообщений от приложения человеку (A2P) посредством незарегистрированных длинных кодов США в пункты назначения в США. Взамен вы можете приобрести и использовать короткие коды, номера 10DLC или бесплатные номера в качестве исходных удостоверений для пунктов назначения в США. Подробнее см. раздел «Исходные номера» в Руководстве разработчика по Amazon SNS.

Вопрос. Вопрос. Следует ли мне удалить существующий незарегистрированный длинный код США из моего аккаунта AWS?

Ответ. Да. С 1 июня 2021 года операторы прекратят доставку сообщений, отправленных по незарегистрированным длинным кодам в пункты назначения в США. Если коды не нужны вам для иных целей (например, для голосовой телефонии, задействованной в других продуктах AWS), то удалите их из аккаунта. Для отправки SMS-сообщений вы можете преобразовать существующие незарегистрированные длинные номера в номера 10DLC, связав их с кампанией 10DLC. Более подробную информацию см. в разделе «Привязка длинного кода к кампании 10DLC» в Руководстве разработчика Amazon SNS. Для управления кампаниями 10DLC сервис Amazon SNS использует Amazon Pinpoint.

Вопрос. Я использую только Amazon SNS или Amazon Cognito. Необходимо ли мне использовать Amazon Pinpoint для регистрации кампании 10DLC?

Ответ. Да. Для регистрации товарных знаков и кампаний 10DLC необходимо использовать Amazon Pinpoint. По завершении процесса регистрации и активации номера 10DLC, Amazon SNS и Amazon Cognito при отправке SMS-сообщений автоматически используют 10DLC из вашего аккаунта в качестве исходного идентификационного номера.

Вопрос. Могу ли я по-прежнему использовать длинный код после переноса на номер 10DLC?

Ответ. Да. Вы можете использовать длинный код в качестве исходного идентификационного номера после конвертации в номер 10DLC. Важно завершить процесс конвертации 10DLC до 1 июня 2021 года, так как после этой даты нельзя будет использовать незарегистрированные длинные коды.

Вопрос. Что такое кампания 10DLC? Какие данные нужно указать для создания кампании?

Ответ. Кампания 10 DLC представляет собой пример использования, в котором вы отправляете текстовое сообщение своим клиентам. Например, уведомление о необходимости оплаты. Перед отправкой SMS вам необходимо зарегистрировать примеры использования для текстовых сообщений и связать номер 10DLC с кампанией. Более подробную информацию см. в разделе «Регистрация кампании 10DLC» в Руководстве разработчика Amazon SNS. Для управления кампаниями 10DLC сервис Amazon SNS использует Amazon Pinpoint.

Вопрос. Каким образом Amazon SNS выбирает исходный идентификатор из моей учетной записи AWS при отправке SMS?

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

Если в Amazon SNS не будет указан исходный идентификатор, то сработает один из следующих вариантов:

  • Когда настроен только один номер 10DLC для текущего региона AWS, все SMS-сообщения будут отправлены в пункты назначения в США через этот номер 10DLC.
  • Когда в аккаунте AWS есть несколько исходных идентификаторов, Amazon SNS его в следующем порядке: короткий код, 10DLC, бесплатный номер.

Более подробную информацию о выборе исходного идентификатора см. в разделе «Отправка на мобильный телефон» в Руководстве разработчика Amazon SNS.

Вопрос. Могу ли я использовать несколько номеров 10DLC для одной кампании?

Ответ. Да. К одной кампании можно привязать несколько телефонных номеров 10DLC. Но каждый из этих номеров должен использоваться только в одной кампании.

Вопрос. Я успешно зарегистрировал свою компанию и кампанию 10DLC. Однако привязанный номер 10DLC остался в статусе «Ожидание». Что делать?

Ответ. В то время, как номер 10DLC находится в состоянии ожидания, AWS работает над его активацией в кампании 10DLC. Для активации номера требуется действительный и работающий бренд 10 DLC и кампания 10DLC. Завершение активации может занять неделю или больше. Если номер 10DLC находится в состоянии ожидания более недели, обратитесь в службу поддержки через консоль поддержки AWS.

Вопрос. Можно ли использовать для запроса номеров 10DLC действия API AWS вместо консоли Amazon Pinpoint?

Ответ. Нет. В настоящее время номера 10DLC можно запросить только через консоль Amazon Pinpoint. Для управления кампаниями 10DLC сервис Amazon SNS использует Amazon Pinpoint.

Вопрос. Каким образом я могу использовать 10DLC в своем аккаунте AWS для разных регионов AWS?

Ответ. Регистрация компании и кампании 10DLC привязана к учетной записи AWS. Но номер 10DLC привязан к региону AWS. Поэтому несколько номеров 10DLC в регионе AWS могут относиться к одной и той же кампании 10DLC.

Вопрос. Могу ли я получить номер телефона 10DLC с определенным кодом города?

Ответ. В данный момент AWS не поддерживает опцию выбора номеров 10DLC.

Вопрос. Могу ли я использовать номера 10DLC в качестве исходных идентификаторов для отправки SMS получателям за пределами США?

Ответ. Нет. Номера 10DLC могут быть задействованы для отправки SMS-сообщений только в пункты назначения в США.

Вопрос. Можно ли использовать номера 10DLC для отправки голосовых сообщений?

Ответ. Да. Чтобы отправлять голосовые сообщения с номеров 10DLC, укажите возможность голосовой связи при покупке номеров. Обратите внимание, что сервис Amazon SNS не поддерживает формат голосовых сообщений. Однако эти номера можно использовать в других сервисах AWS.

Вопрос. Могу ли я использовать переменные в образцах сообщений кампании 10DLC?

Ответ. Да. Для добавления переменного контента в образцы сообщений заполните поля в шаблоне, который вы получили при регистрации кампании 10DLC. Например, вы хотите, чтобы сообщение гласило: «Привет, Джон. Ваш OTP – 1234». Тогда шаблон необходимо заполнить так: «Привет {#var1}. Ваш OTP – {#var2}».

Вопрос. Возможен ли сбор метрики для каждой кампании 10DLC?

Ответ. В настоящее время в Amazon SNS отсутствует метрика отправки сообщения в для каждой из кампаний или номеров 10DLC. Подробнее см. раздел«Мониторинг SMS-активности» в Руководстве разработчика по Amazon SNS.

Вопрос. Возможно ли перенести регистрации 10DLC из одной учетной записи AWS в другую? Сколько времени это займет?

Ответ. Да. Чтобы переносить регистрации 10DLC между учетными записями AWS, создайте в Центре поддержки AWS запрос на увеличение лимита сервиса. Ответ придет в течение двух недель.

Вопрос. Я зарегистрировал компанию непосредственно через портал Campaign Registry. Могу ли я использовать эту регистрацию для аккаунта AWS?

Ответ. Нет. Для отправки SMS-сообщений через Amazon SNS необходимо зарегистрировать торговую марку и кампанию 10DLC в AWS с помощью консоли Amazon Pinpoint. Подробнее см. раздел «Начало работы с 10DLC» в Руководстве разработчика по Amazon SNS.

Вопрос. Я отправляю SMS-сообщения через Amazon SNS из нескольких регионов AWS. Как зарегистрировать номер 10DLC в том регионе AWS, откуда происходит управление?

Ответ. Номера 10DLC привязаны к региону AWS. Компания и кампания 10DLC действительны в разных регионах AWS в пределах одного аккаунта AWS. Вы можете зарегистрировать торговую марку и кампании в одном регионе AWS, приобрести новые номера 10DLC для кампаний и при необходимости использовать их в других регионах AWS.

Вопрос. Что случится, если я отправлю SMS-сообщения с более высокой скоростью, чем позволяет лимит пропускной способности моей кампании 10DLC?

Ответ. При превышении лимита пропускной способности в вашей учетной записи AWS возникнут ошибки регулирования. Лимит распределяется следующим образом:

  • Скорость доставки SMS на уровне учетной записи, согласно разделу «Адреса и лимиты Amazon SNS» общего справочника AWS.
  • Лимит пропускной способности, основанный на возможностях кампании 10DLC, согласно разделу «10DLC» в Руководстве разработчика Amazon SNS.

Вопрос. Как зарегистрировать компанию в двух разных аккаунтах AWS?

Ответ. Компании и кампании 10DLC располагаются в одной учетной записи AWS. При наличии нескольких аккаунтов, их можно связать с основной учетной записью и использовать номера 10DLC из любого аккаунта. Подробнее см. раздел «Межаккаунтный доступ 10DLC» в Руководстве разработчика Amazon SNS. Для управления кампаниями 10DLC сервис Amazon SNS использует Amazon Pinpoint.

Вопрос. Можно ли использовать короткие URL-адреса в сообщениях 10DLC?

Ответ. Нет. Операторы связи запрещают использование коротких URL-адресов, таких как предоставляемые сервисом bit.ly. AWS рекомендует использовать полные URL-адреса, совпадающие с доменом вашей компании. Также можно использовать сервисы сокращения URL-адресов, которые предоставляют пользовательские и (или) запоминающиеся домены, явно связанные с торговой маркой отправителя. Обязательно укажите примеры таких URL-адресов в образцах сообщений во время регистрации кампании 10DLC.

Вопрос. Мы используем Amazon SNS для отправки SMS и не указываем атрибут «OriginationNumber». Каким образом сервис Amazon SNS узнает, какую кампанию 10DLC задействовать, если в нашем аккаунте AWS их несколько?

Ответ. Если в вашем аккаунте AWS имеется несколько кампаний 10DLC, то AWS рекомендует использовать параметр «OriginationNumber» при отправке сообщений через Amazon SNS для выбора правильной кампании 10DLC. В случае, если параметр не будет указан, Amazon SNS самостоятельно выберет исходный идентификатор.

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

Вопрос. Я использую Amazon Cognito для отправки SMS-сообщений о подтверждении номера телефона, OTP и MFA. Для чего я могу задействовать конкретную кампанию 10DLC?

Ответ. Amazon Cognito от вашего имени обращается в Amazon SNS для отправки SMS-сообщения. При наличии только одного номера и кампании 10DLC в аккаунте AWS, Amazon SNS использует этот номер при отправке SMS от вашего имени.

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

Вопрос. Как отправить сообщения с помощью Amazon SNS через номера 10DLC из регионов AWS, не поддерживаемых в Amazon Pinpoint?

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

Цены на SMS

Вопрос: Сколько стоит отправка SMS‑сообщений?

Цена на отправку SMS‑сообщений зависит от страны или региона получателя, а также от его мобильного оператора. Актуальные тарифы см. на странице цен на SMS.

Вопрос: Почему цена на отправку SMS‑сообщений одному и тому же оператору в одной и той же стране постоянно меняется?

Расходы, связанные с отправкой SMS‑сообщений в разные страны и регионы, а также разным операторам в этих странах и регионах, могут меняться часто и без предварительного уведомления. Изменение цен на отправку SMS‑сообщений может быть связано с политикой операторов сотовой связи, технологическими изменениями и даже геополитическими проблемами.

Мы стремимся сохранять прозрачность и публикуем актуальные тарифы на отправку SMS на странице цен на SMS.

Вопрос: Взимается ли плата за недоставленные SMS‑сообщения?

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

Вопрос. Влияет ли длина сообщения на цену?

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

Максимальное количество символов в одном сообщении зависит от кодировки. При использовании кодировки GSM‑7 (также известной как GSM 03.38) длина сообщения может составлять до 160 символов. При использовании кодировки ASCII длина сообщения может составлять до 140 символов. При использовании кодировки UCS‑2 длина сообщения может составлять до 70 символов. Amazon SNS автоматически выбирает для SMS‑сообщений наиболее компактную кодировку, поддерживающую все символы в сообщении.

Дополнительную информацию об отправке SMS‑сообщений см. в разделе Sending an SMS Message Руководства по Amazon Simple Notification Service для разработчиков.

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

Нет.

Квоты и ограничения

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

По умолчанию сервис 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 байт.

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

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

Вопрос: Ограничен ли выбор 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/HTTPS его текст будет включен в запрос POST по протоколу HTTP.

Push-уведомления для мобильных устройств

Вопрос: Что такое 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);
  • Firebase Cloud Messaging (FCM);
  • 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 не требует внесения изменений в клиентское приложение. Для правильной работы Baidu Cloud Push (независимо от того, используете ли вы сервис SNS) необходимо добавить в код клиентского приложения специальные компоненты.

Вопрос: Как темы 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, FCM, ADM, WNS, MPNS, Baidu) и SMS. Передача сообщений по электронной почте требует использования тем.

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

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

Вопрос: Я использую Google Cloud Messaging (GCM) для мобильных уведомлений SNS. Что случится, когда устареет GCM?

Токены устройства GCM полностью взаимозаменяемы с более новыми токенами устройства Firebase Cloud Messaging (FCM). Если у вас есть действующие токены GCM, вы по-прежнему сможете использовать их для отправления уведомлений. Это действительно и для токенов GCM, которые будут сгенерированы в дальнейшем. Для получения дополнительной информации перейдите в блог The End of Google Cloud Messaging, and What it means for Your Apps.

Вопрос: Можно ли перенести в сервис 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 см. по ссылке https://push.baidu.com/.

Вопрос: Можно ли публиковать уведомления 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 FCM и Amazon ADM позволяют указывать значение TTL внутри текста сообщения. Если вы задали TTL и внутри текста, и в атрибуте сообщения, SNS будет следовать значению атрибута.

Вопрос: Что произойдет, если задать TTL=0?

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

Вопрос: Какие адреса поддерживают параметр TTL в сервисе SNS?

Вы можете использовать параметр TTL при отправке на следующие сервисы мобильных push‑оповещений: APNS, APNS_Sandbox, FCM, ADM, Baidu и WNS. Microsoft MPNS в настоящее время не поддерживает использование параметра TTL. Этот параметр также не поддерживается для адресов электронной почты, SQS, HTTP и SMS.

Вопрос: Какова роль возможности Delivery Status в сервисе Amazon SNS?

Delivery Status позволяет собирать информацию о статистике успешных доставок, недоставок и времени ожидания push‑уведомлений для поддерживаемых мобильных платформ. В настоящее время поддерживаются платформы Apple (APNS), Google (FCM), 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. Этот фильтр метрик можно настроить таким образом, чтобы извлекать нужную вам информацию, например, статистику неудачных доставок и время ожидания. После настройки фильтра его нужно активировать и применить к метрике. Затем такую метрику можно использовать для настройки предупреждений на основе заданных пороговых значений. Подробные сведения см. в нашей документации или в блоге.

Вопрос. Поддерживает ли Amazon SNS HTTP/2 для мобильных push-уведомлений в конечные точки APNS?

Amazon SNS использует HTTP/2 с сертификатами p12 для отправки push-уведомлений через Apple Push Notification Service (APNS) на адреса с iOS и macOS.

Вопрос. Требуется ли изменять приложение из-за устаревания двоичного протокола APNS с ноября 2020 года?

Amazon SNS использует HTTP/2 с сертификатами p12. Поскольку устаревший двоичный протокол не используется, нет необходимости изменять приложения, отправляющие push-уведомления через Amazon SNS.

Поддержка сервисом SNS функций AWS Lambda

Вопрос: Что дает поддержка адресов 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 поддерживает 1000 одновременных исполнений в регионе на один аккаунт AWS. Если из-за доставок сообщений Amazon SNS в сервис AWS Lambda указанные квоты превышаются, такие доставки будут откладываться. Если сервис AWS Lambda откладывает доставку сообщения, в Amazon SNS будут предприняты повторные попытки его доставки. Подробнее о квотах на параллельное выполнение функций см. в документации AWS Lambda.

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

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

Уведомления VoIP для Mac OS и iOS

Вопрос: Что такое push‑уведомления VoIP для iOS?

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

Вопрос: Можно ли использовать push‑уведомления VoIP и другие push‑уведомления в одном приложении iOS?

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

Вопрос: Что такое push‑уведомления для Mac OS?

Теперь с помощью сервиса Amazon SNS вы можете отправлять push‑уведомления для настольных компьютеров Mac OS с операционной системой Mac OS X Lion (10.7) и новее. Подробнее см. в нашей документации.

Подробнее о ценах на Amazon SNS

Перейти на страницу цен
Готовы приступить к разработке?
Начать работу с Amazon SNS
Есть вопросы?
Связаться с нами