创建和更新工作流

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

准备工作

如果您的组织将限制应用于您的 Google Cloud 环境,则本文档中的某些步骤可能无法正常工作。在这种情况下,您可能无法完成创建公共 IP 地址或服务帐号密钥等任务。如果您发出的请求会返回有关限制条件的错误,请参阅如何在受限的 Google Cloud 环境中开发应用

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

    转到“项目选择器”

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

  4. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

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

  6. 启用 Workflows API。

    启用 Workflows API

创建服务帐号

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

控制台

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

    转到“服务帐号”

  2. 选择项目,然后点击创建服务帐号

  3. 服务帐号名称字段中,输入一个名称。

    此名称必须介于 6 到 30 个字符之间,且可以包含小写字母数字字符和短划线。在服务帐号创建完毕后,无法再更改其名称。

  4. 点击创建

  5. 角色列表中,选择 Logging > Logs Writer

    角色字段为您的服务帐号授予资源访问权限。

    如果您开发的是正式版应用,请始终尽可能授予权限最少的角色。如需了解详情,请参阅管理对项目、文件夹和组织的访问权限。如需查看 Workflows 角色列表,请参阅访问权限控制参考文档

  6. 点击继续

  7. 点击完成

gcloud

  1. 创建服务帐号。

    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:服务帐号的名称。该名称必须介于 6 到 30 个字符之间,且可以包含小写字母数字字符和短划线。在服务帐号创建完毕后,无法再更改其名称。

    --role 标志用于向您的服务帐号授予资源访问权限。

    如果您开发的是正式版应用,请始终尽可能授予权限最少的角色。如需了解详情,请参阅管理对项目、文件夹和组织的访问权限。如需查看 Workflows 角色列表,请参阅访问权限控制参考文档

创建工作流

工作流定义由一系列使用 Workflows 语法描述的步骤组成,该语法可以采用 YAML 或 JSON 格式编写。创建工作流后,可以进行部署,使其可以执行。部署步骤还会验证源文件是否可以执行。如果源文件不包含有效的工作流定义,则会失败。

控制台

  1. 在 Cloud Console 中,转到 Workflows 页面。

    转到 Workflows

  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. 在 Cloud Console 中,转到 Workflows 页面。

    转到 Workflows

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

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

    标签是有助于您整理 Google Cloud 实例的键值对。如需了解详情,请参阅创建和管理标签

  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 对,如果您添加多个标签,则采用英文逗号分隔列表形式。标签可帮助您整理 Google Cloud 实例。如需了解详情,请参阅创建和管理标签

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

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

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

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

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

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

后续步骤