Spec-Zone.ru › Ansible 2.10

google.cloud.gcp_cloudscheduler_job – Создаёт задачу GCP

Примечание

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

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

Для использования в книге задач, укажите: google.cloud.gcp_cloudscheduler_job.

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

Описание

  • Планируемая задача, которая может публиковать сообщение pubsub или HTTP-запрос каждые X интервалов времени, используя строку в формате crontab.
  • Для использования Cloud Scheduler в вашем проекте должен быть приложение App Engine, расположенное в одном из поддерживаемых регионов. Если в вашем проекте нет приложения App Engine, вам необходимо создать его.

Требования

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

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

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
app_engine_http_target
словарь
Целевой App Engine HTTP.
Если поставщик задач предоставляет целевой App Engine HTTP, планировщик задач отправит запрос на экземпляр службы.
app_engine_routing
словарь
Настройка маршрутизации App Engine для задачи.
instance
строка
Экземпляр приложения.
По умолчанию задача отправляется на доступный экземпляр при попытке выполнения задачи.
service
строка
Служба приложения.
По умолчанию задача отправляется на службу, являющуюся службой по умолчанию при попытке выполнения задачи.
version
строка
Версия приложения.
По умолчанию задача отправляется на версию, являющуюся версией по умолчанию при попытке выполнения задачи.
body
строка
Тело HTTP-запроса. Тело запроса разрешено только в случае, если метод HTTP равен POST или PUT. Установка тела в задаче с несовместимым методом HTTP приведет к ошибке невалидных аргументов.
headers
словарь
Заголовки HTTP-запроса.
Этот словарь содержит имена и значения заголовков. Заголовки могут быть установлены при создании задачи.
http_method
строка
Какой метод HTTP использовать для запроса.
relative_uri
строка / обязательно
Относительный URI.
attempt_deadline
строка
По умолчанию:
"180s"
Срок выполнения для попыток задач. Если обработчик запроса не отвечает к этому сроку, запрос отменяется, а попытка помечается как ошибка DEADLINE_EXCEEDED. Неудачную попытку можно увидеть в журналах выполнения. Cloud Scheduler повторит задачу в соответствии с RetryConfig.
Разрешенное время для этого срока: * Для HTTP-целей - от 15 секунд до 30 минут.
* Для App Engine HTTP-целей - от 15 секунд до 24 часов.
* **Примечание**: Для целей PubSub это поле игнорируется — его установка приведет к неразрешимой разнице.
Продолжительность в секундах с до девятью дробными цифрами, заканчивающаяся на 's'. Пример: "3.5s" .
auth_kind
строка / обязательно
    Варианты:
  • application
  • machineaccount
  • serviceaccount
