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