安排工作流

本教程介绍如何使用 Cloud Scheduler 自动执行工作流,以便工作流按特定时间表运行,在本例中,每 5 分钟运行一次。

目标

  1. 创建和部署可以接收运行时参数的工作流。
  2. 创建 Cloud Scheduler 作业,以便触发工作流并每 5 分钟执行一次该作业,并以正确的格式传入 JSON 参数。

费用

在本文档中,您将使用 Google Cloud的以下收费组件:

如需根据您的预计使用情况来估算费用,请使用价格计算器

新 Google Cloud 用户可能有资格申请免费试用

准备工作

  1. 为 Cloud Scheduler 设置环境,包括创建 App Engine 应用。
  2. 启用 Workflows API。

    启用 API 所需的角色

    如需启用 API,您需要拥有 serviceusage.services.enable 权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 获得了此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色

    启用 API

  3. 设置本教程中使用的默认位置:
      gcloud config set workflows/location REGION
    REGION 替换为您选择的受支持的 Workflows 位置
  4. 创建服务账号以供 Workflows 使用;例如 sa-name
      gcloud iam service-accounts create sa-name
  5. 向您的服务账号授予 workflows.invoker 角色,以便该账号有权触发您的工作流:
      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member "serviceAccount:sa-name@PROJECT_ID.iam.gserviceaccount.com" \
          --role "roles/workflows.invoker"
  6. PROJECT_ID 替换为您的 Google Cloud 项目 ID。
  7. logging.logWriter 角色授予服务账号。
      gcloud projects add-iam-policy-binding PROJECT_ID \
          --member "serviceAccount:sa-name@PROJECT_ID.iam.gserviceaccount.com" \
          --role "roles/logging.logWriter"

创建接收运行时参数的工作流

工作流定义由一系列使用 Workflows 语法描述的步骤组成,该语法可以采用 YAML 或 JSON 格式编写。创建工作流后,可以进行部署,使其可以执行。