publish
Описание
Отправляет сообщение в тему Amazon SNS, текстовое сообщение (сообщение SMS) напрямую на номер телефона или сообщение на конечную точку мобильной платформы (если вы укажете TargetArn ).
Если вы отправляете сообщение в тему, Amazon SNS доставляет сообщение каждой конечной точке, которая подписана на эту тему. Формат сообщения зависит от протокола уведомления для каждой подписанной конечной точки.
Когда возвращается messageId, сообщение сохраняется и Amazon SNS немедленно доставляет его подписчикам.
Чтобы использовать действие Publish для публикации сообщения на мобильную конечную точку, например, приложение на устройстве Kindle или мобильном телефоне, необходимо указать EndpointArn для параметра TargetArn. EndpointArn возвращается при выполнении вызова с действием CreatePlatformEndpoint.
Дополнительную информацию о форматировании сообщений см. в разделе Отправка пользовательских платформ-специфичных полезных нагрузок в сообщениях для мобильных устройств.
Предупреждение
Вы можете публиковать сообщения только в темы и конечные точки в одном и том же регионе Amazon Web Services.См. также: Документация API AWS
Синтаксис
publish
[--topic-arn <value>]
[--target-arn <value>]
[--phone-number <value>]
--message <value>
[--subject <value>]
[--message-structure <value>]
[--message-attributes <value>]
[--message-deduplication-id <value>]
[--message-group-id <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]
Параметры
--topic-arn (строка)
Тема, в которую вы хотите опубликовать сообщение.
Если вы не укажете значение для параметра TopicArn, необходимо указать значение для параметров PhoneNumber или TargetArn.
--target-arn (строка)
TargetArn, необходимо указать значение для параметров PhoneNumber или TopicArn.--phone-number (строка)
Номер телефона, которому вы хотите доставить SMS-сообщение. Используйте формат E.164.
Если вы не укажете значение для параметра PhoneNumber, необходимо указать значение для параметров TargetArn или TopicArn.
--message (строка)
Сообщение, которое вы хотите отправить.
Если вы публикуете сообщение в тему и хотите отправить одно и то же сообщение всем протоколам передачи, включите текст сообщения в виде строкового значения. Если вы хотите отправить разные сообщения для каждого протокола передачи, установите значение параметра MessageStructure в json и используйте JSON-объект для параметра Message.
Ограничения:
- За исключением SMS, сообщения должны быть закодированы в UTF-8 и иметь размер не более 256 КБ (262 144 байта, а не 262 144 символа).
- Для SMS каждое сообщение может содержать до 140 символов. Это ограничение символов зависит от схемы кодирования. Например, SMS-сообщение может содержать 160 символов GSM, 140 символов ASCII или 70 символов UCS-2. Если вы опубликуете сообщение, превышающее это ограничение по размеру, Amazon SNS отправит сообщение как несколько сообщений, каждое из которых помещается в пределы ограничения по размеру. Сообщения не обрезаются посередине слова, а обрезаются по границам целых слов. Общее ограничение размера для одного действия SMS
Publishсоставляет 1600 символов.
Ограничения для JSON:
- Ключи в JSON-объекте, соответствующие поддерживаемым протоколам передачи, должны иметь простые строковые значения JSON.
- Значения будут обработаны (раскомментированы) перед использованием в исходящих сообщениях.
- Исходящие уведомления закодированы в JSON (что означает, что символы будут повторно закодированы для отправки).
- Значения имеют минимальную длину 0 (разрешена пустая строка "").
- Значения имеют максимальную длину, ограниченную общим размером сообщения (т.е. использование нескольких протоколов может ограничить размеры сообщений).
- Нестроковые значения приведут к игнорированию ключа.
- Ключи, не соответствующие поддерживаемым протоколам передачи, игнорируются.
- Не допускается дублирование ключей.
- Неудачная обработка или проверка любого ключа или значения в сообщении приведет к ошибке вызова
Publish(без частичной доставки).
--subject (строка)
Необязательный параметр, который будет использоваться в качестве строки «Тема» при доставке сообщения в конечные точки электронной почты. Этот параметр также будет включен, если он присутствует, в стандартные JSON-сообщения, доставляемые в другие конечные точки.
Ограничения: темы должны быть текстом UTF-8 без переносов строк или управляющих символов и иметь длину менее 100 символов.
--message-structure (строка)
Установите MessageStructure в json, если вы хотите отправить разные сообщения для каждого протокола. Например, с помощью одного действия публикации вы можете отправить короткое сообщение своим SMS-подписчикам и более длинное сообщение своим подписчикам по электронной почте. Если вы установите MessageStructure в json, значение параметра Message должно:
- быть синтаксически корректным JSON-объектом; и
- содержать как минимум верхнеуровневый JSON-ключ «default» со строковым значением.
Вы можете определить другие верхнеуровневые ключи, определяющие сообщение, которое вы хотите отправить в определенный протокол передачи (например, «http»).
Допустимое значение: json
--message-attributes (карта)
Атрибуты сообщения для действия Publish.
Имя -> (строка)
Значение -> (структура)
Значение атрибута сообщения, указанное пользователем. Для строковых типов данных атрибут значения имеет те же ограничения на содержимое, что и тело сообщения. Дополнительную информацию см. в разделе Publish .
Имя, тип и значение не должны быть пустыми или null. Кроме того, тело сообщения не должно быть пустым или null. Все части атрибута сообщения, включая имя, тип и значение, включены в ограничение размера сообщения, которое в настоящее время составляет 256 КБ (262 144 байта). Дополнительную информацию см. в разделе Атрибуты сообщений Amazon SNS и Публикация на мобильный телефон в руководстве разработчика Amazon SNS.
Тип данных -> (строка)
Строковое значение -> (строка)
Значение двоичных данных -> (blob)
Сокращенный синтаксис:
KeyName1=DataType=string,StringValue=string,BinaryValue=blob,KeyName2=DataType=string,StringValue=string,BinaryValue=blob
JSON-синтаксис:
{"string": {
"DataType": "string",
"StringValue": "string",
"BinaryValue": blob
}
...}
--message-deduplication-id (строка)
- Этот параметр применяется только к темам FIFO (первым вошел, первым вышел).
MessageDeduplicationIdможет содержать до 128 буквенно-цифровых символов(a-z, A-Z, 0-9)и знаков препинания(!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~). - Каждое сообщение должно иметь уникальный
MessageDeduplicationId, который является маркером, используемым для удаления дубликатов отправленных сообщений в интервале минимальной дедупликации 5 минут. - Область дедупликации зависит от атрибута
FifoThroughputScope, если он установлен вTopic, область дедупликации сообщений распространяется на всю тему, если он установлен вMessageGroup, область дедупликации сообщений ограничена каждой группой сообщений. - Если сообщение с определенным
MessageDeduplicationIdуспешно отправлено, последующие сообщения в области и интервале дедупликации с тем жеMessageDeduplicationIdуспешно принимаются, но не доставляются. - Каждое сообщение должно иметь уникальный
MessageDeduplicationId:- Вы можете явно указать
MessageDeduplicationId. - Если вы не можете предоставить
MessageDeduplicationIdи включитеContentBasedDeduplicationдля своей темы, Amazon SNS использует хеш SHA-256 для генерацииMessageDeduplicationId, используя тело сообщения (но не атрибуты сообщения). - Если вы не предоставляете
MessageDeduplicationIdи тема не имеетContentBasedDeduplication, действие завершается с ошибкой. - Если в теме задано
ContentBasedDeduplication, вашеMessageDeduplicationIdперезаписывает сгенерированное.
- Вы можете явно указать
- Когда
ContentBasedDeduplicationактивен, сообщения с идентичным содержанием, отправленные в области и интервале дедупликации, считаются дубликатами, и только одна копия сообщения доставляется. - Если вы отправляете одно сообщение с включенным
ContentBasedDeduplication, а затем другое сообщение сMessageDeduplicationId, который совпадает с сгенерированным для первогоMessageDeduplicationId, оба сообщения считаются дубликатами в области и интервале дедупликации, и доставляется только одна копия сообщения.
--message-group-id (строка)
Этот параметр применяется только к темам FIFO (первым вошел, первым вышел). MessageGroupId может содержать до 128 буквенно-цифровых символов (a-z, A-Z, 0-9) и знаков препинания (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).
MessageGroupId — это метка, которая указывает, что сообщение принадлежит к определенной группе сообщений. Сообщения, принадлежащие к одной группе сообщений, обрабатываются в порядке очереди FIFO (однако сообщения в разных группах сообщений могут обрабатываться вне очереди). Каждое сообщение должно содержать MessageGroupId.
--cli-input-json | --cli-input-yaml (строка) Читает аргументы из предоставленной JSON-строки. JSON-строка следует формату, предоставленному --generate-cli-skeleton. Если на командной строке предоставлены другие аргументы, эти значения переопределят значения из JSON. Невозможно передавать произвольные двоичные значения с помощью значения JSON, так как строка будет взята буквально. Это не может быть указано вместе с --cli-input-yaml.
--generate-cli-skeleton (строка) Выводит JSON-скелет в стандартный вывод без отправки запроса API. Если предоставлено без значения или со значением input, выводит пример входного JSON, который можно использовать в качестве аргумента для --cli-input-json. Аналогично, если предоставлено yaml-input, он выведет пример входного YAML, который можно использовать с --cli-input-yaml. Если предоставлено значение output, оно проверяет входные данные команды и возвращает пример выходного JSON для этой команды. Сгенерированный JSON-скелет не является стабильным между версиями AWS CLI, и нет гарантий обратной совместимости в сгенерированном JSON-скелете.
Общие параметры
--debug (boolean)
Включить отладочную запись.
--endpoint-url (string)
Заменить значение URL по умолчанию для команды заданным URL.
--no-verify-ssl (boolean)
По умолчанию AWS CLI использует SSL при взаимодействии с AWS-сервисами. Для каждого SSL-соединения AWS CLI будет проверять SSL-сертификаты. Этот параметр переопределяет стандартное поведение проверки SSL-сертификатов.
--no-paginate (boolean)
Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI выполнит только один вызов для первой страницы результатов.
--output (string)
Стиль форматирования вывода команд.
- json
- text
- table
- yaml
- yaml-stream
--query (string)
Запрос JMESPath для фильтрации данных ответа.
--profile (string)
Использовать определенный профиль из файла с данными учетных данных.
--region (string)
Используемый регион. Переопределяет настройки из конфигурации/окружения.
--version (string)
Отобразить версию этого инструмента.
--color (string)
Включить/выключить цветной вывод.
- on
- off
- auto
--no-sign-request (boolean)
Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент предоставлен.
--ca-bundle (string)
Файл с сертификатами CA для проверки SSL-сертификатов. Переопределяет настройки из конфигурации/окружения.
--cli-read-timeout (int)
Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет блокирующим и без таймаута. Значение по умолчанию составляет 60 секунд.
--cli-connect-timeout (int)
Максимальное время подключения сокета в секундах. Если значение установлено в 0, подключение сокета будет блокирующим и без таймаута. Значение по умолчанию составляет 60 секунд.
--cli-binary-format (string)
Стиль форматирования для двоичных блоков. Формат по умолчанию — base64. Формат base64 предполагает, что двоичные блоки предоставляются в виде закодированной в base64 строки. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI версии 1, а двоичные значения должны передаваться буквально. При предоставлении содержимого из файла, сопоставленного с двоичным блоком fileb:// всегда будет обрабатываться как двоичное и использовать содержимое файла непосредственно независимо от настройки cli-binary-format. При использовании file:// содержимое файла должно быть должным образом отформатировано для настроенного cli-binary-format.
- base64
- raw-in-base64-out
--no-cli-pager (boolean)
Отключить пейджер CLI для вывода.
--cli-auto-prompt (boolean)
Автоматически запросить параметры ввода CLI.
--no-cli-auto-prompt (boolean)
Отключить автоматический запрос параметров ввода CLI.
Примеры
Примечание
Для использования следующих примеров необходимо установить и настроить AWS CLI. Дополнительная информация приведена в руководстве по началу работы в руководстве пользователя AWS CLI.
Если не указано иное, все примеры используют правила цитирования в стиле Unix. Эти примеры потребуется адаптировать к правилам цитирования вашей оболочки. См. раздел «Использование кавычек со строками» в руководстве пользователя AWS CLI.
Пример 1: Публикация сообщения в топик
Следующий publish пример публикует указанное сообщение в указанный топик SNS. Сообщение берется из текстового файла, что позволяет включать переводы строк.
aws sns publish \
--topic-arn "arn:aws:sns:us-west-2:123456789012:my-topic" \
--message file://message.txt
Содержание файла message.txt:
Hello World
Second Line
Вывод:
{
"MessageId": "123a45b6-7890-12c3-45d6-111122223333"
}
Пример 2: Публикация SMS-сообщения на номер телефона
Следующий publish пример публикует сообщение Hello world! на номер телефона +1-555-555-0100.
aws sns publish \
--message "Hello world!" \
--phone-number +1-555-555-0100
Вывод:
{
"MessageId": "123a45b6-7890-12c3-45d6-333322221111"
}
Вывод
MessageId -> (строка)
Уникальный идентификатор, присвоенный опубликованному сообщению.
Ограничение длины: Максимальная длина 100 символов
SequenceNumber -> (строка)
Этот элемент ответа относится только к топикам FIFO (первым вошел — первым вышел).
Номер последовательности — большое, несмежное число, которое Amazon SNS присваивает каждому сообщению. Длина SequenceNumber составляет 128 бит. SequenceNumber продолжает увеличиваться для каждого MessageGroupId.
© Copyright 2025, Amazon Web Services. Created using Sphinx.