Spec-Zone.ru › Ansible 2.10

google.cloud.gcp_pubsub_subscription – Создаёт подписку GCP

Примечание

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

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

Для использования в плейбуке укажите: google.cloud.gcp_pubsub_subscription.

  • Краткое описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Именованный ресурс, представляющий собой поток сообщений с одного конкретного топика, который должен быть доставлен подписывающемуся приложению.

Требования

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

  • python >= 2.6
  • requests >= 2.18.4
  • google-auth >= 1.3.0

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
ack_deadline_seconds
целое число
Это максимальное время после получения сообщения подписчиком, в течение которого подписчик должен подтвердить сообщение. После доставки сообщения, но до истечения срока подтверждения и до подтверждения сообщения, оно считается ожидающим и не будет повторно доставлено в течение этого времени (по принципу наилучших усилий).
Для подписок на основе запросов это значение используется как начальное значение срока подтверждения. Чтобы переопределить это значение для данного сообщения, вызовите subscriptions.modifyAckDeadline с соответствующим ackId, если используете запросы. Минимальный настраиваемый срок составляет 10 секунд. Максимальный настраиваемый срок составляет 600 секунд (10 минут).
Если этот параметр равен 0, используется значение по умолчанию 10 секунд.
Для доставки по методу push это значение также используется для установки таймаута запроса для вызова конечной точки push.
Если подписчик никогда не подтверждает сообщение, система Pub/Sub в конечном итоге повторно доставит сообщение.
auth_kind
строка / обязательно
    Варианты:
  • application
  • machineaccount
  • serviceaccount
Тип используемых учетных данных.
dead_letter_policy
словарь
Политика, определяющая условия для отправки сообщений в мертвую почту в этой подписке. Если dead_letter_policy не задан, отправка в мертвую почту отключена.
Учетная запись службы Google Cloud Pub/Sub, связанная с родительским проектом этой подписки (т. е., service-{номер_проекта}@gcp-sa-pubsub.iam.gserviceaccount.com), должна иметь разрешение на подтверждение (Acknowledge()) сообщений в этой подписке.
dead_letter_topic
строка
Имя темы, в которую должны публиковаться сообщения мертвой почты.
Формат: `projects/{project}/topics/{topic}`.
Учетная запись службы Google Cloud Pub/Sub, связанная с родительским проектом подписки (т. е., service-{номер_проекта}@gcp-sa-pubsub.iam.gserviceaccount.com), должна иметь разрешение на публикацию (Publish()) в эту тему.
Операция завершится ошибкой, если тема не существует.
Пользователи должны убедиться, что к этой теме прикреплена подписка, так как сообщения, опубликованные в тему без подписок, теряются.
max_delivery_attempts
целое число
Максимальное количество попыток доставки сообщения. Значение должно быть между 5 и 100.
Количество попыток доставки определяется как 1 + (сумма количества NACK и количества раз, когда срок подтверждения был превышен для сообщения).
NACK — это любой вызов ModifyAckDeadline с сроком 0. Обратите внимание, что клиентские библиотеки могут автоматически продлевать ack_deadlines.
Этот параметр будет обрабатываться по принципу наилучших усилий.
Если этот параметр равен 0, используется значение по умолчанию 5.
enable_message_ordering
логическое значение
    Варианты:
  • no
  • yes
