DeleteMessageBatch#

Description#

Удаляет до 10 сообщений из указанной очереди за один запрос.

Request Syntax#

POST / HTTP/1.1
Content-type: application/json

{
    "QueueUrl": "string",
    "Entries": [
        {
            "Id": "string",
            "ReceiptHandle": "string"
        }
    ]
}

Request Parameters#

  • Entries — Список удаляемых сообщений.

  • QueueUrl — URL очереди, из которой удаляются сообщения.

    • Тип: String

    • Необходимо: Да

Response Syntax#

HTTP/1.1 200
Content-type: application/json

{
    "Successful": [
        {
            "Id": "string"
        }
    ],
    "Failed": [
        {
            "Id": "string",
            "SenderFault": boolean,
            "Code": "string",
            "Message": "string"
        }
    ]
}

Response Elements#

  • Failed — Список сообщений, которые не удалось удалить.

  • Successful — Список успешно удалённых сообщений.

Errors#

  • BatchEntryIdsNotDistinct — Идентификаторы записей не уникальны.

  • EmptyBatchRequest — Пакетный запрос пуст.

  • TooManyEntriesInBatchRequest — Слишком много записей в пакетном запросе (максимум 10).

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
 )

 if 'Messages' in response:
     entries = [
         {
             'Id': str(i),
             'ReceiptHandle': msg['ReceiptHandle']
         }
         for i, msg in enumerate(response['Messages'])
     ]

     # Удалить все сообщения
     result = sqs_client.delete_message_batch(
         QueueUrl='https://sqs.ru-msk.k2.cloud/123456789012/my-queue',
         Entries=entries
     )

     print(f"Successful: {len(result.get('Successful', []))}")
     print(f"Failed: {len(result.get('Failed', []))}")
aws-cli
 aws sqs --endpoint https://sqs.ru-msk.k2.cloud/ delete-message-batch \\
     --queue-url https://sqs.ru-msk.k2.cloud/123456789012/my-queue \\
     --entries Id=1,ReceiptHandle=AQEB... Id=2,ReceiptHandle=AQEB...