ReceiveMessage
In this article:
ReceiveMessage#
Description#
Получает одно или несколько сообщений из указанной очереди. Поддерживает режим длительного опроса.
Request Syntax#
POST / HTTP/1.1
Content-type: application/json
{
"QueueUrl": "string",
"MaxNumberOfMessages": integer,
"MessageSystemAttributeNames": [
"string"
],
"VisibilityTimeout": integer,
"WaitTimeSeconds": integer
}
Request Parameters#
Необходимые параметры#
QueueUrl — URL очереди, из которой запрашиваются сообщения.
Тип: String
Необходимо: Да
Опциональные параметры#
MaxNumberOfMessages — Максимальное количество получаемых сообщений.
Тип: Integer
Необходимо: Нет
Диапазон: От 1 до 10
MessageSystemAttributeNames — Список системных атрибутов запрашиваемого сообщения (см. Поддерживаемые атрибуты).
Тип: Array of strings
Необходимо: Нет
VisibilityTimeout — Время в секундах, в течение которого полученные сообщения остаются невидимыми для других получателей. Если не указано, используется значение атрибута очереди VisibilityTimeout.
Тип: Integer
Необходимо: Нет
Диапазон: От 0 до 43200 (12 часов)
WaitTimeSeconds — Время ожидания в секундах для режима длительного опроса. Если не указано, используется значение атрибута очереди ReceiveMessageWaitTimeSeconds.
Тип: Integer
Необходимо: Нет
Диапазон: От 0 до 20
Поддерживаемые атрибуты#
All — Все доступные системные атрибуты сообщения.
ApproximateFirstReceiveTimestamp — Время первого получения сообщения из очереди в формате Unix epoch (в миллисекундах).
ApproximateReceiveCount — Сколько раз сообщение было получено из очереди, но не удалено.
SenderId — Идентификатор отправителя сообщения.
SentTimestamp — Время отправки сообщения в формате Unix epoch (в миллисекундах).
Response Syntax#
HTTP/1.1 200
Content-type: application/json
{
"Messages": [
{
"Attributes": {
"string": "string"
},
"Body": "string",
"MD5OfBody": "string",
"MessageId": "string",
"ReceiptHandle": "string"
}
]
}
Response Elements#
Messages — Список полученных сообщений.
Тип: Список объектов Message
Errors#
QueueDoesNotExist — Указанная очередь не существует.
Examples#
boto3
import boto3
session = boto3.Session(
aws_access_key_id="<AWS_ACCESS_KEY_ID>",
aws_secret_access_key="<AWS_SECRET_ACCESS_KEY>",
region_name="",
)
sqs_client = session.client(
'sqs',
endpoint_url='https://sqs.ru-msk.k2.cloud/'
)
response = sqs_client.receive_message(
QueueUrl='https://sqs.ru-msk.k2.cloud/123456789012/my-queue',
MaxNumberOfMessages=10
)
for message in response.get('Messages', []):
print(f"Message ID: {message['MessageId']}")
print(f"Body: {message['Body']}")
print(f"Receipt Handle: {message['ReceiptHandle']}")
boto3 - Long Polling
import boto3
session = boto3.Session(
aws_access_key_id="<AWS_ACCESS_KEY_ID>",
aws_secret_access_key="<AWS_SECRET_ACCESS_KEY>",
region_name="",
)
sqs_client = session.client(
'sqs',
endpoint_url='https://sqs.ru-msk.k2.cloud/'
)
response = sqs_client.receive_message(
QueueUrl='https://sqs.ru-msk.k2.cloud/123456789012/my-queue',
MaxNumberOfMessages=10,
WaitTimeSeconds=20,
MessageSystemAttributeNames=['All']
)
for message in response.get('Messages', []):
print(message)
aws-cli
aws sqs --endpoint https://sqs.ru-msk.k2.cloud/ receive-message \\
--queue-url https://sqs.ru-msk.k2.cloud/123456789012/my-queue \\
--max-number-of-messages 10 \\
--wait-time-seconds 20