community.rabbitmq.rabbitmq lookup – 从 AMQP/AMQPS RabbitMQ 队列中检索消息。
注意
此 lookup 插件是 community.rabbitmq 集合(版本 1.3.0)的一部分。
如果您正在使用 ansible
软件包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.rabbitmq
。您需要其他要求才能使用此 lookup 插件,有关详细信息,请参阅 要求。
要在 playbook 中使用它,请指定:community.rabbitmq.rabbitmq
。
概要
此 lookup 使用基本 get 从 RabbitMQ 队列中检索所有消息或有限数量的
count
消息。
要求
以下要求是在执行此 lookup 的本地控制器节点上所需的。
python pika 包 https://pypi.ac.cn/project/pika/。
关键字参数
这描述了 lookup 的关键字参数。这些是在以下示例中的值 key1=value1
、key2=value2
等:lookup('community.rabbitmq.rabbitmq', key1=value1, key2=value2, ...)
和 query('community.rabbitmq.rabbitmq', key1=value1, key2=value2, ...)
参数 |
注释 |
---|---|
要从队列中收集的消息数量。 如果未设置,则默认为从队列中检索所有消息。 |
|
要从中获取消息的队列。 |
|
连接到 AMQP/AMQPS RabbitMQ 服务器的 URI 连接字符串。 有关更多信息,请参阅 URI 规范 https://rabbitmq.cn/uri-spec.html。 |
备注
注意
此 lookup 实现 BlockingChannel.basic_get 以从 RabbitMQ 服务器获取消息。
从服务器检索消息后,将确认消息的接收,并删除服务器上的消息。
Pika 是 AMQP 0-9-1 协议的纯 Python 实现,它试图保持相当独立于底层网络支持库。
有关 pika 的更多信息,请访问 https://pika.readthedocs.io/en/stable/。
此插件已针对 RabbitMQ 进行了测试。其他基于 AMQP 0.9.1 协议的服务器可能有效,但未经测试/保证。
将返回的消息分配给
vars
下的变量可能会导致意外结果,因为每次引用变量时都会评估 lookup。目前,此插件仅处理来自队列的基于文本的消息。检索二进制数据时可能会出现意外结果。
示例
- name: Get all messages off a queue
debug:
msg: "{{ lookup('community.rabbitmq.rabbitmq', url='amqp://guest:[email protected]: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:[email protected]:5672/%2F', queue='hello', count=2) }}"
- name: Dump out contents of the messages
debug:
var: messages
返回值
键 |
描述 |
---|---|
包含来自队列的键和值的字典列表。 返回:成功 |
|
队列中消息的 content_type。 返回:成功 |
|
队列中消息的 delivery_mode。 返回:成功 |
|
队列中消息的 delivery_tag。 返回:成功 |
|
消息来自的交换机。 返回:成功 |
|
从队列返回的消息的标头。 返回:成功 |
|
如果在 content_type 中指定 application/json,则 json 将加载到变量中。 返回:成功 |
|
队列中消息的 message_count。 返回:成功 |
|
消息的内容。 返回:成功 |
|
redelivered 标志。如果消息之前已传递,则为 True。 返回:成功 |
|
队列中消息的 routing_key。 返回:成功 |