gcp_pubsub_subscription – Создаёт подписку GCP
Новая в версии 2.6.
Описание
- Именованный ресурс, представляющий поток сообщений из одного определенного топика, который должен быть доставлен подписывающемуся приложению.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- 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 строка / обязательно |
| Тип используемых учетных данных. | |
| 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, который можно использовать для изменения формата отправляемого сообщения. Этот атрибут указывает версию данных, ожидаемых точкой входа. Это контролирует форму отправляемого сообщения (то есть его поля и метаданные). Версия точки входа основана на версии 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, указывающий на точку входа, в которую должны быть отправлены сообщения. Например, веб-хук может использовать "https://example.com/push".
| ||
| retain_acked_messages логический тип добавлено в 2.8 |
| Указывает, нужно ли сохранять подтверждённые сообщения. Если `true`, сообщения не удаляются из очереди подписки, даже если они подтверждены, пока они не выйдут за рамки окна messageRetentionDuration. | |
| scopes список | Массив используемых областей. | ||
| service_account_contents строка | Строка, представляющая содержимое файла JSON учетной записи службы. Это не должно передаваться как словарь, а как строка, содержащая точное содержимое файла service account json (корректный JSON). | ||
| service_account_email строка | Необязательный адрес электронной почты учетной записи службы, если выбран machineaccount, и пользователь не хочет использовать адрес электронной почты по умолчанию. | ||
| service_account_file путь | Путь к файлу JSON учетной записи службы, если в качестве типа выбрана учетная запись службы. | ||
| state - |
| Существует ли данный объект в GCP | |
| topic - / обязательно | Ссылка на ресурс Topic. Это поле представляет собой ссылку на ресурс Topic в GCP. Его можно указать двумя способами. Во-первых, вы можете поместить словарь с ключом 'name' и значением имени вашего ресурса. Во-вторых, вы можете добавить `register: имя-ресурса` к задаче gcp_pubsub_topic и затем установить это поле 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_email с помощью переменной среды
GCP_SERVICE_ACCOUNT_EMAIL. - Для аутентификации можно установить service_account_contents с помощью переменной среды
GCP_SERVICE_ACCOUNT_CONTENTS. - Для аутентификации можно установить auth_kind с помощью переменной среды
GCP_AUTH_KIND. - Для аутентификации можно установить scopes с помощью переменной среды
GCP_SCOPES. - Значения переменных среды будут использоваться только в том случае, если значения в playbook не установлены.
- Параметры 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 в конечном итоге повторно доставит сообщение. | |
| 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 словарь | успех | Ссылка на ресурс темы. | |
Статус
- Этот модуль не гарантирует обратную совместимость интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- 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.8/modules/gcp_pubsub_subscription_module.html