Spec-Zone.ru › Ansible

Модуль google.cloud.gcp_pubsub_subscription — создание подписки GCP

Примечание

Этот модуль входит в коллекцию google.cloud (версия 1.13.0).

Возможно, эта коллекция уже установлена, если вы используете пакет 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

string

Токен доступа OAuth2, если тип учетных данных — accesstoken.

ack_deadline_seconds

integer

Максимальное время после получения сообщения подписчиком, в течение которого подписчик должен подтвердить его получение. После доставки сообщения и до истечения срока подтверждения, а также до подтверждения сообщения оно считается необработанным и в этот период повторно не доставляется (по возможности).

Для подписок с получением сообщений этот параметр задает исходное значение срока подтверждения. Чтобы переопределить это значение для конкретного сообщения, вызовите subscriptions.modifyAckDeadline с соответствующим ackId. Минимальный пользовательский срок — 10 секунд. Максимальный пользовательский срок — 600 секунд (10 минут).

Если значение параметра равно 0, используется значение по умолчанию — 10 секунд.

При доставке push-уведомлений это значение также задает время ожидания запроса к конечной точке push.

Если подписчик не подтвердит получение сообщения, система Pub/Sub в конечном итоге доставит его повторно.

auth_kind

string / обязательный

Тип используемых учетных данных.

Варианты:

  • "application"
  • "machineaccount"
  • "serviceaccount"
  • "accesstoken"

cloud_storage

dictionary

Конфигурация подписки Cloud Storage.

bucket

string / обязательный

Ссылка на ресурс Bucket.

Это поле содержит имя ресурса Bucket в GCP, в котором будут храниться сообщения, полученные из темы.

file_datetime_format

string

Формат даты и времени объекта файла, хранящегося в Bucket.

file_prefix

string

Префикс имени объекта файла, хранящегося в Bucket.

file_suffix

string

Суффикс имени объекта файла, хранящегося в Bucket.

max_bytes

integer

Подписка Cloud Storage создает новый выходной файл, если превышено указанное значение максимального размера в байтах. Минимум — 1000, максимум — 10737418240.

max_duration

string

Подписка создает новый выходной файл, если превышено указанное максимальное время. Минимум — 60 с, максимум — 600 с.

max_messages

integer

Подписка Cloud Storage создает новый выходной файл, если превышено указанное количество сообщений. Минимум — 1000.

output_format

string

Укажите формат выходных файлов, сохраняемых в корзине Cloud Storage: text или avro.

use_topic_schema

boolean

Если значение равно true, выходной файл Cloud Storage будет сериализован с использованием схемы темы, если она существует.

Это поле допустимо только для формата сообщений avro.

Варианты:

  • false
  • true

write_metadata

boolean

Этот параметр позволяет сохранять метаданные сообщения вместе с сообщением, например заголовки сообщения.

Это поле допустимо только для формата сообщений avro.

Варианты:

  • false
  • true

dead_letter_policy

dictionary

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

Сервисная учетная запись Cloud Pub/Sub, связанная с родительским проектом этой подписки (например, service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com), должна иметь разрешение на подтверждение получения сообщений (Acknowledge()) в этой подписке.

dead_letter_topic

string

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

Формат: `projects/{project}/topics/{topic}`.

Сервисная учетная запись Cloud Pub/Sub, связанная с родительским проектом содержащей подписки (например, service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com), должна иметь разрешение на публикацию (Publish()) в эту тему.

Операция завершится ошибкой, если тема не существует.

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

max_delivery_attempts

integer

Максимальное количество попыток доставки любого сообщения. Значение должно находиться в диапазоне от 5 до 100.

Количество попыток доставки определяется как 1 + (сумма количества NACK и количества случаев превышения срока подтверждения получения сообщения).

NACK — это любой вызов ModifyAckDeadline с нулевым сроком. Обратите внимание, что клиентские библиотеки могут автоматически продлевать ack_deadlines.

Этот параметр будет применяться по возможности.

Если значение параметра равно 0, используется значение по умолчанию — 5.

enable_message_ordering

boolean

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

Варианты:

  • false
  • true

env_type

string

Указывает, в какой среде Ansible выполняется этот модуль.

Не задавайте этот параметр, если не знаете, что делаете.

Параметр изменяет только строку User Agent для всех запросов API.

expiration_policy

dictionary

Политика, определяющая условия истечения срока действия этой подписки.

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

ttl

string / обязательный

Задает время жизни связанного ресурса. Срок действия ресурса истекает, если он неактивен в течение периода ttl.

