Прием и удаление сообщений
Отправленные в очередь Message Queue сообщения получают потребители — компоненты распределенных приложений. После приема и обработки сообщений их следует удалять из очереди.
-
Установите и настройте AWS CLI.
-
Создайте очередь сообщений и отправьте в нее тестовое сообщение.
-
Примите отправленное ранее сообщение:
aws sqs receive-message \ --queue-url <URL_очереди> \ --endpoint <эндпоинт>
Где:
--queue-url
— URL очереди, из которой нужно получить сообщение.--endpoint
— эндпоинт в значенииhttps://message-queue.api.cloud.yandex.net/
.
Результат:
{ "Messages": [ { "MessageId": "948de7-9ec8d787-c*******-*", "ReceiptHandle": "EAEggbj********", "MD5OfBody": "ed076287532e86365e841e92********", "Body": "Hello World", "Attributes": { "ApproximateFirstReceiveTimestamp": "15459********", "ApproximateReceiveCount": "1", "SentTimestamp": "15459********", "SenderId": "abcdefkbh72is78********" } } ] }
Сохраните значение параметра
ReceiptHandle
, оно понадобится позднее.Примечание
Если в очереди нет сообщений, команда
aws sqs receive-message
завершится без текстового вывода в терминал. -
Для удаления сообщения из очереди используйте идентификатор получения — значение параметра
ReceiptHandle
, полученного вместе с сообщением.Удалите полученное сообщение из очереди:
aws sqs delete-message \ --queue-url <URL_очереди> \ --endpoint <эндпоинт> \ --receipt-handle <идентификатор_получения>
Где:
--queue-url
— URL очереди, из которой нужно удалить сообщение.--endpoint
— эндпоинт в значенииhttps://message-queue.api.cloud.yandex.net/
.--receipt-handle
— сохраненный ранее идентификатор получения сообщенияReceiptHandle
.
Успешное выполнение команды удаления не сопровождается текстовым выводом в терминал. Чтобы убедиться в удалении сообщения:
- В консоли управления
выберите каталог, в котором создана очередь сообщений. - В списке сервисов выберите Message Queue.
- Текущее количество сообщений в очереди указано в поле Сообщений в очереди.