Если `true`, сообщения, опубликованные с одинаковым orderingKey в PubsubMessage, будут доставлены подписчикам в том порядке, в котором они получены системой Pub/Sub. В противном случае они могут быть доставлены в любом порядке.
env_type
строка
Указывает, в какой среде Ansible выполняется данный модуль.
Это не нужно устанавливать, если вы не знаете, что делаете.
Это влияет только на строку User Agent для любых запросов к API.
expiration_policy
словарь
Политика, определяющая условия истечения срока действия этой подписки.
Подписка считается активной, пока подключенный подписчик успешно потребляет сообщения из подписки или выполняет операции с подпиской. Если expirationPolicy не задан, будет использоваться политика по умолчанию со сроком жизни 31 день. Если она задана, но ttl пустая, ресурс никогда не истекает. Минимальное допустимое значение для expirationPolicy.ttl — 1 день.
ttl
строка / обязательно
Определяет срок действия (time-to-live) для связанного ресурса. Ресурс истекает, если он не активен в течение периода ttl.
Если ttl не задан, связанный ресурс никогда не истекает.
Длительность в секундах с до девятью десятичными знаками, заканчивающимися на 's'.
Пример - "3.5s".
filter
строка
Подписка доставляет только сообщения, соответствующие фильтру. Pub/Sub автоматически подтверждает сообщения, которые не соответствуют фильтру. Вы можете фильтровать сообщения по их атрибутам. Максимальная длина фильтра составляет 256 байт. После создания подписки вы не можете изменить фильтр.
labels
словарь
Набор пар ключ/значение меток, которые нужно назначить этой подписке.
message_retention_duration
строка
По умолчанию:
"604800s"
Сколько времени хранить неопознанные сообщения в очереди подписки с момента публикации сообщения. Если retainAckedMessages равно true, это также настраивает сохранение подтверждённых сообщений и, таким образом, настраивает, как далеко в прошлом можно выполнить subscriptions.seek. По умолчанию 7 дней. Не может быть более 7 дней ("604800s") или менее 10 минут ("600s").
Длительность в секундах с до девятью десятичными знаками, заканчивающимися на 's'. Пример: `"600.5s"`.
name
строка / обязательно
Имя подписки.
project
строка
Проект Google Cloud Platform для использования.
push_config
словарь
Если используется доставка по методу push с этой подпиской, этот параметр используется для ее настройки. Пустой pushConfig означает, что подписчик будет получать и подтверждать сообщения с помощью методов API.
attributes
словарь
Атрибуты конфигурации конечной точки.
Каждая конечная точка имеет набор поддерживаемых API атрибутов, которые могут быть использованы для управления различными аспектами доставки сообщений.
В настоящее время поддерживаемый атрибут — x-goog-version, который можно использовать для изменения формата сообщения, отправленного по методу push. Этот атрибут указывает ожидаемую версию данных конечной точкой. Это определяет структуру отправленного сообщения (т. е. его поля и метаданные). Версия конечной точки основана на версии API Pub/Sub.
Если он отсутствует при вызове subscriptions.create, он будет по умолчанию иметь версию API, использованную для этого вызова. Если он отсутствует при вызове subscriptions.modifyPushConfig, его значение не будет изменено. Вызовы subscriptions.get всегда будут возвращать действительную версию, даже если подписка была создана без этого атрибута.
Возможные значения этого атрибута: - v1beta1: использует формат push, определенный в API Pub/Sub версии v1beta1.
- v1 или v1beta2: использует формат push, определенный в API Pub/Sub версии v1.
oidc_token
словарь
Если указано, Pub/Sub сгенерирует и прикрепит токен OIDC JWT в качестве заголовка Authorization к каждому отправленному по методу push сообщению.
audience
строка
Аудитория, которая будет использоваться при генерации токена OIDC. Поле аудитории JWT идентифицирует получателей, для которых предназначен JWT. Значение аудитории — одна строка, чувствительная к регистру. Не поддерживается несколько значений (массив) для поля аудитории. Дополнительную информацию об аудитории токена OIDC JWT можно найти здесь: https://tools.ietf.org/html/rfc7519#section-4.1.3 Примечание: если не указано, будет использоваться URL конечной точки Push.
service_account_email
строка / обязательно
Электронная почта учетной записи службы, которая будет использоваться для генерации токена OIDC.
Вызывающая сторона (для RPC subscriptions.create, subscriptions.patch и subscriptions.modifyPushConfig) должна иметь разрешение iam.serviceAccounts.actAs для учетной записи службы.
push_endpoint
строка / обязательно
URL, указывающий конечную точку, в которую должны быть отправлены сообщения.
Например, конечная точка веб-хука может использовать "https://example.com/push".
retain_acked_messages
логическое значение
    Варианты:
  • no
  • yes
