gcpubsub - Создание и удаление тем/подписок, публикация и получение сообщений в PubSub
Новая версия 2.3.
Описание
- Создание и удаление тем/подписок, публикация и получение сообщений в PubSub. См. https://cloud.google.com/pubsub/docs для обзора.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- 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. Требуется только имя, а не полный путь. |
Примечания
Примечание
- Извлечение из подписки происходит до публикации. Вы не можете публиковать и извлекать в одной задаче.
Примеры
# (Message will be pushed; there is no check to see if the message was pushed before
- name: Create a topic and publish a message to it
gcpubsub:
topic: ansible-topic-example
state: present
# Subscriptions associated with topic are not deleted.
- name: Delete Topic
gcpubsub:
topic: ansible-topic-example
state: absent
# Setting absent will keep the messages from being sent
- name: Publish multiple messages, with attributes (key:value available with the message)
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
- name: Create Subscription (pull)
gcpubsub:
topic: ansible-topic-example
subscription:
- name: mysub
state: present
# pull is default, ack_deadline is not required
- name: Create Subscription with ack_deadline and push endpoint
gcpubsub:
topic: ansible-topic-example
subscription:
- name: mysub
ack_deadline: "60"
push_endpoint: http://pushendpoint.example.com
state: present
# Setting push_endpoint to "None" converts subscription to pull.
- name: Subscription change from push to pull
gcpubsub:
topic: ansible-topic-example
subscription:
name: mysub
push_endpoint: "None"
### Topic will not be deleted
- name: Delete subscription
gcpubsub:
topic: ansible-topic-example
subscription:
- name: mysub
state: absent
# only pull keyword is required.
- name: Pull messages from subscription
gcpubsub:
topic: ansible-topic-example
subscription:
name: ansible-topic-example-sub
pull:
message_ack: yes
max_messages: "100"
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| publish список | Только при указании | Список словарей, описывающих сообщения и атрибуты, которые будут опубликованы. Словарь в формате сообщение(строка):атрибуты(словарь). Требуется только сообщение. Пример: publish: ['message': 'мое сообщение', attributes: {'key1': 'value1'}] |
| pulled_messages список | Только при указании subscription.pull | список словарей, содержащих информацию о сообщении. Поля: ack_id, attributes, data, message_id. Пример: [{'ack_id': 'XkASTCcYREl...', 'attributes': {'key1': 'val1', '...': None}, 'data': 'это сообщение 1', 'message_id': '49107464153705'}, '..'] |
| state строка | Всегда | Состояние темы или подписки. Значение будет либо 'отсутствует', либо 'наличие'. Пример: наличие |
| subscription строка | При указании полей подписки | Имя подписки. Пример: mysubscription |
| topic строка | Всегда | Имя темы. Пример: mytopic |
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.
Техническое сопровождение
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. См. Техническое сопровождение модулей для получения дополнительной информации.
Список других модулей, которые также поддерживаются сообществом Ansible, см. здесь.
Автор
- Том Мелендес (@supertom) <tom@supertom.com>
Подсказка
Если вы заметите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.6/modules/gcpubsub_module.html