Если ttl не задан, срок действия связанного ресурса не истекает.

Длительность в секундах с точностью до девяти знаков после запятой, заканчивающаяся символом ‘s’.

Пример — “3.5s”.

filter

string

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

labels

dictionary

Набор пар меток «ключ/значение», назначаемых этой подписке.

message_retention_duration

string

Время хранения неподтвержденных сообщений в очереди подписки, отсчитываемое с момента публикации сообщения. Если retainAckedMessages равно true, этот параметр также задает срок хранения подтвержденных сообщений и, следовательно, глубину поиска во времени при вызове subscriptions.seek. По умолчанию — 7 дней. Значение не может превышать 7 дней (`”604800s”`) или быть меньше 10 минут (`”600s”`).

Длительность в секундах с точностью до девяти знаков после запятой, заканчивающаяся символом ‘s’. Пример: `”600.5s”`.

По умолчанию: "604800s"

name

string / обязательный

Имя подписки.

project

string

Используемый проект Google Cloud Platform.

push_config

dictionary

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

attributes

dictionary

Атрибуты конфигурации конечной точки.

Для каждой конечной точки предусмотрен набор поддерживаемых 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.

oidc_token

dictionary

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

audience

string

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

service_account_email

string / обязательный

Адрес электронной почты сервисной учетной записи, используемой для создания токена OIDC.

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

push_endpoint

string / обязательный

URL конечной точки, на которую следует отправлять сообщения.

Например, конечной точкой веб-перехватчика может быть “https://example.com/push”.

retain_acked_messages

boolean

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

Варианты:

  • false
  • true

retry_policy

dictionary

Политика, определяющая порядок повторных попыток доставки сообщений Pub/Sub для этой подписки.

Если параметр не задан, применяется политика повторных попыток по умолчанию. Как правило, это означает, что для работающих подписчиков повторная доставка сообщений выполняется при первой возможности. RetryPolicy применяется при получении NACK или превышении срока подтверждения для данного сообщения.

maximum_backoff

string

Максимальная задержка между последовательными доставками данного сообщения. Значение должно находиться в диапазоне от 0 до 600 секунд. По умолчанию — 600 секунд. Длительность в секундах с точностью до девяти знаков после запятой, заканчивающаяся символом ‘s’. Пример: “3.5s”.

minimum_backoff

string

Минимальная задержка между последовательными доставками данного сообщения. Значение должно находиться в диапазоне от 0 до 600 секунд. По умолчанию — 10 секунд.

Длительность в секундах с точностью до девяти знаков после запятой, заканчивающаяся символом ‘s’. Пример: “3.5s”.

scopes

list / элементы=string

Массив используемых областей доступа

service_account_contents

jsonarg

Содержимое JSON-файла сервисной учетной записи в виде словаря или JSON-строки.

service_account_email

string

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

service_account_file

path

Путь к JSON-файлу сервисной учетной записи, если в качестве типа выбран serviceaccount.

state

string

Должен ли указанный объект существовать в GCP.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

topic

dictionary / обязательный

Ссылка на ресурс 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.
  • Для аутентификации можно задать 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

integer

Это значение задаёт максимальное время после получения сообщения подписчиком, в течение которого подписчик должен подтвердить получение сообщения. После доставки сообщения и до истечения срока подтверждения, а также до подтверждения сообщения оно считается необработанным и в течение этого времени повторно не доставляется (по возможности).

Для подписок с получением сообщений это значение используется в качестве начального срока подтверждения. Чтобы переопределить это значение для конкретного сообщения, вызовите subscriptions.modifyAckDeadline с соответствующим ackId при использовании получения сообщений. Минимальный пользовательский срок, который можно указать, составляет 10 секунд. Максимальный пользовательский срок — 600 секунд (10 минут).

Если этот параметр равен 0, используется значение по умолчанию — 10 секунд.

При доставке с отправкой это значение также используется для установки времени ожидания запроса к конечной точке отправки.

Если подписчик так и не подтвердит получение сообщения, система Pub/Sub в конечном итоге доставит его повторно.

Возвращается: success

deadLetterPolicy

complex

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

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

Возвращается: success

deadLetterTopic

string

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

Формат: `projects/{project}/topics/{topic}`.

У сервисного аккаунта Cloud Pub/Sub, связанного с родительским проектом содержащей подписки (то есть service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com), должно быть разрешение на публикацию в этой теме с помощью Publish().

Операция завершится ошибкой, если тема не существует.

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

Возвращается: success

maxDeliveryAttempts

integer

Максимальное количество попыток доставки любого сообщения. Значение должно находиться в диапазоне от 5 до 100.