Указывает, нужно ли сохранять подтверждённые сообщения. Если `true`, сообщения не удаляются из очереди подписки, даже если они подтверждены, до тех пор, пока они не выйдут из окна messageRetentionDuration.
retry_policy
словарь
Политика, определяющая, как Pub/Sub повторно пытается доставить сообщения для этой подписки.
Если не задано, применяется политика повторных попыток по умолчанию. В общем случае это означает, что сообщения будут повторно отправляться как можно быстрее для здоровых подписчиков. RetryPolicy будет срабатывать при событиях NACK или превышения срока подтверждения для данного сообщения.
maximum_backoff
строка
Максимальная задержка между последовательными попытками доставки данного сообщения. Значение должно быть между 0 и 600 секундами. По умолчанию 600 секунд. Длительность в секундах с до девятью десятичными знаками, заканчивающимися на 's'. Пример: "3.5s".
minimum_backoff
строка
Минимальная задержка между последовательными попытками доставки данного сообщения. Значение должно быть между 0 и 600 секундами. По умолчанию 10 секунд.
Длительность в секундах с до девятью десятичными знаками, заканчивающимися на 's'. Пример: "3.5s".
scopes
список / элементы=строка
Массив используемых областей.
service_account_contents
jsonarg
Содержимое файла JSON учетной записи службы, либо в виде словаря, либо в виде JSON-строки, представляющей его.
service_account_email
string
Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию.
service_account_file
path
Путь к файлу JSON учетной записи службы, если тип serviceaccount выбран как тип.
state
string
    Choices:
  • present ←
  • absent
Указывает, должно ли данное object существовать в GCP
topic
dictionary / required
Ссылка на ресурс Topic.
Это поле представляет ссылку на ресурс Topic в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'name' и значением имени вашего ресурса. Во-вторых, вы можете добавить `register: name-of-resource` к задаче gcp_pubsub_topic, а затем установить это поле topic на "{{ name-of-resource }}"

Примечания

Примечание

  • Ссылка на API: https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions
  • Управление подписками: https://cloud.google.com/pubsub/docs/admin#managing_subscriptions
  • для аутентификации можно установить service_account_file, используя переменную среды gcp_service_account_file.
  • для аутентификации можно установить service_account_contents, используя переменную среды GCP_SERVICE_ACCOUNT_CONTENTS.
  • для аутентификации можно установить service_account_email, используя переменную среды GCP_SERVICE_ACCOUNT_EMAIL.
  • для аутентификации можно установить auth_kind, используя переменную среды GCP_AUTH_KIND.
  • для аутентификации можно установить scopes, используя переменную среды GCP_SCOPES.
  • Значения переменных среды будут использоваться только в том случае, если значения в playbook не заданы.
  • Параметры service_account_email и service_account_file взаимоисключающие.

Примеры

- name: create a topic
  google.cloud.gcp_pubsub_topic:
    name: topic-subscription
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file }}"
    state: present
  register: topic

- name: create a subscription
  google.cloud.gcp_pubsub_subscription:
    name: test_object
    topic: "{{ topic }}"
    ack_deadline_seconds: 300
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

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

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

Ключ Результат Описание
ackDeadlineSeconds
целое число
успех
Это максимальное время после получения сообщения подписчиком, прежде чем подписчик должен подтвердить сообщение. После доставки сообщения, но до истечения срока подтверждения и до подтверждения сообщения, это незавершенное сообщение и оно не будет повторно доставлено в течение этого времени (на основе наилучшего усилия).
Для подписок на основе получения это значение используется в качестве начального значения для срока подтверждения. Чтобы переопределить это значение для данного сообщения, вызовите subscriptions.modifyAckDeadline с соответствующим идентификатором подтверждения, если используется получение. Минимальный настраиваемый срок составляет 10 секунд. Максимальный настраиваемый срок составляет 600 секунд (10 минут).
Если этот параметр равен 0, используется значение по умолчанию 10 секунд.
Для доставки через push это значение также используется для установки таймаута запроса для вызова push-точке.
Если подписчик никогда не подтверждает сообщение, система Pub/Sub в конечном итоге повторно доставит сообщение.

