キューから複数のメッセージを削除します。
認可
デフォルトでは、Alibaba Cloud アカウントのみがこの操作を呼び出すことができます。RAM ユーザーは、関連する権限を付与された後にのみ、この操作を呼び出すことができます。次の表に、この操作の権限情報を示します。詳細については、「権限ポリシーと例」をご参照ください。
項目 | 値 |
API オペレーション | BatchDeleteMessage |
アクション | mns:BatchDeleteMessage |
リソース | acs:mns:$region:$accountid:/queues/$queueName/messages |
説明
この API を呼び出して、キューから複数のメッセージを削除できます。一度に削除できるメッセージは最大 16 件です。削除する各メッセージのレシートハンドルをリクエストに含める必要があります。
効率を高めるため、この API をBatchReceiveMessage API と組み合わせて使用することを推奨します。複数のメッセージを削除するリクエストには複数のサブリクエストが含まれ、一部のサブリクエストが失敗する場合があります。すべてのサブリクエストが成功した場合にのみ、HTTP ステータスコード 204 が返されます。一部のサブリクエストが失敗した場合は、各レスポンス内のエラーメッセージを確認する必要があります。
リクエスト
リクエストは次のパートで構成されています。
リクエスト行
DELETE /queues/$queueName/messages HTTP/1.1オペレーション固有のリクエストヘッダー
なし。
リクエストボディ
リクエストボディは XML 形式です。削除する各メッセージのレシートハンドルをリクエストに含める必要があります。
レスポンス
レスポンスは次のパートで構成されています。
HTTPステータスコード
HTTP/1.1 204 NoContentオペレーション固有のレスポンスヘッダー
なし。
レスポンスボディ
なし。
例
リクエスト例
DELETE /queues/$queueName/messages HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Wed, 28 May 2012 22:32:00 GMT
x-mns-version: 2015-06-06
Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXA****
<?xml version="1.0" encoding="UTF-8"?>
<ReceiptHandles xmlns="http://mns.aliyuncs.com/doc/v1/">
<ReceiptHandle>1-ODU4OTkzNDU5My0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
<ReceiptHandle>1-ODU4OTkzNDU5NC0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
<ReceiptHandle>1-ODU4OTkzNDU5NS0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
</ReceiptHandles> レスポンス例
すべてのメッセージの削除に成功した場合のレスポンス例
HTTP/1.1 204 No Content x-mns-request-id:512B2A634403E52B1956**** x-mns-version: 2015-06-06一部のメッセージの削除に失敗した場合のレスポンス例
HTTP/1.1 400 Connection:close Content-Type=text/xml;charset=utf-8 Content-Length:500 x-mns-request-id:512B2A634403E52B1956**** x-mns-version: 2015-06-06 <?xml version="1.0" encoding="UTF-8"?> <Errors xmlns="http://mns.aliyuncs.com/doc/v1/"> <Error> <ErrorCode>MessageNotExist</ErrorCode> <ErrorMessage>Message not exist.</ErrorMessage> <ReceiptHandle>1-ODU4OTkzNDU5My0xNDM1MTk3NjAwLTItNg==</ReceiptHandle> </Error> <Error> <ErrorCode>MessageNotExist</ErrorCode> <ErrorMessage>Message not exist.</ErrorMessage> <ReceiptHandle>1-ODU4OTkzNDU5NC0xNDM1MTk3NjAwLTItNg==</ReceiptHandle> </Error> </Errors>
エラーコード
| エラーコード | HTTP ステータスコード | エラーメッセージ | 説明 |
|---|---|---|---|
| QueueNotExist | 404 | The queue name you provided does not exist. | 指定されたキューは存在しません。リクエスト URI のキュー名を確認してください。 |
| InvalidArgument | 400 | The value of Element should between Low and High seconds/bytes. | パラメーター値が有効範囲外です。リクエストパラメーターが許容される値の範囲内にあるか確認してください。 |
| ReceiptHandleError | 400 | The receipt handle you provided is not valid. | 受信ハンドルは、NextVisibleTime を過ぎたか、古いハンドルが使用されたため、期限切れになっています。メッセージを再度消費して、新しい受信ハンドルを取得してください。 |