gcp_pubsub_subscription – Создаёт подписку GCP
Новая в версии 2.6.
Обзор
- Именованный ресурс, представляющий поток сообщений из одного конкретного топика, который должен быть доставлен подписывающемуся приложению.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- requests >= 2.18.4
- google-auth >= 1.3.0
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| ack_deadline_seconds целое число | Это максимальное время после получения сообщения подписчиком, прежде чем подписчик должен подтвердить сообщение. После доставки сообщения, но до истечения срока подтверждения и до подтверждения сообщения, это незавершенное сообщение и оно не будет повторно доставлено в течение этого времени (с наилучшими усилиями). Для подписок с pull-методом это значение используется в качестве начального значения срока подтверждения. Чтобы переопределить это значение для конкретного сообщения, вызовите subscriptions.modifyAckDeadline с соответствующим ackId, если используется pull. Минимальный настраиваемый срок — 10 секунд. Максимальный настраиваемый срок — 600 секунд (10 минут). Если этот параметр равен 0, используется значение по умолчанию — 10 секунд. Для доставки push, это значение также используется для установки таймаута запроса для вызова push-точки. Если подписчик никогда не подтвердит сообщение, система Pub/Sub в конечном итоге повторно доставит сообщение. | ||
| auth_kind строка / обязательно |
| Тип используемых учетных данных. | |
| env_type строка | Указывает, в какой среде Ansible вы выполняете этот модуль. Это значение не должно устанавливаться, если вы не знаете, что делаете. Это изменяет только строку User Agent для всех запросов к API. | ||
| expiration_policy словарь добавлен в 2.9 | Политика, определяющая условия истечения срока действия этой подписки. Подписка считается активной, пока подключённый подписчик успешно потребляет сообщения из подписки или выполняет операции с подпиской. Если expirationPolicy не установлен, будет использоваться политика по умолчанию с ttl в 31 день. Минимальное допустимое значение для expirationPolicy.ttl — 1 день. | ||
| ttl строка | Указывает длительность "времени жизни" для связанного ресурса. Ресурс истекает, если он не активен в течение периода ttl. Определение "активности" зависит от типа связанного ресурса. Минимальные и максимальные допустимые значения для ttl также зависят от типа связанного ресурса. Если ttl не задан, связанный ресурс никогда не истекает. Продолжительность в секундах с до девятью дробными знаками, заканчивающимися на 's'. Пример — "3.5s". | ||
| labels словарь добавлен в 2.8 | Набор пар ключ/значение метки, которые нужно назначить этой подписке. | ||
| message_retention_duration строка добавлен в 2.8 | По умолчанию: "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. Этот атрибут указывает версию данных, ожидаемых конечной точкой. Это контролирует форму сообщения push (то есть его поля и метаданные). Версия конечной точки основана на версии API Pub/Sub. Если он отсутствует при вызове subscriptions.create, он по умолчанию принимает версию API, используемого для этого вызова. Если он отсутствует при вызове subscriptions.modifyPushConfig, его значение не будет изменено. Вызовы subscriptions.get всегда возвращают действительную версию, даже если подписка была создана без этого атрибута. Возможные значения для этого атрибута: - v1beta1: использует формат push, определенный в API Pub/Sub v1beta1. - v1 или v1beta2: использует формат push, определенный в API Pub/Sub v1. | ||
| push_endpoint строка / обязательно | URL расположения конечной точки, на которую должны быть отправлены сообщения. Например, конечная точка Webhook может использовать "https://example.com/push". | ||
| retain_acked_messages булево добавлен в 2.8 |
| Указывает, нужно ли сохранять подтверждённые сообщения. Если `true`, сообщения не удаляются из очереди подписки, даже если они подтверждены, до тех пор, пока они не выйдут из временного интервала messageRetentionDuration. | |
| scopes список | Массив используемых областей. | ||
| service_account_contents jsonarg | Содержимое файла JSON учетной записи службы, либо в словаре, либо как строка JSON, представляющая его. | ||
| service_account_email строка | Дополнительный адрес электронной почты учетной записи службы, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. | ||
| service_account_file путь | Путь к файлу JSON учетной записи службы, если в качестве типа выбран serviceaccount. | ||
| state строка |
| Нужно ли, чтобы данный объект существовал в GCP | |
| topic словарь / обязательно | Ссылка на ресурс темы. Это поле представляет ссылку на ресурс темы в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'name' и значением имени вашего ресурса. Во-вторых, вы можете добавить `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 с помощью переменной среды c(gcp_service_account_file).
- для аутентификации можно установить service_account_contents с помощью переменной среды c(GCP_SERVICE_ACCOUNT_CONTENTS).
- Для аутентификации можно установить service_account_email с помощью переменной среды
GCP_SERVICE_ACCOUNT_EMAIL. - Для аутентификации можно установить auth_kind с помощью переменной среды
GCP_AUTH_KIND. - Для аутентификации можно установить scopes с помощью переменной среды
GCP_SCOPES. - Значения переменных среды будут использованы только в том случае, если значения в плейбуке не заданы.
- Параметры service_account_email и service_account_file взаимоисключающие.
Примеры
- name: create a topic
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
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 с соответствующим ackId, если используется pull. Минимальный настраиваемый срок составляет 10 секунд. Максимальный настраиваемый срок составляет 600 секунд (10 минут). Если этот параметр равен 0, используется значение по умолчанию 10 секунд. Для доставки push это значение также используется для установки таймаута запроса для вызова конечной точки push. Если подписчик никогда не подтверждает сообщение, система Pub/Sub в конечном итоге повторно доставит сообщение. | |
| expirationPolicy сложный | успех | Политика, которая определяет условия истечения срока действия этой подписки. Подписка считается активной, пока любой подключенный подписчик успешно потребляет сообщения из подписки или выполняет операции с подпиской. Если expirationPolicy не задан, будет использована политика по умолчанию с ttl в 31 день. Минимальное разрешенное значение для expirationPolicy.ttl составляет 1 день. | |
| ttl строка | успех | Указывает продолжительность "времени жизни" для связанного ресурса. Ресурс истекает, если он неактивен в течение срока ttl. Определение "активности" зависит от типа связанного ресурса. Минимальное и максимальное допустимые значения для ttl также зависят от типа связанного ресурса. Если ttl не задан, связанный ресурс никогда не истекает. Продолжительность в секундах с максимальными девятью дробными цифрами, завершающимися символом 's'. Пример - "3.5s". | |
| 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. | |
| pushEndpoint строка | успех | URL-адрес конечной точки, в которую должны быть отправлены сообщения. Например, конечная точка веб-хука может использовать "https://example.com/push". | |
| retainAckedMessages логическое значение | успех | Указывает, нужно ли хранить подтвержденные сообщения. Если `true`, сообщения не удаляются из очереди подписки, даже если они подтверждены, до тех пор, пока они не выйдут за пределы временного интервала messageRetentionDuration. | |
| topic словарь | успех | Ссылка на ресурс Topic. | |
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- 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.9/modules/gcp_pubsub_subscription_module.html