deadLetterPolicy
сложный
успех
Политика, которая определяет условия для отправки сообщений в мертвую почту в этом подписке. Если dead_letter_policy не задано, отправка в мертвую почту отключена.
Учетная запись сервиса Google Cloud Pub/Sub, связанная с родительским проектом этой подписки (т. е., service-{номер_проекта}@gcp-sa-pubsub.iam.gserviceaccount.com), должна иметь разрешение Acknowledge() сообщений в этой подписке.

deadLetterTopic
строка
успех
Имя темы, в которую должны публиковаться сообщения мертвой почты.
Формат: `projects/{project}/topics/{topic}`.
Учетная запись сервиса Google Cloud Pub/Sub, связанная с родительским проектом окружающего подписки (т. е., service-{номер_проекта}@gcp-sa-pubsub.iam.gserviceaccount.com), должна иметь разрешение Publish() в эту тему.
Операция завершится неудачей, если тема не существует.
Пользователи должны убедиться, что к этой теме прикреплена подписка, так как сообщения, опубликованные в теме без подписок, теряются.

maxDeliveryAttempts
целое число
успех
Максимальное количество попыток доставки любого сообщения. Значение должно быть между 5 и 100.
Количество попыток доставки определяется как 1 + (сумма числа NACK и числа случаев, когда истек срок подтверждения сообщения).
NACK — это любой вызов ModifyAckDeadline с сроком 0. Обратите внимание, что клиентские библиотеки могут автоматически продлевать ack_deadlines.
Это поле будет соблюдаться на основе наилучшего усилия.
Если этот параметр равен 0, используется значение по умолчанию 5.

enableMessageOrdering
логическое значение
успех
Если `true`, сообщения, опубликованные с одинаковым orderingKey в PubsubMessage, будут доставлены подписчикам в том порядке, в котором они получены системой Pub/Sub. В противном случае они могут быть доставлены в любом порядке.

expirationPolicy
сложный
успех
Политика, которая определяет условия истечения срока действия этой подписки.
Подписка считается активной, пока любой подключенный подписчик успешно потребляет сообщения из подписки или выполняет операции с подпиской. Если expirationPolicy не задано, будет использоваться политика по умолчанию с ttl 31 день. Если она задана, но ttl пустая, ресурс никогда не истекает. Минимальное разрешенное значение для expirationPolicy.ttl составляет 1 день.

ttl
строка
успех
Указывает длительность «срока жизни» для связанного ресурса. Ресурс истекает, если он не активен в течение периода ttl.
Если ttl не задано, связанный ресурс никогда не истекает.
Продолжительность в секундах с точностью до девяти десятичных знаков, завершающаяся символом 's'.
Пример - "3.5s".

filter
строка
успех
Подписка доставляет только сообщения, которые соответствуют фильтру. Pub/Sub автоматически подтверждает сообщения, которые не соответствуют фильтру. Вы можете фильтровать сообщения по их атрибутам. Максимальная длина фильтра составляет 256 байт. После создания подписки изменить фильтр нельзя.

labels
словарь
успех
Набор пар ключ/значение меток для назначения этой подписке.

messageRetentionDuration
строка
успех
Сколько времени хранить неподтвержденные сообщения в очереди подписки с момента публикации сообщения. Если retainAckedMessages равно true, это также настраивает хранение подтвержденных сообщений и, таким образом, настраивает, насколько назад можно выполнить subscriptions.seek. По умолчанию 7 дней. Не может быть больше 7 дней (`"604800s"`) или меньше 10 минут (`"600s"`).
Продолжительность в секундах с точностью до девяти десятичных знаков, завершающаяся символом 's'. Пример: `"600.5s"`.

