Spec-Zone.ru › Ansible 2.11

community.google.gcpubsub – Создание и удаление тем/подписок, публикация и получение сообщений в PubSub

Примечание

Этот плагин входит в коллекцию community.google (версия 1.0.0).

Для его установки используйте: ansible-galaxy collection install community.google.

Чтобы использовать его в книге задач, укажите: community.google.gcpubsub.

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Обзор

  • Создание и удаление тем/подписок, публикация и получение сообщений в PubSub. См. https://cloud.google.com/pubsub/docs для общего обзора.

Требования

Ниже перечислены требования, которые должны быть выполнены на хосте, на котором выполняется данный модуль.

  • google-auth >= 0.5.0
  • google-cloud-pubsub >= 0.22.0

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
credentials_file
строка
путь к JSON-файлу, связанному с электронным адресом учетной записи службы
project_id
строка
ваш идентификатор проекта GCE
publish
список / элементы=строка
Список словарей, описывающих сообщения и атрибуты, которые нужно опубликовать. Словарь имеет формат message(строка):attributes(словарь). Требуется только сообщение.
service_account_email
строка
электронный адрес учетной записи службы
state
строка
    Варианты:
  • absent
  • present ←
Состояние темы или очереди.
Применяется к самому детализированному ресурсу.
Если указана подписка, она удаляется.
Если указана только тема, удаляется она.
ПРИМЕЧАНИЕ - Тема может быть удалена без предварительного удаления подписки.
subscription
словарь
Словарь, содержащий имя подписки, связанной с темой (обязательно), а также необязательные ack_deadline, push_endpoint и pull. Для извлечения сообщений из подписки доступны подполя message_ack (логическое значение), max_messages (целое число) и return_immediate. См. поля name, push_endpoint и ack_deadline для получения дополнительной информации.
ack_deadline
строка
Подполе подписки. Необязательно. Срок ожидания по умолчанию для подписок, чтобы подтвердить (ACK) сообщение, прежде чем оно будет повторно отправлено. Смотрите примеры.
name
строка
Подполе подписки. Обязательно, если указана подписка. См. примеры.
pull
строка
Подполе подписки. Необязательно. Если указано, сообщения будут извлекаться из темы через указанное имя подписки. max_messages (целое число; значение по умолчанию None; максимальное количество сообщений для извлечения), message_ack (логическое значение; значение по умолчанию False; подтверждение сообщения) и return_immediately (логическое значение; значение по умолчанию True, не ждать появления сообщений). Если сообщения подтверждены, changed устанавливается в True, в противном случае в False.
push_endpoint
строка
Подполе подписки. Необязательно. Если указано, сообщение будет отправлено на конечную точку. См. https://cloud.google.com/pubsub/docs/advanced#push_endpoints для получения дополнительной информации.
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
  community.google.gcpubsub:
    topic: ansible-topic-example
    state: present

# Subscriptions associated with topic are not deleted.
- name: Delete Topic
  community.google.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)
  community.google.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)
  community.google.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
  community.google.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
  community.google.gcpubsub:
    topic: ansible-topic-example
    subscription:
      name: mysub
      push_endpoint: "None"

### Topic will not be deleted
- name: Delete subscription
  community.google.gcpubsub:
    topic: ansible-topic-example
    subscription:
    - name: mysub
    state: absent

# only pull keyword is required.
- name: Pull messages from subscription
  community.google.gcpubsub:
    topic: ansible-topic-example
    subscription:
      name: ansible-topic-example-sub
      pull:
        message_ack: yes
        max_messages: "100"

Возвращаемые значения

Общие возвращаемые значения описаны в разделе, следующие поля уникальны для этого модуля:

Ключ Возвращаемое значение Описание
publish
список / элементы=строка
Только при указании
Список словарей, описывающих сообщения и атрибуты, которые нужно опубликовать. Словарь имеет формат message(строка):attributes(словарь). Требуется только сообщение.

Пример:
publish: ['message': 'моё сообщение', attributes: {'key1': 'value1'}]
pulled_messages
список / элементы=строка
Только при указании subscription.pull
Список словарей, содержащих информацию о сообщении. Поля: ack_id, attributes, data, message_id.

Пример:
[{'ack_id': 'XkASTCcYREl...', 'attributes': {'...': None, 'key1': 'val1'}, 'data': 'это сообщение 1', 'message_id': '49107464153705'}, '..']
state
строка
Всегда
Состояние темы или подписки. Значение будет либо 'absent', либо 'present'.

Пример:
present
subscription
строка
При указании полей подписки
Имя подписки.

Пример:
mysubscription
topic
строка
Всегда
Имя темы.

Пример:
mytopic


Авторы

  • Tom Melendez (@supertom) <tom@supertom.com>

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/google/gcpubsub_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API