31 KiB
Yandex Message Queue API Reference
Дата документации: 11 апреля 2026
Обзор
Yandex Message Queue предоставляет HTTP API, частично совместимый с Amazon SQS API.
Базовые параметры всех запросов
Адрес: POST https://message-queue.api.cloud.yandex.net/
Заголовки:
Content-Type: application/x-www-form-urlencodedAuthorization: Authorization string (AWS Signature Version 4)
Параметры запроса:
Action— название вызываемого метода APIVersion— всегда2012-11-05
Формат передачи массивов параметров
Элементы массивов передаются с индексами начиная с 1:
Attribute.1.Name=VisibilityTimeout
Attribute.1.Value=40
Attribute.2.Name=MessageRetentionPeriod
Attribute.2.Value=1000
Формат ответов
Успешный ответ:
<?xml version="1.0" encoding="UTF-8"?>
<ActionResponse>
<ActionResult>
<!-- Результаты зависят от метода -->
</ActionResult>
<ResponseMetadata>
<RequestId>UUID</RequestId>
</ResponseMetadata>
</ActionResponse>
Ошибочный ответ:
<ErrorResponse>
<Error>
<Type>Sender|Receiver</Type>
<Code>ошибка</Code>
<Message>Описание</Message>
</Error>
<RequestId>UUID</RequestId>
</ErrorResponse>
API Команды
Управление очередями
CreateQueue
Создание новой стандартной или FIFO очереди.
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| QueueName | string | Да | Имя очереди (макс 80 символов). Для FIFO должно оканчиваться на .fifo |
| Attributes.N.* | список | Нет | Атрибуты очереди |
| Tags.N.* | список | Нет | Метки очереди |
Атрибуты очереди:
| Атрибут | Тип | Описание |
|---|---|---|
| DelaySeconds | integer | 0-900 сек. Default: 0 |
| MaximumMessageSize | integer | 1024-262144 байт. Default: 262144 |
| MessageRetentionPeriod | integer | 60-1209600 сек. Default: 345600 |
| ReceiveMessageWaitTimeSeconds | integer | 0-20 сек. Default: 0 |
| RedrivePolicy | string | JSON с deadLetterTargetArn и maxReceiveCount |
| VisibilityTimeout | integer | 0-43000 сек. Default: 30 |
| FifoQueue | boolean | true/false — создание FIFO очереди |
| ContentBasedDeduplication | boolean | true/false — дедупликация (FIFO) |
Выходные параметры:
| Параметр | Тип | Описание |
|---|---|---|
| QueueUrl | string | URL созданной очереди |
Ошибки:
- 400
QueueDeletedRecently— очередь удалена недавно, ждать 60 сек - 400
QueueAlreadyExists— очередь уже существует
DeleteQueue
Удаление очереди. Процесс занимает до 60 секунд.
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| QueueUrl | string | Да | URL очереди (чувствителен к регистру) |
Выходные параметры:
- Нет полей
Ошибки:
- Только стандартные
GetQueueAttributes
Получение атрибутов очереди.
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| QueueUrl | string | Да | URL очереди |
| AttributeNames.N | array | Нет | Список запрашиваемых атрибутов |
Значения AttributeNames:
All— все атрибутыApproximateNumberOfMessages— ориентировочное количество готовых сообщенийApproximateNumberOfMessagesDelayed— отложенные сообщенияApproximateNumberOfMessagesNotVisible— сообщения в процессе передачиCreatedTimestamp— время создания (epoch time)DelaySecondsLastModifiedTimestamp— время последнего изменения (epoch time)MaximumMessageSizeMessageRetentionPeriodQueueArn— ARN очередиReceiveMessageWaitTimeSecondsRedrivePolicy— политика DLQVisibilityTimeoutFifoQueue— флаг FIFOContentBasedDeduplication— флаг дедупликации
Выходные параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Attributes.N.* | array | Массив атрибутов (Name, Value) |
Ошибки:
- 400
InvalidAttributeName— неверное имя атрибута
GetQueueUrl
Получение URL очереди по имени.
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| QueueName | string | Да | Имя очереди (макс 80 символов, чувствителен к регистру) |
| QueueOwnerAWSAccountId | string | Нет | Параметр игнорируется |
Выходные параметры:
| Параметр | Тип | Описание |
|---|---|---|
| QueueUrl | string | URL очереди |
Ошибки:
- 400
NonExistentQueue— очередь не существует
ListQueues
Получение списка очередей в каталоге (макс 1000).
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| QueueNamePrefix | string | Нет | Префикс для фильтрации (чувствителен к регистру) |
Выходные параметры:
| Параметр | Тип | Описание |
|---|---|---|
| QueueUrl.N | array | Массив URL очередей (до 1000) |
Ошибки:
- Только стандартные
PurgeQueue
Очистка очереди (удаление всех сообщений).
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| QueueUrl | string | Да | URL очереди (чувствителен к регистру) |
Выходные параметры:
- Нет полей
Ошибки:
- 400
NonExistentQueue— очередь не существует - 403
PurgeQueueInProgress— PurgeQueue уже вызывали за последние 60 сек
SetQueueAttributes
Изменение атрибутов очереди (может занять до 60 сек).
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| QueueUrl | string | Да | URL очереди |
| Attributes.N.* | список | Да | Список атрибутов |
Поддерживаемые атрибуты:
- DelaySeconds
- MaximumMessageSize
- MessageRetentionPeriod
- ReceiveMessageWaitTimeSeconds
- RedrivePolicy
- VisibilityTimeout
- ContentBasedDeduplication (только FIFO)
Выходные параметры:
- Нет полей
Ошибки:
- 400
InvalidAttributeName— неверное имя атрибута
TagQueue
Добавление/изменение меток очереди (может занять до 60 сек).
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| QueueUrl | string | Да | URL очереди |
| Tags.N.* | список | Да | Список меток (Tag.N.Key, Tag.N.Value) |
Выходные параметры:
- Нет полей
Ошибки:
- Только стандартные
UntagQueue
Удаление меток очереди (может занять до 60 сек).
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| QueueUrl | string | Да | URL очереди |
| TagKeys.N | array | Да | Список ключей для удаления (TagKey.N) |
Выходные параметры:
- Нет полей
Ошибки:
- Только стандартные
Управление сообщениями
SendMessage
Отправка одного сообщения в очередь.
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| QueueUrl | string | Да | URL очереди |
| MessageBody | string | Да | Тело сообщения (макс 256 КБ). XML/JSON/text |
| DelaySeconds | integer | Нет | 0-900 сек отложки |
| MessageAttributeName.N / MessageAttributeValue.N | array | Нет | Пользовательские атрибуты |
| MessageDeduplicationId | string | Да (FIFO) | Макс 128 символов |
| MessageGroupId | string | Да (FIFO) | Макс 128 символов |
Выходные параметры:
| Параметр | Тип | Описание |
|---|---|---|
| MD5OfMessageBody | string | MD5 хэш тела |
| MD5OfMessageAttributes | string | MD5 хэш атрибутов |
| MessageId | string | Id отправленного сообщения |
| SequenceNumber | string | Номер в FIFO (только FIFO) |
Ошибки:
- 400
UnsupportedOperation— неподдерживаемая операция - 400
InvalidMessageContents— запрещённые символы
SendMessageBatch
Отправка до 10 сообщений одновременно (макс 256 КБ общий размер).
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| QueueUrl | string | Да | URL очереди |
| SendMessageBatchRequestEntry.N | array | Да | Массив до 10 сообщений |
Выходные параметры:
| Параметр | Тип | Описание |
|---|---|---|
| BatchResultErrorEntry.N | array | Ошибки отправки |
| SendMessageBatchResultEntry.N | array | Id, MD5, MessageId успешных |
Ошибки:
- 400
BatchEntryIdsNotDistinct— одинаковые Id - 400
BatchRequestTooLong— общая длина превышена - 400
EmptyBatchRequest— нет сообщений - 400
InvalidBatchEntryId— неправильный Id - 400
TooManyEntriesInBatchRequest— >10 сообщений - 400
UnsupportedOperation— неподдерживаемая операция
ReceiveMessage
Получение 1-10 сообщений из очереди.
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| QueueUrl | string | Да | URL очереди |
| MaxNumberOfMessages | string | Нет | 1-10 сообщений. Default: 1 |
| MessageAttributeName.N | array | Нет | Имена атрибутов (макс 256 символов) |
| ReceiveRequestAttemptId | string | Нет | Id для повтора попытки (FIFO) |
| VisibilityTimeout | string | Нет | Таймаут видимости |
| WaitTimeSeconds | string | Нет | Long-polling ожидание (0-20 сек) |
Атрибуты сообщения:
All— все атрибутыApproximateFirstReceiveTimestamp— время первого полученияApproximateReceiveCount— количество получений без удаленияSenderId— Id отправителя (IAM)SentTimestamp— время отправкиMessageDeduplicationId— Id дедупликации (FIFO)MessageGroupId— Id группы (FIFO)SequenceNumber— номер в группе (FIFO)
Выходные параметры:
| Параметр | Тип | Описание |
|---|---|---|
| Message | array | Массив сообщений |
Ошибки:
- 403
OverLimit— превышен один из установленных лимитов
DeleteMessage
Удаление одного сообщения из очереди.
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| QueueUrl | string | Да | URL очереди |
| ReceiptHandle | string | Да | Id получения из ReceiveMessage |
Выходные параметры:
- Нет полей
Ошибки:
- 400
InvalidIdFormat— некорректный формат ReceiptHandle - 400
ReceiptHandleIsInvalid— неверный ReceiptHandle
DeleteMessageBatch
Удаление до 10 сообщений одновременно.
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| QueueUrl | string | Да | URL очереди |
| DeleteMessageBatchRequestEntry.N | array | Да | Массив до 10 сообщений (Id, ReceiptHandle) |
Выходные параметры:
| Параметр | Тип | Описание |
|---|---|---|
| BatchResultErrorEntry.N | array | Ошибки удаления |
| DeleteMessageBatchResultEntry.N | array | Id успешно удаленных |
Ошибки:
- 400
BatchEntryIdsNotDistinct— одинаковые Id - 400
EmptyBatchRequest— нет сообщений - 400
InvalidBatchEntryId— неправильный Id - 400
TooManyEntriesInBatchRequest— >10 сообщений
ChangeMessageVisibility
Изменение таймаута видимости сообщения в обработке.
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| QueueUrl | string | Да | URL очереди |
| ReceiptHandle | string | Да | Id получения |
| VisibilityTimeout | integer | Да | 0-43200 сек новый таймаут |
Выходные параметры:
- Нет полей
Ошибки:
- 400
MessageNotInflight— сообщение не в обработке - 400
ReceiptHandleIsInvalid— неверный ReceiptHandle
Примечание: Суммарная длительность таймаута не может быть более 12 часов.
ChangeMessageVisibilityBatch
Изменение таймаута видимости до 10 сообщений одновременно.
Параметры запроса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| QueueUrl | string | Да | URL очереди (чувствителен к регистру) |
| ChangeMessageVisibilityBatchRequestEntry.N | array | Да | Массив до 10 сообщений |
Выходные параметры:
| Параметр | Тип | Описание |
|---|---|---|
| BatchResultErrorEntry.N | array | Ошибки |
| ChangeMessageVisibilityBatchResultEntry.N | array | Id успешно измененных |
Ошибки:
- 400
BatchEntryIdsNotDistinct— одинаковые Id - 400
EmptyBatchRequest— нет сообщений - 400
InvalidBatchEntryId— неправильный Id - 400
TooManyEntriesInBatchRequest— >10 сообщений
Типы данных
BatchResultErrorEntry
Описание ошибки выполнения действия из группы.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| Code | string | Да | Код ошибки |
| Id | string | Да | Id сообщения в группе |
| Message | string | Нет | Описание ошибки |
| SenderFault | boolean | Да | Ошибка на стороне отправителя |
ChangeMessageVisibilityBatchRequestEntry
Элемент массива для ChangeMessageVisibilityBatch.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| Id | string | Да | Id ReceiptHandle, уникален в пределе запроса |
| ReceiptHandle | string | Да | Id получения сообщения |
| VisibilityTimeout | boolean | Нет | Новый таймаут в секундах |
ChangeMessageVisibilityBatchResultEntry
Результат для одного сообщения в ChangeMessageVisibilityBatch.
| Параметр | Тип | Описание |
|---|---|---|
| Id | string | Id сообщения с измененным таймаутом |
DeleteMessageBatchRequestEntry
Элемент массива для DeleteMessageBatch.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| Id | string | Да | Id, уникален в пределе запроса |
| ReceiptHandle | string | Да | Id получения сообщения |
DeleteMessageBatchResultEntry
Результат для одного сообщения в DeleteMessageBatch.
| Параметр | Тип | Описание |
|---|---|---|
| Id | string | Id удаленного сообщения |
Message
Сообщение из ReceiveMessage.
| Параметр | Тип | Описание |
|---|---|---|
| Attribute.N | array | Системные атрибуты (ApproximateReceiveCount, ApproximateFirstReceiveTimestamp, MessageDeduplicationId, MessageGroupId, SenderId, SentTimestamp, SequenceNumber) |
| Body | string | Тело сообщения |
| MD5OfBody | string | MD5 хэш тела |
| MD5OfMessageAttributes | string | MD5 хэш атрибутов |
| MessageAttribute | array | Пользовательские атрибуты (MessageAttributeValue) |
| MessageId | string | Уникальный Id |
| ReceiptHandle | string | Id получения (новый при каждом получении) |
MessageAttributeValue
Значение пользовательского атрибута сообщения.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| BinaryListValue.N | array | Нет | Не реализовано |
| BinaryValue | base64 | Нет | Двоичные данные |
| DataType | string | Да | String, Number или Binary (для Number используется StringValue) |
| StringListValue.N | string | Нет | Не реализовано |
| StringValue | string | Нет | Строка UTF-8 |
Примечание: Имя, тип, значение и тело не могут быть пустыми. Суммарный размер всех частей ≤ 256 КБ.
SendMessageBatchRequestEntry
Элемент массива для SendMessageBatch.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| DelaySeconds | integer | Нет | Отложка в секундах |
| Id | string | Да | Id сообщения в списке |
| MessageAttribute | string | Нет | Атрибуты (имя, тип, значение) |
| MessageBody | string | Нет | Тело сообщения |
| MessageDeduplicationId | string | Нет | Id дедупликации |
| MessageGroupId | string | Нет | Id группы (только FIFO) |
SendMessageBatchResultEntry
Результат для одного сообщения в SendMessageBatch.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| Id | string | Да | Id сообщения в группе |
| MD5OfMessageAttributes | string | Нет | MD5 хэш атрибутов |
| MD5OfMessageBody | string | Да | MD5 хэш тела |
| MessageId | string | Да | Id сообщения |
| SequenceNumber | string | Нет | Номер (128 бит, только FIFO) |
Стандартные ошибки
Ошибки, возвращаемые всеми методами:
| HTTP | Код ошибки | Описание |
|---|---|---|
| 400 | AccessDeniedException | Недостаточно прав для выполнения действия |
| 400 | IncompleteSignature | Подпись запроса не соответствует стандартам AWS |
| 500 | InternalFailure | Неизвестная ошибка |
| 400 | InvalidAction | Неизвестное значение параметра Action |
| 403 | InvalidClientTokenId | Неверный ключ сервисного аккаунта |
| 400 | InvalidParameterCombination | Одновременно используются несовместимые параметры |
| 400 | InvalidParameterValue | Параметр задан неверно или вне диапазона |
| 400 | InvalidQueryParameter | Используется несуществующий параметр |
| 404 | MalformedQueryString | Синтаксическая ошибка в запросе |
| 400 | MissingAction | Не указан параметр Action |
| 403 | MissingAuthenticationToken | Не указан Id ключа сервисного аккаунта |
| 400 | MissingParameter | Отсутствует обязательный параметр |
| 400 | OptInRequired | Id ключа требует подписки на сервис |
| 400 | RequestExpired | Запрос получен через >15 минут от времени в запросе |
| 503 | ServiceUnavailable | Сервис недоступен |
| 403 | ThrottlingException | Ограничение по числу запросов |
| 400 | ValidationError | Значения не соответствуют ограничениям |
Примечания
-
FIFO очереди:
- Имя должно оканчиваться на
.fifo - Требуют
MessageGroupIdдля SendMessage - Требуют
MessageDeduplicationIdдля дедупликации - При ReceiveMessage из одной группы за вызов получается только одно сообщение
- Сообщения обрабатываются в порядке отправления
- Имя должно оканчиваться на
-
Таймауты:
- VisibilityTimeout: 0-43000 сек, при смене максимум до 12 часов суммарно
- ReceiveMessage с WaitTimeSeconds — long-polling (0-20 сек)
-
Batch операции:
- Максимум 10 элементов в batch
- SendMessageBatch: макс 256 КБ общий размер
- Результаты проверяются индивидуально (могут быть успехи и ошибки)
-
Удаление очередей:
- Процесс может занять до 60 секунд
- Новую очередь с таким же именем можно создать через 60 сек после удаления
-
ARN очереди:
- Используется в RedrivePolicy
- Может быть получен через GetQueueAttributes с параметром QueueArn
Audit Trails (Аудитные логи)
В Audit Trails для Yandex Message Queue поддерживается отслеживание событий уровня конфигурации (Control Plane).
Формат event_type
yandex.cloud.audit.ymq.<имя_события>
События уровня конфигурации
| Имя события | Описание |
|---|---|
| CreateMessageQueue | Создание очереди сообщений |
| DeleteMessageQueue | Удаление очереди сообщений |
| UpdateMessageQueue | Изменение очереди сообщений |
Monitoring (Метрики)
В Yandex Monitoring поддерживаются метрики сервиса Message Queue.
Общая метка для всех метрик: service=message-queue
Метрики HTTP API
| Имя метрики | Тип, единицы измерения | Описание | Метка |
|---|---|---|---|
| api.http.errors_count_per_second | DGAUGE, ошибки/с | Количество ошибок выполнения запросов в секунду | method — метод API |
| api.http.request_duration_milliseconds | DGAUGE, миллисекунды | Продолжительность выполнения запросов | method — метод API |
| api.http.requests_count_per_second | DGAUGE, запросы/с | Количество обработанных запросов в секунду | method — метод API |
Метрики сервиса
| Имя метрики | Тип, единицы измерения | Описание |
|---|---|---|
| queue.messages.client_processing_duration_milliseconds | DGAUGE, миллисекунды | Время обработки сообщений получателем |
| queue.messages.deduplicated_count_per_second | DGAUGE, сообщения/с | Частота дедупликации сообщений |
| queue.messages.deleted_count_per_second | DGAUGE, сообщения/с | Частота удаления сообщений из очереди |
| queue.messages.empty_receive_attempts_count_per_second | DGAUGE, попытки/с | Кол-во попыток получения пустого сообщения в сек |
| queue.messages.inflight_count | DGAUGE, штуки | Кол-во сообщений в обработке (активных) |
| queue.messages.oldest_age_milliseconds | DGAUGE, секунды | Время хранения наиболее раннего сообщения в очереди |
| queue.messages.purged_count_per_second | DGAUGE, сообщения/с | Частота удаления сообщений методом PurgeQueue |
| queue.messages.receive_attempts_count_rate | DGAUGE, штуки | Количество попыток получения сообщений из очереди |
| queue.messages.received_bytes_per_second | DGAUGE, байты/с | Общий размер полученных сообщений в сек |
| queue.messages.received_count_per_second | DGAUGE, сообщения/с | Количество полученных сообщений в сек |
| queue.messages.request_timeouts_count_per_second | DGAUGE, ошибки/с | Кол-во ошибок выполнения запросов ReceiveMessage |
| queue.messages.reside_duration_milliseconds | DGAUGE, миллисекунды | Время обработки сообщений в очереди |
| queue.messages.sent_bytes_per_second | DGAUGE, байты/с | Общий размер отправленных сообщений в сек |
| queue.messages.sent_count_per_second | DGAUGE, сообщения/с | Количество отправленных сообщений в сек |
| queue.messages.stored_count | DGAUGE, штуки | Количество сообщений в очереди в текущий момент |
Часто задаваемые вопросы
Ограничения и лимиты
Q: Что означает ошибка «Cannot create queue: Too many queues»?
A: Достигнут лимит на максимальное количество очередей. Для увеличения лимита обратитесь в техническую поддержку с указанием:
- Идентификателя облака
- Нужного количества очередей
- Назначения (зачем требуется такое количество)
Q: Какой максимальный размер сообщения?
A: Максимальный размер сообщения — 256 КБ. О других ограничениях см. в разделе Квоты и лимиты.
Доступ и аутентификация
Q: Мне нужна регистрация в Amazon для использования AWS CLI с Message Queue?
A: Нет, AWS CLI можно использовать без регистрации и ключей AWS. Подробнее см. раздел Инструменты.
Q: Какой ключ доступа требуется для работы с Message Queue?
A: Требуется статический ключ доступа. Создайте его в консоли облака.
Q: Что вводить в поле Default output format при настройке AWS CLI?
A: Оставьте это поле пустым. Укажите только идентификатор ключа и секретный ключ.
Операция и обслуживание
Q: Какой SLA для Message Queue?
A: Message Queue имеет SLA 99,90% на доступность сервиса.
Q: Могу ли я мониторить Message Queue через Prometheus?
A: Да, можно экспортировать метрики в Prometheus и получить список метрик для различных объектов.
Q: Почему все мои сообщения висят в очереди со статусом «В обработке» продолжительное время?
A: Это может быть связано с большим таймаутом видимости в настройках очереди. VisibilityTimeout — это время, на которое сообщение скрывается из очереди после чтения.
Обработка сообщений
Q: Как удалить сообщение и его дубль из очереди?
A: Дубликаты сообщений не записываются в течение 5 минут. Если прошло 5 минут, дубликат удаляется по его собственному ReceiptHandle. Дубли при чтении указывают на то, что сервис не успел удалить сообщение по истечении taймаута видимости — продлите таймаут.
Диагностикаи логи
Q: Могу ли я получить логи своей работы в сервисах?
A: Да, обратитесь в техническую поддержку для получения информации о работе с вашими ресурсами из логов сервисов Yandex Cloud.