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 数据库中的时区名称。 返回值:成功 | 
