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 строка / обязательно |
| Тип используемых учетных данных. | ||
| 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 |
| Указывает, должен ли данный объект существовать в 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