google.cloud.gcp_cloudscheduler_job 模块 – 创建一个 GCP 作业
注意
此模块是 google.cloud 集合(版本 1.4.1)的一部分。
如果您使用的是 ansible
包,您可能已经安装了这个集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install google.cloud
。您需要进一步的要求才能使用此模块,有关详细信息,请参阅 要求。
要在剧本中使用它,请指定: google.cloud.gcp_cloudscheduler_job
。
注意
由于违反 Ansible 包含要求,google.cloud 集合将从 Ansible 12 中删除。该集合有 未解决的健全性测试失败。有关更多信息,请参阅讨论主题。
概要
一个计划的作业,可以使用 crontab 格式字符串,每 X 个时间间隔发布一个 pubsub 消息或一个 http 请求。
要使用 Cloud Scheduler,您的项目必须包含一个位于支持区域之一的 App Engine 应用。如果您的项目没有 App Engine 应用,则必须创建一个。
要求
执行此模块的主机需要以下要求。
python >= 2.6
requests >= 2.18.4
google-auth >= 1.3.0
参数
参数 |
注释 |
---|---|
如果凭据类型为 accesstoken,则为 OAuth2 访问令牌。 |
|
App Engine HTTP 目标。 如果作业提供 App Engine HTTP 目标,则 cron 将向服务实例发送请求。 |
|
作业的 App Engine 路由设置。 |
|
App 实例。 默认情况下,作业将发送到尝试作业时可用的实例。 |
|
App 服务。 默认情况下,作业将发送到尝试作业时作为默认服务的服务。 |
|
App 版本。 默认情况下,作业将发送到尝试作业时作为默认版本的版本。 |
|
HTTP 请求正文。仅当 HTTP 方法为 POST 或 PUT 时才允许请求正文。在具有不兼容 HttpMethod 的作业上设置正文会导致无效参数错误。 一个 base64 编码的字符串。 |
|
HTTP 请求头。 此映射包含头字段名称和值。可以在创建作业时设置头。 |
|
用于请求的 HTTP 方法。 |
|
相对 URI。 |
|
作业尝试的截止时间。如果请求处理程序未在此截止时间前响应,则请求将被取消,并且该尝试将标记为 DEADLINE_EXCEEDED 失败。可以在执行日志中查看失败的尝试。Cloud Scheduler 将根据 RetryConfig 重试作业。 此截止时间允许的持续时间为: * 对于 HTTP 目标,介于 15 秒到 30 分钟之间。 * 对于 App Engine HTTP 目标,介于 15 秒到 24 小时之间。 * **注意**:对于 PubSub 目标,此字段将被忽略 - 设置它将引入一个不可解析的差异。 一个持续时间,以秒为单位,最多有九个小数位,并以“s”结尾。示例:“3.5s”。 默认值: |
|
使用的凭据类型。 选择
|
|
作业的人工可读描述。此字符串的字符数不得超过 500 个。 |
|
指定您在此模块中运行的 Ansible 环境。 除非您知道自己在做什么,否则不应设置此项。 这只会更改任何 API 请求的 User Agent 字符串。 |
|
HTTP 目标。 如果作业提供 http_target,则 cron 将向目标 URL 发送请求。 |
|
HTTP 请求正文。仅当 HTTP 方法为 POST、PUT 或 PATCH 时才允许请求正文。在具有不兼容 HttpMethod 的作业上设置正文是一个错误。 一个 base64 编码的字符串。 |
|
此映射包含头字段名称和值。不支持重复的头,但头值可以包含逗号。 |
|
用于请求的 HTTP 方法。 |
|
包含生成 OAuth 令牌所需的信息。 当向 GCP 端点发送请求时,应使用此类型的授权。 |
|
用于生成 OAuth 访问令牌的 OAuth 范围。如果未指定,则将使用“https://www.googleapis.com/auth/cloud-platform”。 |
|
用于生成 OAuth 令牌的服务帐户电子邮件。 服务帐户必须与作业在同一项目内。 |
|
包含生成 OpenID Connect 令牌所需的信息。 当向第三方端点或 Cloud Run 发送请求时,应使用此类型的授权。 |
|
生成 OIDC 令牌时要使用的受众。如果未指定,将使用目标中指定的 URI。 |
|
用于生成 OAuth 令牌的服务帐户电子邮件。 服务帐户必须与作业在同一项目内。 |
|
请求将发送到的完整 URI 路径。 |
|
作业的名称。 |
|
要使用的 Google Cloud Platform 项目。 |
|
Pub/Sub 目标。如果作业提供 Pub/Sub 目标,则 cron 将向提供的主题发布消息。 |
|
PubsubMessage 的属性。 Pubsub 消息必须包含非空数据,或至少包含一个属性。 |
|
PubsubMessage 的消息有效负载。 Pubsub 消息必须包含非空数据,或至少包含一个属性。 一个 base64 编码的字符串。 |
|
Cloud Pub/Sub 主题的完整资源名称,当传递作业时,消息将发布到该主题。~>**注意:**主题名称必须与 PubSub 的 PublishRequest.name 所需的格式相同,例如 `projects/my-project/topics/my-topic`。 |
|
调度器作业所在的区域。 |
|
默认情况下,如果作业未成功完成,这意味着未收到来自处理程序的确认,则会根据设置使用指数退避重试。 |
|
作业失败后重试作业前要等待的最大时间量。 一个以秒为单位的持续时间,最多包含九位小数,并以“s”结尾。 |
|
重试之间的时间将翻倍 maxDoublings 次。 作业的重试间隔从 minBackoffDuration 开始,然后翻倍 maxDoublings 次,然后线性增加,最后以 maxBackoffDuration 的间隔重试,直到达到 retryCount 次。 |
|
重试失败作业的时间限制,从首次尝试执行时开始计算。如果指定了 retryCount,则将重试该作业,直到达到这两个限制。 一个以秒为单位的持续时间,最多包含九位小数,并以“s”结尾。 |
|
作业失败后,在重试之前等待的最短时间。 一个以秒为单位的持续时间,最多包含九位小数,并以“s”结尾。 |
|
系统将使用 maxDoublings 描述的指数退避过程运行作业的尝试次数。 不允许大于 5 和负值。 |
|
描述作业的执行计划。 |
|
要使用的作用域数组 |
|
服务帐户 JSON 文件的内容,可以是字典形式,也可以是表示它的 JSON 字符串。 |
|
如果选择 machineaccount 并且用户不希望使用默认电子邮件,则可选的服务帐户电子邮件地址。 |
|
如果选择 serviceaccount 作为类型,则为服务帐户 JSON 文件的路径。 |
|
给定的对象是否应该存在于 GCP 中 选择
|
|
指定用于解释计划的时区。 此字段的值必须是 tz 数据库中的时区名称。 默认值: |
注释
注意
API 参考:https://cloud.google.com/scheduler/docs/reference/rest/
对于身份验证,您可以使用
GCP_SERVICE_ACCOUNT_FILE
环境变量设置 service_account_file。对于身份验证,您可以使用
GCP_SERVICE_ACCOUNT_CONTENTS
环境变量设置 service_account_contents。对于身份验证,您可以使用
GCP_SERVICE_ACCOUNT_EMAIL
环境变量设置 service_account_email。对于身份验证,您可以使用
GCP_ACCESS_TOKEN
环境变量设置 access_token。对于身份验证,您可以使用
GCP_AUTH_KIND
环境变量设置 auth_kind。对于身份验证,您可以使用
GCP_SCOPES
环境变量设置 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
返回值
通用返回值记录在 这里,以下是此模块特有的字段
键 |
描述 |
---|---|
App Engine HTTP 目标。 如果作业提供 App Engine HTTP 目标,则 cron 将向服务实例发送请求。 返回值:成功 |
|
作业的 App Engine 路由设置。 返回值:成功 |
|
App 实例。 默认情况下,作业将发送到尝试作业时可用的实例。 返回值:成功 |
|
App 服务。 默认情况下,作业将发送到尝试作业时作为默认服务的服务。 返回值:成功 |
|
App 版本。 默认情况下,作业将发送到尝试作业时作为默认版本的版本。 返回值:成功 |
|
HTTP 请求正文。仅当 HTTP 方法为 POST 或 PUT 时才允许请求正文。在具有不兼容 HttpMethod 的作业上设置正文会导致无效参数错误。 一个 base64 编码的字符串。 返回值:成功 |
|
HTTP 请求头。 此映射包含头字段名称和值。可以在创建作业时设置头。 返回值:成功 |
|
用于请求的 HTTP 方法。 返回值:成功 |
|
相对 URI。 返回值:成功 |
|
作业尝试的截止时间。如果请求处理程序未在此截止时间前响应,则请求将被取消,并且该尝试将标记为 DEADLINE_EXCEEDED 失败。可以在执行日志中查看失败的尝试。Cloud Scheduler 将根据 RetryConfig 重试作业。 此截止时间允许的持续时间为: * 对于 HTTP 目标,介于 15 秒到 30 分钟之间。 * 对于 App Engine HTTP 目标,介于 15 秒到 24 小时之间。 * **注意**:对于 PubSub 目标,此字段将被忽略 - 设置它将引入一个不可解析的差异。 一个持续时间,以秒为单位,最多有九个小数位,并以“s”结尾。示例:“3.5s”。 返回值:成功 |
|
作业的人工可读描述。此字符串的字符数不得超过 500 个。 返回值:成功 |
|
HTTP 目标。 如果作业提供 http_target,则 cron 将向目标 URL 发送请求。 返回值:成功 |
|
HTTP 请求正文。仅当 HTTP 方法为 POST、PUT 或 PATCH 时才允许请求正文。在具有不兼容 HttpMethod 的作业上设置正文是一个错误。 一个 base64 编码的字符串。 返回值:成功 |
|
此映射包含头字段名称和值。不支持重复的头,但头值可以包含逗号。 返回值:成功 |
|
用于请求的 HTTP 方法。 返回值:成功 |
|
包含生成 OAuth 令牌所需的信息。 当向 GCP 端点发送请求时,应使用此类型的授权。 返回值:成功 |
|
用于生成 OAuth 访问令牌的 OAuth 范围。如果未指定,则将使用“https://www.googleapis.com/auth/cloud-platform”。 返回值:成功 |
|
用于生成 OAuth 令牌的服务帐户电子邮件。 服务帐户必须与作业在同一项目内。 返回值:成功 |
|
包含生成 OpenID Connect 令牌所需的信息。 当向第三方端点或 Cloud Run 发送请求时,应使用此类型的授权。 返回值:成功 |
|
生成 OIDC 令牌时要使用的受众。如果未指定,将使用目标中指定的 URI。 返回值:成功 |
|
用于生成 OAuth 令牌的服务帐户电子邮件。 服务帐户必须与作业在同一项目内。 返回值:成功 |
|
请求将发送到的完整 URI 路径。 返回值:成功 |
|
作业的名称。 返回值:成功 |
|
Pub/Sub 目标。如果作业提供 Pub/Sub 目标,则 cron 将向提供的主题发布消息。 返回值:成功 |
|
PubsubMessage 的属性。 Pubsub 消息必须包含非空数据,或至少包含一个属性。 返回值:成功 |
|
PubsubMessage 的消息有效负载。 Pubsub 消息必须包含非空数据,或至少包含一个属性。 一个 base64 编码的字符串。 返回值:成功 |
|
Cloud Pub/Sub 主题的完整资源名称,当传递作业时,消息将发布到该主题。~>**注意:**主题名称必须与 PubSub 的 PublishRequest.name 所需的格式相同,例如 `projects/my-project/topics/my-topic`。 返回值:成功 |
|
调度器作业所在的区域。 返回值:成功 |
|
默认情况下,如果作业未成功完成,这意味着未收到来自处理程序的确认,则会根据设置使用指数退避重试。 返回值:成功 |
|
作业失败后重试作业前要等待的最大时间量。 一个以秒为单位的持续时间,最多包含九位小数,并以“s”结尾。 返回值:成功 |
|
重试之间的时间将翻倍 maxDoublings 次。 作业的重试间隔从 minBackoffDuration 开始,然后翻倍 maxDoublings 次,然后线性增加,最后以 maxBackoffDuration 的间隔重试,直到达到 retryCount 次。 返回值:成功 |
|
重试失败作业的时间限制,从首次尝试执行时开始计算。如果指定了 retryCount,则将重试该作业,直到达到这两个限制。 一个以秒为单位的持续时间,最多包含九位小数,并以“s”结尾。 返回值:成功 |
|
作业失败后,在重试之前等待的最短时间。 一个以秒为单位的持续时间,最多包含九位小数,并以“s”结尾。 返回值:成功 |
|
系统将使用 maxDoublings 描述的指数退避过程运行作业的尝试次数。 不允许大于 5 和负值。 返回值:成功 |
|
描述作业的执行计划。 返回值:成功 |
|
指定用于解释计划的时区。 此字段的值必须是 tz 数据库中的时区名称。 返回值:成功 |