name
строка
успех
Имя подписки.

pushConfig
сложный
успех
Если для этой подписки используется доставка через push, это поле используется для ее настройки. Пустая pushConfig означает, что подписчик будет получать и подтверждать сообщения с помощью методов API.

attributes
словарь
успех
Атрибуты конфигурации конечной точки.
Каждая конечная точка имеет набор поддерживаемых API атрибутов, которые могут использоваться для управления различными аспектами доставки сообщений.
В настоящее время поддерживается атрибут x-goog-version, который вы можете использовать для изменения формата отправляемого сообщения. Этот атрибут указывает версию данных, ожидаемых конечной точкой. Это управляет формой отправляемого сообщения (т. е. его полями и метаданными). Версия конечной точки основана на версии API Pub/Sub.
Если он не задан во время вызова subscriptions.create, он по умолчанию будет равен версии API, использованной для этого вызова. Если он не задан во время вызова subscriptions.modifyPushConfig, его значение не будет изменено. Вызовы subscriptions.get всегда возвращают допустимую версию, даже если подписка была создана без этого атрибута.
Возможные значения для этого атрибута: - v1beta1: использует формат push, определенный в API Pub/Sub v1beta1.
- v1 или v1beta2: использует формат push, определенный в API Pub/Sub v1.

oidcToken
сложный
успех
Если указано, Pub/Sub сгенерирует и прикрепит токен OIDC JWT в качестве заголовка Authorization в HTTP-запросе для каждого отправляемого сообщения.

audience
строка
успех
Аудитория, которая будет использоваться при генерации токена OIDC. Требование аудитории JWT определяет получателей, для которых предназначен JWT. Значение аудитории — это строка с одним регистром. Не поддерживается наличие нескольких значений (массива) для поля аудитории. Дополнительная информация о требовании аудитории токена OIDC JWT здесь: https://tools.ietf.org/html/rfc7519#section-4.1.3 Примечание: если не указано, будет использоваться URL push-конечной точки.

serviceAccountEmail
строка
успех
Электронная почта учетной записи сервиса, которая будет использоваться для генерации токена OIDC.
Вызывающий (для RPC subscriptions.create, subscriptions.patch и subscriptions.modifyPushConfig) должен иметь разрешение iam.serviceAccounts.actAs для учетной записи сервиса.

pushEndpoint
строка
успех
URL, указывающий на конечную точку, в которую должны отправляться сообщения.
Например, конечная точка Webhook может использовать "https://example.com/push".

retainAckedMessages
логическое значение
успех
Указывает, нужно ли хранить подтвержденные сообщения. Если `true`, сообщения не удаляются из очереди подписки, даже если они подтверждены, пока они не выйдут из окна messageRetentionDuration.

retryPolicy
сложный
успех
Политика, которая определяет, как Pub/Sub повторно пытается доставить сообщения для этой подписки.
Если не задано, применяется политика повторных попыток по умолчанию. Это обычно подразумевает, что сообщения будут повторно пытаться доставить как можно скорее для здоровых подписчиков. RetryPolicy будет активироваться при событиях NACK или истечения срока подтверждения для данного сообщения.

maximumBackoff
строка
успех
Максимальная задержка между последовательными доставками данного сообщения. Значение должно быть между 0 и 600 секундами. По умолчанию 600 секунд. Продолжительность в секундах с точностью до девяти десятичных знаков, завершающаяся символом 's'. Пример: "3.5s".

minimumBackoff
строка
успех
Минимальная задержка между последовательными доставками данного сообщения. Значение должно быть между 0 и 600 секундами. По умолчанию 10 секунд.
Продолжительность в секундах с точностью до девяти десятичных знаков, завершающаяся символом 's'. Пример: "3.5s".

topic
словарь
успех
Ссылка на ресурс Topic.



Авторы

  • Google Inc. (@googlecloudplatform)

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/google/cloud/gcp_pubsub_subscription_module.html

Spec-Zone.ru

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