community.rabbitmq.rabbitmq – Получение сообщений из очереди RabbitMQ AMQP/AMQPS.
Примечание
Этот плагин входит в состав коллекции community.rabbitmq (версия 1.0.1).
Для его установки используйте: ansible-galaxy collection install community.rabbitmq.
Для использования в книге задач укажите: community.rabbitmq.rabbitmq.
Краткое описание
- Этот поиск использует базовый метод получения для извлечения всех или ограниченного числа
count, сообщений из очереди RabbitMQ.
Требования
Ниже перечислены требования к локальному контроллеру узлу, на котором выполняется этот поиск.
- Пакет python pika https://pypi.org/project/pika/.
Параметры
| Параметр | Варианты/Значения по умолчанию | Настройка | Комментарии |
|---|---|---|---|
| count
строка
|
Количество сообщений для извлечения из очереди.
Если не задано, по умолчанию извлекаются все сообщения из очереди. |
||
| queue
строка / обязательно
|
Очередь для извлечения сообщений. |
||
| url
строка / обязательно
|
Строка подключения URI для подключения к серверу RabbitMQ AMQP/AMQPS.
Для получения дополнительной информации обратитесь к спецификации URI https://www.rabbitmq.com/uri-spec.html. |
Примечания
Примечание
- Этот поиск реализует BlockingChannel.basic_get для получения сообщений с сервера RabbitMQ.
- После получения сообщения с сервера, получение сообщения подтверждается, и сообщение на сервере удаляется.
- Pika — это чисто-Python реализация протокола AMQP 0-9-1, которая старается сохранять достаточную независимость от базовой библиотеки поддержки сети.
- Дополнительную информацию о pika можно найти по адресу https://pika.readthedocs.io/en/stable/.
- Этот плагин протестирован с RabbitMQ. Другие серверы, основанные на протоколе AMQP 0.9.1, могут работать, но не протестированы/не гарантированы.
- Присвоение возвращаемых сообщений переменной в
varsможет привести к непредсказуемым результатам, так как поиск вычисляется каждый раз при обращении к переменной. - В настоящее время этот плагин обрабатывает только текстовые сообщения из очереди. При получении двоичных данных могут возникнуть непредсказуемые результаты.
Примеры
- name: Get all messages off a queue
debug:
msg: "{{ lookup('community.rabbitmq.rabbitmq', url='amqp://guest:guest@192.168.0.10:5672/%2F', queue='hello') }}"
# If you are intending on using the returned messages as a variable in more than
# one task (eg. debug, template), it is recommended to set_fact.
- name: Get 2 messages off a queue and set a fact for re-use
set_fact:
messages: "{{ lookup('community.rabbitmq.rabbiotmq', url='amqp://guest:guest@192.168.0.10:5672/%2F', queue='hello', count=2) }}"
- name: Dump out contents of the messages
debug:
var: messages
Возвращаемые значения
Общие возвращаемые значения описаны в здесь, следующие поля уникальны для этого поиска:
| Ключ | Возвращено | Описание | |
|---|---|---|---|
| _list
список / элементы=строка
|
успех | Список словарей с ключами и значениями из очереди. |
|
| content_type
строка
|
успех | Тип содержимого сообщения в очереди. |
|
| delivery_mode
строка
|
успех | Режим доставки сообщения в очереди. |
|
| delivery_tag
строка
|
успех | Тег доставки сообщения в очереди. |
|
| exchange
строка
|
успех | Обмен, с которого пришло сообщение. |
|
| headers
словарь
|
успех | Заголовки сообщения, возвращенного из очереди. |
|
| json
словарь
|
успех | Если application/json указан в content_type, json будет загружен в переменные. |
|
| message_count
строка
|
успех | Количество сообщений в очереди. |
|
| msg
строка
|
успех | Содержимое сообщения. |
|
| redelivered
булево
|
успех | Флаг повторной доставки. True, если сообщение было доставлено ранее. |
|
| routing_key
строка
|
успех | Ключ маршрутизации сообщения в очереди. |
|
Авторы
- John Imison <@Im0>
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/rabbitmq/rabbitmq_lookup.html