Тип используемых учетных данных.
description
строка
Читаемое человеком описание задачи. Эта строка не должна содержать более 500 символов.
env_type
строка
Указывает, в какой среде Ansible выполняется этот модуль.
Это не следует устанавливать, если вы не знаете, что делаете.
Это изменяет только строку User-Agent для любых запросов к API.
http_target
словарь
HTTP-цель.
Если задача предоставляет http_target, планировщик задач отправит запрос на указанный URL.
body
строка
Тело HTTP-запроса. Тело запроса разрешено только в случае, если метод HTTP равен POST, PUT или PATCH. Установка тела в задаче с несовместимым методом HTTP — ошибка.
headers
словарь
Этот словарь содержит имена и значения заголовков. Повторные заголовки не поддерживаются, но значение заголовка может содержать запятые.
http_method
строка
Какой метод HTTP использовать для запроса.
oauth_token
словарь
Содержит информацию, необходимую для генерации OAuth-токен.
Этот тип авторизации следует использовать при отправке запросов на конечную точку GCP.
scope
строка
OAuth-объем, который будет использоваться для генерации токена доступа OAuth. Если не указан, будет использоваться "https://www.googleapis.com/auth/cloud-platform".
service_account_email
строка / обязательно
Электронная почта учетной записи службы, которая будет использоваться для генерации OAuth-токен.
Учетная запись службы должна находиться в том же проекте, что и задача.
oidc_token
словарь
Содержит информацию, необходимую для генерации токена OpenID Connect.
Этот тип авторизации следует использовать при отправке запросов на сторонние конечные точки или Cloud Run.
audience
строка
Аудитория, которая будет использоваться при генерации токена OIDC. Если не указана, будет использоваться URI, указанный в target.
service_account_email
строка / обязательно
Электронная почта учетной записи службы, которая будет использоваться для генерации OAuth-токен.
Учетная запись службы должна находиться в том же проекте, что и задача.
uri
строка / обязательно
Полный URI-путь, на который будет отправлен запрос.
name
строка / обязательно
Имя задачи.
project
строка
Проект Google Cloud Platform для использования.
pubsub_target
словарь
Целевая Pub/Sub. Если задача предоставляет целевой Pub/Sub, планировщик задач опубликует сообщение в указанную тему.
attributes
словарь
Атрибуты для PubsubMessage.
Сообщение Pubsub должно содержать либо непустые данные, либо хотя бы один атрибут.
data
строка
Загрузка сообщения для PubsubMessage.
Сообщение Pubsub должно содержать либо непустые данные, либо хотя бы один атрибут.
topic_name
строка / обязательно
Полное имя ресурса темы Cloud Pub/Sub, в которую будут публиковаться сообщения при доставке задачи. ~>**ПРИМЕЧАНИЕ:** Имя темы должно соответствовать формату, требуемому для PublishRequest.name в PubSub, например, `projects/my-project/topics/my-topic`.
region
строка / обязательно
Регион, в котором находится задача планировщика.
retry_config
словарь
По умолчанию, если задача не завершается успешно (то есть не получено подтверждение от обработчика), она будет повторно выполнена с экспоненциальной задержкой в соответствии с параметрами.
max_backoff_duration
строка
Максимальное время ожидания перед повторной попыткой выполнения задачи после ее завершения с ошибкой.
Продолжительность в секундах с до девятью дробными цифрами, заканчивающаяся на 's'.
max_doublings
целое число
Интервал между повторными попытками будет удваиваться maxDoublings раз.
Интервал повторной попытки задачи начинается с minBackoffDuration, затем удваивается maxDoublings раз, затем увеличивается линейно и, наконец, повторяется с интервалами maxBackoffDuration до retryCount раз.
max_retry_duration
строка
Срок для повторных попыток выполнения неудачной задачи, измеряемый с момента первой попытки выполнения. Если указан retryCount, задача будет выполняться повторно до тех пор, пока не будут достигнуты оба предела.
Продолжительность в секундах с до девятью дробными цифрами, заканчивающаяся на 's'.
min_backoff_duration
строка
Минимальное время ожидания перед повторной попыткой выполнения задачи после ее завершения с ошибкой.
Продолжительность в секундах с до девятью дробными цифрами, заканчивающаяся на 's'.
retry_count
целое число
Количество попыток, которые система предпримет для выполнения задачи с использованием процедуры экспоненциальной задержки, описанной в maxDoublings.
Значения больше 5 и отрицательные значения не допускаются.
schedule
строка
Описывает график выполнения задачи.
scopes
список / элементы=строка
Массив используемых областей.
service_account_contents
jsonarg
Содержание файла JSON учетной записи службы, представленное либо словарем, либо строкой JSON, которая его представляет.
service_account_email
string
Необязательный адрес электронной почты учетной записи сервиса, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию.
service_account_file
path
Путь к файлу JSON учетной записи сервиса, если тип serviceaccount выбран как тип.
state
string
    Choices:
  • present ←
  • absent
Указывает, должен ли данный объект существовать в GCP
time_zone
string
Значение по умолчанию:
"Etc/UTC"
Указывает часовой пояс, используемый при интерпретации расписания.
Значение этого поля должно быть именем часового пояса из базы данных tz.

Примечания

Примечание

  • Ссылка на API: https://cloud.google.com/scheduler/docs/reference/rest/
  • Официальная документация: https://cloud.google.com/scheduler/
  • для аутентификации можно установить 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 job
  google.cloud.gcp_cloudscheduler_job:
    name: job
    region: us-central1
    schedule: "*/4 * * * *"
    description: test app engine job
    time_zone: Europe/London
    attempt_deadline: 320s
    app_engine_http_target:
      http_method: POST
      app_engine_routing:
        service: web
        version: prod
        instance: my-instance-001
      relative_uri: "/ping"
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

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

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

Краткое описание полей Возвращаемое значение Описание
appEngineHttpTarget
complex
success
Целевой ресурс App Engine HTTP.
Если задача указывает целевой ресурс App Engine HTTP, задача Cron отправит запрос экземпляру службы.

appEngineRouting
complex
success
Настройки маршрутизации App Engine для задачи.

instance
string
success
Экземпляр приложения.
По умолчанию задача отправляется на доступный экземпляр при попытке выполнения.

service
string
success
Служба приложения.
По умолчанию задача отправляется в службу, которая является службой по умолчанию при попытке выполнения.

version
string
success
Версия приложения.
По умолчанию задача отправляется в версию, которая является версией по умолчанию при попытке выполнения.

body
string
success
Тело HTTP-запроса. Тело запроса разрешено только в том случае, если HTTP-метод — POST или PUT. Установка тела для задачи с несовместимым HttpMethod приведет к ошибке «некорректный аргумент».

headers
dictionary
success
Заголовки HTTP-запроса.
Этот словарь содержит имена и значения заголовков. Заголовки можно задать при создании задачи.

httpMethod
string
success
Какой HTTP-метод использовать для запроса.

relativeUri
string
success
Относительный URI.

