google.cloud.gcp_pubsub_subscription модуль — Создаёт GCP подписку
Примечание
Этот модуль входит в коллекцию google.cloud (версия 1.4.1).
Эта коллекция может быть уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить её установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install google.cloud. Для использования этого модуля необходимы дополнительные требования. Подробности см. в разделе Требования.
Чтобы использовать его в книге задач, укажите: google.cloud.gcp_pubsub_subscription.
Описание
- Именованный ресурс, представляющий поток сообщений с одного конкретного топика для доставки подписывающемуся приложению.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
Параметр | Комментарии |
|---|---|
access_token строка | Токен доступа OAuth2, если тип аутентификации — accesstoken. |
ack_deadline_seconds целое число | Это максимальное время после получения сообщения подписчиком, прежде чем подписчик должен подтвердить сообщение. После доставки сообщения, но до истечения срока подтверждения и перед подтверждением сообщения, это незавершенное сообщение и оно не будет повторно доставлено в течение этого времени (на основе наилучших усилий). Для подписок pull это значение используется в качестве начального значения для срока подтверждения. Чтобы переопределить это значение для данного сообщения, вызовите subscriptions.modifyAckDeadline с соответствующим ackId, если используется pull. Минимальный настраиваемый срок — 10 секунд. Максимальный настраиваемый срок — 600 секунд (10 минут). Если этот параметр равен 0, используется значение по умолчанию 10 секунд. Для доставки push это значение также используется для установки таймаута запроса для вызова push-точке. Если подписчик никогда не подтвердит сообщение, система Pub/Sub в конечном итоге повторно поставит сообщение. |
auth_kind строка / обязательно | Тип используемых учетных данных. Варианты:
|
dead_letter_policy словарь | Политика, которая определяет условия для отправки сообщений в список ошибок для данной подписки. Если dead_letter_policy не задан, отправка в список ошибок отключена. Учетная запись сервиса Google Cloud Pub/Sub, связанная с родительским проектом этой подписки (т.е., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) должна иметь разрешение на Acknowledge() сообщений для этой подписки. |
dead_letter_topic строка | Имя темы, в которую должны публиковаться сообщения списка ошибок. Формат: `projects/{project}/topics/{topic}`. Учетная запись сервиса Google Cloud Pub/Sub, связанная с родительским проектом подписки (т.е., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) должна иметь разрешение на Publish() в эту тему. Операция завершится ошибкой, если тема не существует. Пользователи должны убедиться, что к этой теме прикреплена подписка, так как сообщения, опубликованные в тему без подписок, теряются. |
max_delivery_attempts целое число | Максимальное количество попыток доставки сообщения. Значение должно быть между 5 и 100. Количество попыток доставки определяется как 1 + (сумма числа NACK и числа случаев, когда срок подтверждения был превышен для сообщения). NACK — это любой вызов ModifyAckDeadline с сроком 0. Обратите внимание, что клиентские библиотеки могут автоматически продлевать сроки подтверждения. Этот параметр будет учтён в максимальной степени. Если этот параметр равен 0, используется значение по умолчанию 5. |
enable_message_ordering логическое значение | Если `true`, сообщения, опубликованные с тем же orderingKey в PubsubMessage, будут доставлены подписчикам в том порядке, в котором они получены системой Pub/Sub. В противном случае они могут быть доставлены в любом порядке. Варианты:
|
env_type строка | Указывает, в какой среде Ansible вы запускаете этот модуль. Это значение не должно устанавливаться, если вы не знаете, что делаете. Это влияет только на строку User Agent для всех запросов к API. |
expiration_policy словарь | Политика, которая определяет условия истечения срока действия этой подписки. Подписка считается активной, пока любой подключенный подписчик успешно получает сообщения из подписки или выполняет операции с подпиской. Если expirationPolicy не задана, будет использоваться политика по умолчанию со сроком действия 31 день. Если она задана, но ttl — пустая строка, ресурс никогда не истекает. Минимальное разрешенное значение для expirationPolicy.ttl — 1 день. |
ttl строка / обязательно | Указывает срок действия связанного ресурса. Ресурс истекает, если он не активен в течение указанного периода времени ttl. Если ttl не задано, связанный ресурс никогда не истекает. Продолжительность в секундах с максимум девятью десятичными знаками, завершается символом 's'. Пример: «3,5с». |
filter строка | Подписка получает только сообщения, соответствующие фильтру. Pub/Sub автоматически подтверждает сообщения, не соответствующие фильтру. Можно фильтровать сообщения по их атрибутам. Максимальная длина фильтра — 256 байт. После создания подписки изменить фильтр нельзя. |
labels словарь | Набор пар ключ/значение меток для назначения этой подписки. |
message_retention_duration строка | Сколько времени сохранять неподтвержденные сообщения в очереди подписки с момента публикации сообщения. Если 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, который можно использовать для изменения формата отправляемого сообщения. Этот атрибут указывает версию данных, ожидаемую конечной точкой. Это контролирует форму отправляемого сообщения (т.е. его поля и метаданные). Версия конечной точки основана на версии API Pub/Sub. Если он отсутствует во время вызова subscriptions.create, он будет по умолчанию равен версии API, используемой для такого вызова. Если он отсутствует во время вызова subscriptions.modifyPushConfig, его значение не будет изменено. Вызовы subscriptions.get всегда будут возвращать действительную версию, даже если подписка была создана без этого атрибута. Возможные значения для этого атрибута: - v1beta1: использует формат push, определенный в API Pub/Sub v1beta1.
|
|
oidc_token словарь |
Если указано, Pub/Sub сгенерирует и добавит маркер OIDC JWT в качестве заголовка Authorization в HTTP-запросе для каждого отправленного сообщения. |
|
audience строка |
Аудитория, которая будет использоваться при генерации маркера OIDC. Требование аудитории идентифицирует получателей, для которых предназначен 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 логическое | Указывает, нужно ли сохранять подтвержденные сообщения. Если `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 строка | Необязательный адрес электронной почты учетной записи сервиса, если выбран вариант machineaccount и пользователь не хочет использовать адрес по умолчанию. |
service_account_file путь | Путь к файлу JSON учетной записи сервиса, если тип serviceaccount выбран. |
state строка | Нужно ли, чтобы данный объект существовал в GCP Варианты:
|
topic словарь / обязательно | Ссылка на ресурс темы. Это поле представляет ссылку на ресурс темы в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом «имя» и значением имени вашего ресурса. Во-вторых, вы можете добавить `register: имя-ресурса` к задаче gcp_pubsub_topic и затем установить это поле темы на «{{ имя-ресурса }}» |
Примечания
Примечание
- Ссылка на 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. - Для аутентификации можно установить access_token используя переменную среды
GCP_ACCESS_TOKEN. - Для аутентификации можно установить auth_kind используя переменную среды
GCP_AUTH_KIND. - Для аутентификации можно установить scopes используя переменную среды
GCP_SCOPES. - Значения переменных среды будут использованы только в том случае, если значения в плейбуке не установлены.
- Параметры 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 целое число | Это значение — максимальное время после получения сообщения подписчиком, прежде чем подписчик должен подтвердить сообщение. После доставки сообщения, но до истечения срока подтверждения и до подтверждения сообщения, это незавершенное сообщение и оно не будет повторно доставлено в течение этого времени (с наилучшими усилиями). Для подписок pull это значение используется в качестве начального значения для срока подтверждения. Чтобы переопределить это значение для данного сообщения, вызовите subscriptions.modifyAckDeadline с соответствующим идентификатором подтверждения, если используется pull. Минимальный настраиваемый срок подтверждения, который можно указать, составляет 10 секунд. Максимальный настраиваемый срок подтверждения, который можно указать, составляет 600 секунд (10 минут). Если этот параметр равен 0, используется значение по умолчанию — 10 секунд. Для доставки push это значение также используется для установки таймаута запроса для вызова точки входа push. Если подписчик никогда не подтверждает сообщение, система Pub/Sub в конечном итоге повторно доставит сообщение. Возвращаемое значение: успех |
deadLetterPolicy сложное | Политика, которая определяет условия для отправки сообщений в список необработанных сообщений в этой подписке. Если dead_letter_policy не задан, отправка в список необработанных сообщений отключена. Учетная запись сервиса Cloud Pub/Sub, связанная с проектом родительского проекта этой подписки (например, service-{номер_проекта}@gcp-sa-pubsub.iam.gserviceaccount.com) должна иметь разрешение Acknowledge() сообщений для этой подписки. Возвращаемое значение: успех |
|
deadLetterTopic строка |
Имя темы, в которую должны публиковаться сообщения-«письма отчаяния». Формат: `projects/{project}/topics/{topic}`. Учетная запись сервиса Cloud Pub/Sub, связанная с родительским проектом подписки (например, service-{номер_проекта}@gcp-sa-pubsub.iam.gserviceaccount.com) должна иметь разрешение Publish() для этой темы. Операция завершится ошибкой, если тема не существует. Пользователи должны убедиться, что к этой теме подключена подписка, так как сообщения, опубликованные в теме без подписок, теряются. Возвращаемое значение: успех |
|
maxDeliveryAttempts целое число |
Максимальное количество попыток доставки сообщения. Значение должно быть от 5 до 100. Количество попыток доставки определяется как 1 + (сумма числа NACK и числа случаев, когда истек срок подтверждения сообщения). NACK — это любой вызов ModifyAckDeadline со сроком подтверждения 0. Обратите внимание, что клиентские библиотеки могут автоматически продлевать сроки подтверждения. Это поле будет уважаться с наилучшими усилиями. Если этот параметр равен 0, используется значение по умолчанию — 5. Возвращаемое значение: успех |
enableMessageOrdering логическое | Если `true`, сообщения, опубликованные с одинаковым orderingKey в PubsubMessage, будут доставлены подписчикам в порядке их получения системой Pub/Sub. В противном случае они могут быть доставлены в любом порядке. Возвращаемое значение: успех |
expirationPolicy сложное | Политика, которая определяет условия истечения срока действия этой подписки. Подписка считается активной, пока любой подключенный подписчик успешно потребляет сообщения из подписки или выполняет операции с подпиской. Если expirationPolicy не задан, будет использоваться политика по умолчанию со сроком действия 31 день. Если она задана, но ttl пустая, ресурс никогда не истекает. Минимальное разрешенное значение для expirationPolicy.ttl — 1 день. Возвращаемое значение: успех |
|
ttl строка |
Указывает срок действия (time-to-live) связанного ресурса. Ресурс истекает, если он неактивен в течение периода 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.
Возвращается: успех |
|
oidcToken сложное |
Если указано, Pub/Sub сгенерирует и прикрепит маркер OIDC JWT в качестве заголовка Authorization в HTTP-запросе для каждого отправляемого сообщения. Возвращается: успех |
|
audience строка |
Аудитория, используемая при генерации маркера OIDC. Поле аудитории JWT идентифицирует получателей, для которых предназначен JWT. Значение аудитории — это единственная строка, чувствительная к регистру. Поддержка нескольких значений (массива) для поля аудитории не поддерживается. Более подробная информация о поле аудитории маркера OIDC JWT здесь: https://tools.ietf.org/html/rfc7519#section-4.1.3 Примечание: если не указано, используется URL конечной точки отправки. Возвращается: успех |
|
serviceAccountEmail строка |
Электронная почта учетной записи службы, используемая для генерации маркера OIDC. Вызывающий абонент (для RPC subscriptions.create, subscriptions.patch и subscriptions.modifyPushConfig) должен обладать правом iam.serviceAccounts.actAs для учетной записи службы. Возвращается: успех |
|
pushEndpoint строка |
URL, указывающий конечную точку, в которую должны отправляться сообщения. Например, конечная точка веб-хука может использовать «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. Возвращается: успех |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/google/cloud/gcp_pubsub_subscription_module.html