创建和更新工作流

本页面介绍如何通过 Google Cloud Console 或使用 gcloud 命令行工具来创建工作流和更新现有工作流。

准备工作

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  3. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  4. 启用 Workflows API。

    启用 Workflows API
  5. 如果您还没有服务帐号,请创建一个服务帐号,然后为其授予管理工作流和创建日志所需的角色。

    控制台

    1. 在 Cloud Console 中,转到服务帐号页面。

      转到“创建服务帐号”页面
    2. 选择创建服务帐号
    3. 服务帐号名称字段中,输入一个名称。
    4. 点击创建
    5. 角色列表中,选择 Logging > 日志写入者

      注意角色字段为您的服务帐号授予资源访问权限。如需创建、更新和执行工作流,请分配 roles/workflows.editor 角色。如需将日志发送到 Cloud Logging,请分配 roles/logging.logWriter 角色。如果您开发的是正式版应用,请始终尽可能授予最小访问权限角色。如需了解详情,请参阅为服务帐号授予角色。如需查看工作流角色列表,请参阅访问权限控制参考文档
    6. 点击继续
    7. 点击完成

    gcloud

    1. 创建服务帐号。将 [NAME] 替换为服务帐号的名称。

      gcloud iam service-accounts create [NAME]
    2. 通过分配角色向服务帐号授予权限。

      gcloud projects add-iam-policy-binding [PROJECT_ID] --member "serviceAccount:[NAME]@[PROJECT_ID].iam.gserviceaccount.com" --role "roles/logging.logWriter"

      请替换以下内容:
      • [PROJECT_ID]:您的项目 ID。
      • [NAME]:您刚刚创建的服务帐号的名称。
      注意角色字段为您的服务帐号授予资源访问权限。如需将日志发送到 Cloud Logging,请分配 roles/logging.logWriter 角色。如果您开发的是正式版应用,请始终尽可能授予最小访问权限角色。如需了解详情,请参阅为服务帐号授予角色。如需查看工作流角色列表,请参阅访问权限控制参考文档

创建工作流

如需创建工作流,我们会对它进行部署以使其可供执行。部署步骤还会验证源文件是否可以执行。如果源文件不包含有效的工作流定义,则会失败。

控制台

  1. 如需创建新工作流,请打开 Google Cloud Console 中的“工作流”页面:
    转到“工作流”页面

  2. 选择创建

  3. 输入新工作流的名称,例如 myFirstWorkflow。名称可以包含字母、数字、下划线和连字符。名称必须以字母开头,并以数字或字母结尾。

  4. 选择 us-central1 作为区域。

  5. 选择您希望工作流用于向其他 Google Cloud 服务进行身份验证的服务帐号。我们强烈建议您使用具备访问必需资源所需的最低权限的服务帐号。如需详细了解服务帐号,请参阅创建和管理服务帐号

  6. 选择下一步

  7. 在工作流编辑器中,输入工作流的定义。您可以在快速入门:使用 Cloud Console 页面上找到示例工作流。

  8. 选择部署

gcloud

  1. 确保工作流的源代码保存在 YAML 或 JSON 文件中,例如 MY_WORKFLOW.YAMLMY_WORKFLOW.JSON。如需查看示例工作流,请参阅快速入门:使用 gcloud 工具页面。

  2. 打开终端。

  3. 输入以下命令以部署工作流:

    gcloud workflows deploy MY_WORKFLOW \
    --source=MY_WORKFLOW.YAML \
    [--service-account=MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM]
    

    请替换以下内容:

    • MY_WORKFLOW:您的工作流的名称。

    • MY_WORKFLOW.YAML:用于工作流的源文件。

    • MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM:可选。您的工作流将用于访问其他 Google Cloud 服务的服务帐号。我们强烈建议您使用具备访问必需资源所需的最低权限的服务帐号。如果留空,则会使用默认服务帐号。如需详细了解服务帐号,请参阅创建和管理服务帐号

更新工作流

您可以更新现有工作流,以更改其来源、说明、标签或其关联的服务帐号。更新工作流不会影响正在进行的执行操作。只有工作流的未来执行才会使用更新后的配置。

控制台

  1. 如需更新现有工作流,请打开 Google Cloud Console 中的“工作流”页面:
    转到“工作流”页面

  2. 选择您要更新的工作流的名称。

  3. 修改工作流页面上,您可以修改说明、更新工作流用于进行身份验证的服务帐号,或者添加标签。您无法修改工作流的名称。

  4. 完成初始更新后,选择下一步

  5. 如需修改工作流的源代码,请在工作流编辑器更新源代码。

  6. 选择部署

gcloud

  1. 找到保存更新后的工作流来源的 YAML 或 JSON 文件,例如 WORKFLOW_FILE.YAMLWORKFLOW_FILE.JSON

  2. 打开终端。

  3. 找到您要更新的工作流的名称。如果您不知道工作流的名称,则可以输入以下命令列出所有工作流:

    gcloud workflows list
    
  4. 您可以更新工作流的来源、关联的服务帐号、说明或标签:

    gcloud workflows deploy WORKFLOW_NAME \
    --source=WORKFLOW_FILE.YAML \
    [--service-account=MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM] \
    [--labels=KEY=VALUE...] \
    [--description='WORKFLOW_DESCRIPTION']
    

    请替换以下内容:

    • WORKFLOW_NAME:必填。您的工作流的名称。

    • WORKFLOW_FILE.YAML:必填。工作流的源文件。

    • MY_SERVICE_ACCOUNT@MY_PROJECT.IAM.GSERVICEACCOUNT.COM:可选。您的工作流将用于访问其他 Google Cloud 服务的服务帐号。如需详细了解服务帐号,请参阅创建和管理服务帐号

    • KEY=VALUE:可选。您想要添加的标签采用 KEY=VALUE 对的形式,如果您要添加多个标签,则采用逗号分隔列表形式。

    • WORKFLOW_DESCRIPTION:可选。您想要为工作流提供的说明。

    您必须指定要更新的工作流的名称及其来源,但其他标志是可选的。

每次更新工作流时,系统都会更新其 versionIDversionID 由两部分组成,以连字符分隔:

  • 这是每次更新工作流时都会递增的数字,从 1 开始。

  • 由三个字符组成的随机字母数字字符串。

例如,000002-d52 表示已更新一次工作流。000001-27f 表示初始版本的工作流。

后续步骤