Количество попыток доставки определяется как 1 + (сумма количества NACK и количества случаев истечения срока подтверждения для сообщения).

NACK — это любой вызов ModifyAckDeadline с нулевым сроком. Обратите внимание, что клиентские библиотеки могут автоматически продлевать ack_deadlines.

Это поле обрабатывается по возможности.

Если этот параметр равен 0, используется значение по умолчанию — 5.

Возвращается: success

enableMessageOrdering

boolean

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

Возвращается: success

expirationPolicy

complex

Политика, задающая условия истечения срока действия этой подписки.

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

Возвращается: success

ttl

string

Задаёт длительность срока жизни связанного ресурса. Ресурс истекает, если он не активен в течение периода ttl.

Если ttl не задан, связанный ресурс никогда не истекает.

Длительность в секундах с точностью до девяти десятичных знаков, оканчивающаяся символом ‘s’.

Пример: “3.5s”.

Возвращается: success

filter

string

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

Возвращается: success

labels

dictionary

Набор пар метка/значение, назначаемых этой подписке.

Возвращается: success

messageRetentionDuration

string

Время хранения неподтверждённых сообщений в очереди подписки, отсчитываемое с момента публикации сообщения. Если retainAckedMessages имеет значение true, этот параметр также определяет срок хранения подтверждённых сообщений и, следовательно, насколько далеко в прошлое можно выполнить subscriptions.seek. По умолчанию — 7 дней. Значение не может превышать 7 дней (`”604800s”`) или быть меньше 10 минут (`”600s”`).

Длительность в секундах с точностью до девяти десятичных знаков, оканчивающаяся символом ‘s’. Пример: `”600.5s”`.

Возвращается: success

name

string

Название подписки.

Возвращается: success

pushConfig

complex

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

Возвращается: success

attributes

dictionary

Атрибуты конфигурации конечной точки.

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

В настоящее время поддерживается атрибут x-goog-version, с помощью которого можно изменить формат отправляемого сообщения. Этот атрибут указывает версию данных, ожидаемую конечной точкой. От него зависит структура отправляемого сообщения (то есть его поля и метаданные). Версия конечной точки определяется версией API Pub/Sub.

Если атрибут не указан при вызове subscriptions.create, по умолчанию используется версия API, применённая для этого вызова. Если атрибут не указан при вызове subscriptions.modifyPushConfig, его значение не изменяется. Вызовы subscriptions.get всегда возвращают допустимую версию, даже если подписка создана без этого атрибута.

Возможные значения этого атрибута: - v1beta1: используется формат отправки, определённый в API Pub/Sub версии v1beta1.

- v1 или v1beta2: используется формат отправки, определённый в API Pub/Sub версии v1.

Возвращается: success

oidcToken

complex

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

Возвращается: success

audience

string

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

Возвращается: success

serviceAccountEmail

string

Адрес электронной почты сервисного аккаунта, используемого для генерации токена OIDC.

У вызывающей стороны (для RPC-вызовов subscriptions.create, subscriptions.patch и subscriptions.modifyPushConfig) должно быть разрешение iam.serviceAccounts.actAs для этого сервисного аккаунта.

Возвращается: success

pushEndpoint

string

URL конечной точки, на которую следует отправлять сообщения.

Например, конечная точка веб-перехватчика может использовать адрес “https://example.com/push”.

Возвращается: success

retainAckedMessages

boolean

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

Возвращается: success

retryPolicy

complex

Политика, задающая порядок повторных попыток доставки сообщений Pub/Sub для этой подписки.

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

Возвращается: success

maximumBackoff

string

Максимальная задержка между последовательными доставками заданного сообщения. Значение должно находиться в диапазоне от 0 до 600 секунд. По умолчанию — 600 секунд. Длительность в секундах с точностью до девяти десятичных знаков, оканчивающаяся символом ‘s’. Пример: “3.5s”.

Возвращается: success

minimumBackoff

string

Минимальная задержка между последовательными доставками заданного сообщения. Значение должно находиться в диапазоне от 0 до 600 секунд. По умолчанию — 10 секунд.

Длительность в секундах с точностью до девяти десятичных знаков, оканчивающаяся символом ‘s’. Пример: “3.5s”.

Возвращается: success

topic

dictionary

Ссылка на ресурс Topic.

Возвращается: success

Авторы

  • Google Inc. (@googlecloudplatform)

Ссылки на коллекцию

  • Отслеживание проблем
  • Главная страница
  • Репозиторий (исходный код)

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

Spec-Zone.ru

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