community.rabbitmq.rabbitmq – Получение сообщений из очереди RabbitMQ AMQP/AMQPS.
Примечание
Этот плагин входит в коллекцию community.rabbitmq (версия 1.0.1).
Для его установки используйте: ansible-galaxy collection install community.rabbitmq.
Для использования в playbook укажите: 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/rabbitmq/rabbitmq_lookup.html