attemptDeadline
string
success
Срок выполнения попыток задачи. Если обработчик запроса не отвечает к этому сроку, запрос отменяется, а попытка отмечается как ошибка DEADLINE_EXCEEDED. Ошибка попытки отображается в журналах выполнения. Cloud Scheduler будет повторно пытаться выполнить задачу в соответствии с RetryConfig.
Допустимая продолжительность для этого срока: * Для HTTP-целей — от 15 секунд до 30 минут.
* Для App Engine HTTP-целей — от 15 секунд до 24 часов.
* **Примечание**: Для целей Pub/Sub это поле игнорируется — установка его приведет к неразрешимой разнице.
Продолжительность в секундах с точностью до девяти знаков после запятой, завершаемая символом 's'. Пример: "3.5s".

description
string
success
Описание задачи для человека. Это строка не должна содержать более 500 символов.

httpTarget
complex
success
Целевой ресурс HTTP.
Если задача указывает целевой ресурс HTTP, задача Cron отправит запрос на указанный URL.

body
string
success
Тело HTTP-запроса. Тело запроса разрешено только в том случае, если HTTP-метод — POST, PUT или PATCH. Установка тела для задачи с несовместимым HttpMethod является ошибкой.

headers
dictionary
success
Этот словарь содержит имена и значения заголовков. Повторные заголовки не поддерживаются, но значение заголовка может содержать запятые.

httpMethod
string
success
Какой HTTP-метод использовать для запроса.

oauthToken
complex
success
Содержит информацию, необходимую для генерации маркера OAuth.
Этот тип авторизации следует использовать при отправке запросов на конечную точку GCP.

scope
string
success
Область OAuth, используемая для генерации токена доступа OAuth. Если не указано, будет использоваться "https://www.googleapis.com/auth/cloud-platform".

serviceAccountEmail
string
success
Электронный адрес учетной записи службы, используемой для генерации маркера OAuth.
Учетная запись службы должна находиться в том же проекте, что и задача.

oidcToken
complex
success
Содержит информацию, необходимую для генерации токена OpenID Connect.
Этот тип авторизации следует использовать при отправке запросов на конечные точки сторонних разработчиков или Cloud Run.

audience
string
success
Аудитория, используемая при генерации токена OIDC. Если не указано, будет использован URI, указанный в целевом ресурсе.

serviceAccountEmail
string
success
Электронный адрес учетной записи службы, используемой для генерации маркера OAuth.
Учетная запись службы должна находиться в том же проекте, что и задача.

uri
string
success
Полный URI-путь, на который будет отправлен запрос.

name
string
success
Имя задачи.

pubsubTarget
complex
success
Целевой ресурс Pub/Sub. Если задача указывает целевой ресурс Pub/Sub, задача Cron опубликует сообщение в указанную тему.

attributes
dictionary
success
Атрибуты для PubsubMessage.
Сообщение Pub/Sub должно содержать либо непустые данные, либо хотя бы один атрибут.

data
string
success
Полезная нагрузка сообщения для PubsubMessage.
Сообщение Pub/Sub должно содержать либо непустые данные, либо хотя бы один атрибут.

topicName
string
success
Полное имя ресурса темы Cloud Pub/Sub, в которую будут публиковаться сообщения при выполнении задачи. ~>**ПРИМЕЧАНИЕ**: Имя темы должно иметь тот же формат, что и требуется для PublishRequest.name в Pub/Sub, например, `projects/my-project/topics/my-topic`.

region
string
success
Регион, где находится задача планировщика.

retryConfig
complex
success
По умолчанию, если задача не завершилась успешно, то есть от обработчика не получено подтверждение, она будет повторно выполнена с экспоненциальной задержкой в соответствии с параметрами.

maxBackoffDuration
string
success
Максимальное время ожидания перед повторной попыткой выполнения задачи после ее завершения с ошибкой.
Продолжительность в секундах с точностью до девяти знаков после запятой, завершаемая символом 's'.

maxDoublings
integer
success
Время между повторными попытками будет удваиваться maxDoublings раз.
Интервал повторной попытки задачи начинается с minBackoffDuration, затем удваивается maxDoublings раз, затем увеличивается линейно и, наконец, повторные попытки выполняются с интервалами maxBackoffDuration до достижения retryCount раз.

maxRetryDuration
string
success
Предельное время для повторной попытки выполнения задачи после завершения с ошибкой, измеряемое с момента первой попытки выполнения. Если указано с retryCount, задача будет повторно выполняться до тех пор, пока не будут достигнуты оба предела.
Продолжительность в секундах с точностью до девяти знаков после запятой, завершаемая символом 's'.

minBackoffDuration
string
success
Минимальное время ожидания перед повторной попыткой выполнения задачи после ее завершения с ошибкой.
Продолжительность в секундах с точностью до девяти знаков после запятой, завершаемая символом 's'.

retryCount
integer
success
Количество попыток, которые система предпримет для выполнения задачи с экспоненциальной задержкой, описанной maxDoublings.
Значения больше 5 и отрицательные значения запрещены.

schedule
string
success
Описывает расписание, по которому задача будет выполняться.

timeZone
string
success
Указывает часовой пояс, используемый при интерпретации расписания.
Значение этого поля должно быть названием часового пояса из базы данных tz.



Авторы

  • 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_cloudscheduler_job_module.html

Spec-Zone.ru

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