DeleteMessageBatch
In this article:
DeleteMessageBatch#
Description#
Удаляет до 10 сообщений из указанной очереди за один запрос.
Request Syntax#
POST / HTTP/1.1
Content-type: application/json
{
"QueueUrl": "string",
"Entries": [
{
"Id": "string",
"ReceiptHandle": "string"
}
]
}
Request Parameters#
Entries — Список удаляемых сообщений.
Тип: Список объектов DeleteMessageBatchRequestEntry
Необходимо: Да
Ограничения: До 10 записей
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 — Список сообщений, которые не удалось удалить.
Тип: Список объектов BatchResultErrorEntry
Successful — Список успешно удалённых сообщений.
Тип: Список объектов DeleteMessageBatchResultEntry
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...