Spec-Zone.ru › Ansible 2.11

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

Примечание

Этот плагин входит в коллекцию google.cloud (версия 1.0.2).

Для его установки используйте: 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. Установка тела в задаче с несовместимым HttpMethod приведет к ошибке неверного аргумента.
Строка, закодированная в base64.
headers
словарь
Заголовки HTTP-запроса.
Этот словарь содержит имена и значения заголовков. Заголовки можно установить при создании задачи.
http_method
строка
Какой HTTP-метод использовать для запроса.
relative_uri
строка / обязательно
Относительный URI.
attempt_deadline
строка
По умолчанию:
"180s"
Срок выполнения попытки задачи. Если обработчик запроса не отвечает к этому сроку, запрос отменяется, а попытка отмечается как ошибка DEADLINE_EXCEEDED. Неудачную попытку можно просмотреть в логах выполнения. Cloud Scheduler повторит задачу в соответствии с RetryConfig.
Разрешенная продолжительность для этого срока: * Для HTTP-целей — от 15 секунд до 30 минут.
* Для HTTP-целей App Engine — от 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. Установка тела в задаче с несовместимым HttpMethod приведет к ошибке.
Строка, закодированная в base64.
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 должно содержать либо непустые данные, либо хотя бы один атрибут.
Строка, закодированная в base64.
topic_name
строка / обязательно
Полное имя ресурса темы Cloud Pub/Sub, в которую будут публиковаться сообщения при доставке задачи. ~>**ПРИМЕЧАНИЕ:** Имя темы должно соответствовать формату, требуемому для PublishRequest.name в PubSub, например, `projects/my-project/topics/my-topic`.
region
строка / обязательно
Регион, в котором находится задача планировщика.
retry_config
словарь
По умолчанию, если задача не выполняется успешно, то есть от обработчика не получено подтверждение, она будет повторно выполняться с экспоненциальной задержкой в соответствии с настройками.
max_backoff_duration
строка
Максимальное время ожидания перед повторной попыткой выполнения задачи после её неудачи.
Продолжительность в секундах с точностью до девяти знаков после запятой.
max_doublings
целое число
Количество раз, когда время между повторами будет удваиваться.
Интервал повтора задачи начинается с minBackoffDuration, затем удваивается maxDoublings раз, затем увеличивается линейно и, наконец, повторяется с интервалами maxBackoffDuration до retryCount раз.
max_retry_duration
строка
Предельное время для повторных попыток выполнения неудачной задачи, измеряемое с момента первой попытки выполнения.
Продолжительность в секундах с точностью до девяти знаков после запятой.
min_backoff_duration
строка
Минимальное время ожидания перед повторной попыткой выполнения задачи после её неудачи.
Продолжительность в секундах с точностью до девяти знаков после запятой.
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.
  • Значения переменных среды будут использоваться только в том случае, если значения в playбуке не заданы.
  • Параметры 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, планировщик задач отправит запрос в экземпляр службы.

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

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

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

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

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

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_target, планировщик задач отправит запрос по указанному URL.

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

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, планировщик задач опубликует сообщение в указанную тему.

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

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

topicName
string
success
Полное имя ресурса темы Cloud Pub/Sub, в которую будут публиковаться сообщения при доставке задания. ~>**ПРИМЕЧАНИЕ**: Имя темы должно соответствовать формату, требуемому для параметра name в PublishRequest PubSub, например, `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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/google/cloud/gcp_cloudscheduler_job_module.html

Spec-Zone.ru

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