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 的本地控制器节点上所需的。

关键字参数

这描述了 lookup 的关键字参数。这些是在以下示例中的值 key1=value1key2=value2 等:lookup('community.rabbitmq.rabbitmq', key1=value1, key2=value2, ...)query('community.rabbitmq.rabbitmq', key1=value1, key2=value2, ...)

参数

注释

count

字符串

要从队列中收集的消息数量。

如果未设置,则默认为从队列中检索所有消息。

queue

字符串 / 必需

要从中获取消息的队列。

url

字符串 / 必需

连接到 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

字符串

队列中消息的 content_type。

返回:成功

delivery_mode

字符串

队列中消息的 delivery_mode。

返回:成功

delivery_tag

字符串

队列中消息的 delivery_tag。

返回:成功

exchange

字符串

消息来自的交换机。

返回:成功

headers

字典

从队列返回的消息的标头。

返回:成功

json

字典

如果在 content_type 中指定 application/json,则 json 将加载到变量中。

返回:成功

message_count

字符串

队列中消息的 message_count。

返回:成功

msg

字符串

消息的内容。

返回:成功

redelivered

布尔值

redelivered 标志。如果消息之前已传递,则为 True。

返回:成功

routing_key

字符串

队列中消息的 routing_key。

返回:成功

作者

  • John Imison (@Im0)

提示

每个条目类型的配置项具有从低到高的优先级顺序。例如,列表中较低的变量将覆盖较高的变量。