Модуль google.cloud.gcp_cloudscheduler_job — создание задания GCP
Примечание
Этот модуль входит в коллекцию google.cloud (версия 1.13.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: 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
Параметры
Параметр | Комментарии |
|---|---|
access_token string | Токен доступа OAuth2, если тип учетных данных — accesstoken. |
app_engine_http_target dictionary | Цель HTTP в App Engine. Если для задания указана цель HTTP в App Engine, cron отправит запрос экземпляру службы. |
|
app_engine_routing dictionary |
Настройка маршрутизации App Engine для задания. |
|
instance string |
Экземпляр приложения. По умолчанию задание отправляется экземпляру, доступному в момент попытки его выполнения. |
|
service string |
Служба приложения. По умолчанию задание отправляется службе, являющейся службой по умолчанию в момент попытки его выполнения. |
|
version string |
Версия приложения. По умолчанию задание отправляется версии, являющейся версией по умолчанию в момент попытки его выполнения. |
|
body string |
Тело HTTP-запроса. Тело запроса допускается только для HTTP-методов POST или PUT. Если задать тело для задания с несовместимым значением HttpMethod, возникнет ошибка недопустимого аргумента. Строка в кодировке Base64. |
|
headers dictionary |
Заголовки HTTP-запроса. Эта карта содержит имена и значения полей заголовков. Заголовки можно задать при создании задания. |
|
http_method string |
HTTP-метод, используемый для запроса. |
|
relative_uri string / обязательный |
Относительный URI. |
attempt_deadline string | Крайний срок выполнения попыток задания. Если обработчик запроса не ответит к этому сроку, запрос будет отменен, а попытка завершится с ошибкой DEADLINE_EXCEEDED. Информацию о неудачной попытке можно просмотреть в журналах выполнения. Cloud Scheduler повторит попытку выполнения задания в соответствии с RetryConfig. Допустимая продолжительность этого срока: * для HTTP-целей — от 15 секунд до 30 минут. * Для HTTP-целей App Engine — от 15 секунд до 24 часов. * **Примечание**: для целей PubSub это поле игнорируется — его установка приведет к неустранимому различию конфигураций. Продолжительность в секундах с точностью до девяти дробных знаков, заканчивающаяся символом «s». Пример: «3.5s». По умолчанию: |
auth_kind string / обязательный | Тип используемых учетных данных. Варианты:
|
description string | Понятное человеку описание задания. Длина строки не должна превышать 500 символов. |
env_type string | Указывает среду Ansible, в которой выполняется этот модуль. Не задавайте это значение, если не уверены в своих действиях. Этот параметр изменяет только строку User Agent для запросов к API. |
http_target dictionary | HTTP-цель. Если для задания указана цель http_target, cron отправит запрос на целевой URL. |
|
body string |
Тело HTTP-запроса. Тело запроса допускается только для HTTP-методов POST, PUT или PATCH. Если задать тело для задания с несовместимым значением HttpMethod, возникнет ошибка. Строка в кодировке Base64. |
|
headers dictionary |
Эта карта содержит имена и значения полей заголовков. Повторяющиеся заголовки не поддерживаются, но значение заголовка может содержать запятые. |
|
http_method string |
HTTP-метод, используемый для запроса. |
|
oauth_token dictionary |
Содержит сведения, необходимые для создания токена OAuth. Этот тип авторизации следует использовать при отправке запросов к конечной точке GCP. |
|
scope string |
Область действия OAuth для создания токена доступа OAuth. Если значение не указано, будет использоваться «https://www.googleapis.com/auth/cloud-platform». |
|
service_account_email string / обязательный |
Адрес электронной почты сервисного аккаунта, используемого для создания токена OAuth. Сервисный аккаунт должен находиться в том же проекте, что и задание. |
|
oidc_token dictionary |
Содержит сведения, необходимые для создания токена OpenID Connect. Этот тип авторизации следует использовать при отправке запросов к сторонним конечным точкам или Cloud Run. |
|
audience string |
Аудитория, используемая при создании токена OIDC. Если значение не указано, будет использоваться URI, указанный в целевом объекте. |
|
service_account_email string / обязательный |
Адрес электронной почты сервисного аккаунта, используемого для создания токена OAuth. Сервисный аккаунт должен находиться в том же проекте, что и задание. |
|
uri string / обязательный |
Полный путь URI, на который будет отправлен запрос. |
name string / обязательный | Имя задания. |
project string | Проект Google Cloud Platform, который следует использовать. |
pubsub_target dictionary | Цель Pub/Sub. Если для задания указана цель Pub/Sub, cron опубликует сообщение в указанной теме. |
|
attributes dictionary |
Атрибуты для PubsubMessage. Сообщение Pubsub должно содержать либо непустые данные, либо хотя бы один атрибут. |
|
data string |
Данные сообщения PubsubMessage. Сообщение Pubsub должно содержать либо непустые данные, либо хотя бы один атрибут. Строка в кодировке Base64. |
|
topic_name string / обязательный |
Полное имя ресурса темы Cloud Pub/Sub, в которую будут публиковаться сообщения при запуске задания. ~>**ПРИМЕЧАНИЕ:** Имя темы должно иметь формат, требуемый для PubSub PublishRequest.name, например `projects/my-project/topics/my-topic`. |
region string / обязательный | Регион, в котором находится задание планировщика. |
retry_config dictionary | По умолчанию, если задание не завершается успешно (то есть обработчик не отправляет подтверждение), повторные попытки выполняются с экспоненциальной задержкой в соответствии с указанными настройками. |
|
max_backoff_duration string |
Максимальное время ожидания перед повторной попыткой после сбоя задания. Продолжительность в секундах с точностью до девяти дробных знаков, заканчивающаяся символом «s». |
|
max_doublings integer |
Интервал между повторными попытками будет удваиваться maxDoublings раз. Интервал повторных попыток задания начинается с minBackoffDuration, затем удваивается maxDoublings раз, после чего увеличивается линейно; в конце выполняются повторные попытки с интервалами maxBackoffDuration, но не более retryCount раз. |
|
max_retry_duration string |
Ограничение по времени для повторных попыток выполнения задания после сбоя, отсчитываемое с момента первой попытки выполнения. Если параметр задан вместе с retryCount, повторные попытки будут выполняться до достижения обоих ограничений. Продолжительность в секундах с точностью до девяти дробных знаков, заканчивающаяся символом «s». |
|
min_backoff_duration string |
Минимальное время ожидания перед повторной попыткой после сбоя задания. Продолжительность в секундах с точностью до девяти дробных знаков, заканчивающаяся символом «s». |
|
retry_count integer |
Количество попыток запуска задания, выполняемых системой с использованием процедуры экспоненциальной задержки, описанной параметром maxDoublings. Значения больше 5 и отрицательные значения не допускаются. |
schedule string | Описывает расписание выполнения задания. |
scopes list / элементы типа string | Массив используемых областей действия |
service_account_contents jsonarg | Содержимое JSON-файла сервисного аккаунта в виде словаря или JSON-строки, представляющей его. |
service_account_email string | Необязательный адрес электронной почты сервисного аккаунта, если выбран machineaccount и пользователь не хочет использовать адрес по умолчанию. |
service_account_file path | Путь к JSON-файлу сервисного аккаунта, если в качестве типа выбрано serviceaccount. |
state string | Должен ли указанный объект существовать в GCP Варианты:
|
time_zone string | Указывает часовой пояс, используемый для интерпретации расписания. Значение этого поля должно быть названием часового пояса из базы данных 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. - Для аутентификации можно задать access_token с помощью переменной среды
GCP_ACCESS_TOKEN. - Для аутентификации можно задать auth_kind с помощью переменной среды
GCP_AUTH_KIND. - Для аутентификации можно задать scopes с помощью переменной среды
GCP_SCOPES. - Значения переменных среды используются только в том случае, если значения не заданы в плейбуке.
- Параметры 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 | Цель HTTP для App Engine. Если для задания указана цель HTTP для App Engine, cron отправит запрос экземпляру сервиса. Возвращается: при успехе |
|
appEngineRouting complex |
Настройка маршрутизации App Engine для задания. Возвращается: при успехе |
|
instance string |
Экземпляр приложения. По умолчанию задание отправляется экземпляру, доступному в момент выполнения задания. Возвращается: при успехе |
|
service string |
Сервис приложения. По умолчанию задание отправляется сервису, являющемуся сервисом по умолчанию в момент выполнения задания. Возвращается: при успехе |
|
version string |
Версия приложения. По умолчанию задание отправляется версии, являющейся версией по умолчанию в момент выполнения задания. Возвращается: при успехе |
|
body string |
Тело HTTP-запроса. Тело запроса разрешено только для методов HTTP POST и PUT. Указание тела для задания с несовместимым значением HttpMethod приведёт к ошибке недопустимого аргумента. Строка в кодировке Base64. Возвращается: при успехе |
|
headers dictionary |
Заголовки HTTP-запроса. Эта карта содержит имена и значения полей заголовков. Заголовки можно указать при создании задания. Возвращается: при успехе |
|
httpMethod string |
Метод HTTP, используемый для запроса. Возвращается: при успехе |
|
relativeUri string |
Относительный URI. Возвращается: при успехе |
attemptDeadline string | Срок выполнения попыток запуска задания. Если обработчик запроса не ответит до наступления этого срока, запрос будет отменён, а попытка помечена как неудачная с ошибкой DEADLINE_EXCEEDED. Сведения о неудачной попытке можно просмотреть в журналах выполнения. Cloud Scheduler будет повторять попытки запуска задания в соответствии с RetryConfig. Допустимая продолжительность этого срока: * для целей HTTP — от 15 секунд до 30 минут. * для целей HTTP в App Engine — от 15 секунд до 24 часов. * **Примечание**: для целей PubSub это поле игнорируется; его настройка приведёт к неустранимому расхождению. Длительность в секундах, содержащая до девяти десятичных знаков и оканчивающаяся символом «s». Пример: «3.5s». Возвращается: при успехе |
description string | Удобное для чтения описание задания. Эта строка не должна содержать более 500 символов. Возвращается: при успехе |
httpTarget complex | Цель HTTP. Если для задания указана цель http_target, cron отправит запрос на целевой URL. Возвращается: при успехе |
|
body string |
Тело HTTP-запроса. Тело запроса разрешено только для методов HTTP POST, PUT или PATCH. Указание тела для задания с несовместимым значением HttpMethod считается ошибкой. Строка в кодировке Base64. Возвращается: при успехе |
|
headers dictionary |
Эта карта содержит имена и значения полей заголовков. Повторяющиеся заголовки не поддерживаются, однако значение заголовка может содержать запятые. Возвращается: при успехе |
|
httpMethod string |
Метод HTTP, используемый для запроса. Возвращается: при успехе |
|
oauthToken complex |
Содержит сведения, необходимые для создания токена OAuth. Этот тип авторизации следует использовать при отправке запросов к конечной точке GCP. Возвращается: при успехе |
|
scope string |
Область OAuth, используемая для создания токена доступа OAuth. Если она не указана, будет использоваться «https://www.googleapis.com/auth/cloud-platform”. Возвращается: при успехе |
|
serviceAccountEmail string |
Адрес электронной почты учётной записи службы, используемой для создания токена OAuth. Учётная запись службы должна принадлежать тому же проекту, что и задание. Возвращается: при успехе |
|
oidcToken complex |
Содержит сведения, необходимые для создания токена OpenID Connect. Этот тип авторизации следует использовать при отправке запросов к сторонним конечным точкам или Cloud Run. Возвращается: при успехе |
|
audience string |
Аудитория, используемая при создании токена OIDC. Если она не указана, будет использоваться URI, указанный в target. Возвращается: при успехе |
|
serviceAccountEmail string |
Адрес электронной почты учётной записи службы, используемой для создания токена OAuth. Учётная запись службы должна принадлежать тому же проекту, что и задание. Возвращается: при успехе |
|
uri string |
Полный путь URI, на который будет отправлен запрос. Возвращается: при успехе |
name string | Имя задания. Возвращается: при успехе |
pubsubTarget complex | Цель Pub/Sub. Если для задания указана цель Pub/Sub, cron опубликует сообщение в заданную тему. Возвращается: при успехе |
|
attributes dictionary |
Атрибуты PubsubMessage. Сообщение Pubsub должно содержать либо непустые данные, либо хотя бы один атрибут. Возвращается: при успехе |
|
data string |
Полезная нагрузка сообщения PubsubMessage. Сообщение Pubsub должно содержать либо непустые данные, либо хотя бы один атрибут. Строка в кодировке Base64. Возвращается: при успехе |
|
topicName string |
Полное имя ресурса темы Cloud Pub/Sub, в которую будут публиковаться сообщения при выполнении задания. ~>**ПРИМЕЧАНИЕ:** Имя темы должно иметь формат, требуемый для PubSub’s PublishRequest.name, например `projects/my-project/topics/my-topic`. Возвращается: при успехе |
region string | Регион, в котором находится задание планировщика. Возвращается: при успехе |
retryConfig complex | По умолчанию, если задание не завершается успешно, то есть обработчик не отправляет подтверждение, попытки запуска будут повторяться с экспоненциальной задержкой в соответствии с указанными настройками. Возвращается: при успехе |
|
maxBackoffDuration string |
Максимальное время ожидания перед повторной попыткой запуска задания после сбоя. Длительность в секундах, содержащая до девяти десятичных знаков и оканчивающаяся символом «s». Возвращается: при успехе |
|
maxDoublings integer |
Интервал между повторными попытками будет удваиваться maxDoublings раз. Интервал повторных попыток для задания начинается с minBackoffDuration, затем удваивается maxDoublings раз, после чего увеличивается линейно; в конце повторные попытки выполняются с интервалом maxBackoffDuration, не более retryCount раз. Возвращается: при успехе |
|
maxRetryDuration string |
Предельное время повторных попыток запуска задания после сбоя, отсчитываемое с момента первой попытки выполнения. Если это значение указано вместе с retryCount, попытки будут выполняться, пока не будут достигнуты оба предела. Длительность в секундах, содержащая до девяти десятичных знаков и оканчивающаяся символом «s». Возвращается: при успехе |
|
minBackoffDuration string |
Минимальное время ожидания перед повторной попыткой запуска задания после сбоя. Длительность в секундах, содержащая до девяти десятичных знаков и оканчивающаяся символом «s». Возвращается: при успехе |
|
retryCount integer |
Количество попыток, которые система предпримет для запуска задания с использованием процедуры экспоненциальной задержки, описанной параметром maxDoublings. Значения больше 5 и отрицательные значения не допускаются. Возвращается: при успехе |
schedule string | Описывает расписание выполнения задания. Возвращается: при успехе |
timeZone string | Задаёт часовой пояс, используемый для интерпретации расписания. Значение этого поля должно быть названием часового пояса из базы данных tz. Возвращается: при успехе |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/google/cloud/gcp_cloudscheduler_job_module.html