gcpubsub - Создание и удаление тем/подписок, публикация и получение сообщений в PubSub.
Новое в версии 2.3.
- Обзор
- Требования (к хосту, на котором выполняется модуль)
- Параметры
- Примеры
- Возвращаемые значения
- Примечания
Обзор
- Создание и удаление тем/подписок, публикация и получение сообщений в PubSub. См. https://cloud.google.com/pubsub/docs для обзора.
Требования (к хосту, на котором выполняется модуль)
- python >= 2.6
- google-auth >= 0.5.0
- google-cloud-pubsub >= 0.22.0
Параметры
| параметр | обязательно | значение по умолчанию | возможные значения | комментарии |
|---|---|---|---|---|
| ack_deadline | нет | Подполе подписки. Необязательно. Срок ожидания подтверждения подписки для сообщения, прежде чем оно будет повторно отправлено. См. примеры. | ||
| name | нет | Подполе подписки. Требуется, если указана подписка. См. примеры. | ||
| publish | нет | Список словарей, описывающих сообщения и их атрибуты для публикации. Словарь в формате сообщение(строка): атрибуты(словарь). Требуется только сообщение. | ||
| pull | нет | Подполе подписки. Необязательно. Если указано, сообщения будут извлекаться из темы через указанную подписку. max_messages (целое число; значение по умолчанию None; максимальное количество сообщений для извлечения), message_ack (булево; значение по умолчанию False; подтверждать сообщение) и return_immediately (булево; значение по умолчанию True, не ждать появления сообщений). Если сообщения подтверждены, changed устанавливается в True, в противном случае — в False. | ||
| push_endpoint | нет | Подполе подписки. Необязательно. Если указано, сообщение будет отправлено на конечную точку. См. https://cloud.google.com/pubsub/docs/advanced#push_endpoints для получения дополнительной информации. | ||
| state | нет | есть | Состояние темы или очереди (отсутствует, присутствует). Применяется к самому мелкому ресурсу. Удаляет самый мелкий ресурс. Если указана подписка, она удаляется. Если указана только тема, удаляется она. Обратите внимание, что тему можно удалить, не удаляя предварительно подписку. | |
| subscription | нет | Словарь, содержащий имя подписки, связанной с темой (обязательно), а также необязательные ack_deadline, push_endpoint и pull. Для извлечения из подписки доступны message_ack (булево), max_messages (целое число) и return_immediate в качестве подполей. См. подполя name, push_endpoint и ack_deadline для получения дополнительной информации. | ||
| topic | да | Имя темы GCP pubsub. Требуется только имя, а не полный путь. |
Примеры
# Create a topic and publish a message to it
# (Message will be pushed; there is no check to see if the message was pushed before
# Topics:
## Create Topic
gcpubsub:
topic: ansible-topic-example
state: present
## Delete Topic
### Subscriptions associated with topic are not deleted.
gcpubsub:
topic: ansible-topic-example
state: absent
## Messages: publish multiple messages, with attributes (key:value available with the message)
### setting absent will keep the messages from being sent
gcpubsub:
topic: "{{ topic_name }}"
state: present
publish:
- message: "this is message 1"
attributes:
mykey1: myvalue
mykey2: myvalu2
mykey3: myvalue3
- message: "this is message 2"
attributes:
server: prod
sla: "99.9999"
owner: fred
# Subscriptions
## Create Subscription (pull)
gcpubsub:
topic: ansible-topic-example
subscription:
- name: mysub
state: present
## Create Subscription with ack_deadline and push endpoint
### pull is default, ack_deadline is not required
gcpubsub:
topic: ansible-topic-example
subscription:
- name: mysub
ack_deadline: "60"
push_endpoint: http://pushendpoint.example.com
state: present
## Subscription change from push to pull
### setting push_endpoint to "None" converts subscription to pull.
gcpubsub:
topic: ansible-topic-example
subscription:
name: mysub
push_endpoint: "None"
## Delete subscription
### Topic will not be deleted
gcpubsub:
topic: ansible-topic-example
subscription:
- name: mysub
state: absent
## Pull messages from subscription
### only pull keyword is required.
gcpubsub:
topic: ansible-topic-example
subscription:
name: ansible-topic-example-sub
pull:
message_ack: yes
max_messages: "100"
Возвращаемые значения
Общие возвращаемые значения документированы здесь Возвращаемые значения, следующие — поля, уникальные для этого модуля:
| название | описание | возвращается | тип | пример |
|---|---|---|---|---|
| publish | Список словарей, описывающих сообщения и их атрибуты для публикации. Словарь в формате сообщение(строка): атрибуты(словарь). Требуется только сообщение. | Только при указании | список | publish: ['message': 'мое сообщение', attributes: {'ключ1': 'значение1'}] |
| pulled_messages | Список словарей, содержащих информацию о сообщении. Поля — ack_id, атрибуты, данные, message_id. | Только при указании subscription.pull | список | [{'attributes': {'...': None, 'ключ1': 'значение1'}, 'ack_id': 'XkASTCcYREl...', 'data': 'это сообщение 1', 'message_id': '49107464153705'}, '..'] |
| state | Состояние темы или подписки. Значение будет либо 'отсутствует', либо 'присутствует'. | Всегда | строка | присутствует |
| subscription | Имя подписки. | При указании полей подписки | строка | мояподписка |
| topic | Имя темы. | Всегда | строка | моятема |
Примечания
Примечание
- Извлечение из подписки происходит до публикации. Нельзя публиковать и извлекать в одном задании.
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантируется обратной совместимости.
Для получения помощи в разработке модулей, если вы так решите, пожалуйста, ознакомьтесь с Информацией сообщества и участием в разработке, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/gcpubsub_module.html