Spec-Zone.ru › Ansible 2.9

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

Новая в версии 2.9.

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

Обзор

  • Планируемая задача, которая может публиковать сообщение 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 приведет к ошибке неверного аргумента.
headers
словарь
HTTP-заголовки запроса.
Этот словарь содержит имена и значения заголовков. Заголовки можно задавать при создании задания.
http_method
строка
Какой HTTP-метод использовать для запроса.
relative_uri
строка / обязательно
Относительный URI.
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.
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/PROJECT_ID/topics/TOPIC_ID.
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
integer
Количество попыток, которые система предпримет для выполнения задания, используя процедуру экспоненциального отката, описанную в maxDoublings.
Значения, превышающие 5, и отрицательные значения запрещены.
schedule
string
Описание графика выполнения задания.
scopes
list
Массив используемых областей.
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, используя переменную окружения 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 job
  gcp_cloudscheduler_job:
    name: job
    region: us-central1
    schedule: "*/4 * * * *"
    description: test app engine job
    time_zone: Europe/London
    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 приведет к ошибке неверного аргумента.

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

httpMethod
string
success
HTTP-метод, используемый для запроса.

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

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

httpTarget
complex
success
HTTP-цель.
Если задача предоставляет HTTP-цель, планировщик отправит запрос на указанный 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, планировщик опубликует сообщение в указанную тему.

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

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

topicName
string
success
Имя темы Cloud Pub/Sub, в которую будут публиковаться сообщения при доставке задачи. Имя темы должно соответствовать формату, требуемому параметром PublishRequest.name в PubSub, например projects/PROJECT_ID/topics/TOPIC_ID.

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.



Статус

  • Интерфейс этого модуля не гарантируется как обратимо совместимый. [превью]
  • Этот модуль поддерживается сообществом 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.9/modules/gcp_cloudscheduler_job_module.html

Spec-Zone.ru

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