Serverless 工作流本身没有提供定时触发工作流执行的功能,借助于函数计算 (FunctionCompute,简称 FC)的定时触器可以很方便的实现工作流定时调用。本文介绍如何使用 Serverless 工作流提供的定时触发工作流应用,来达到定时执行工作流的目的。

应用框架

定时触发工作流的执行流程如下:

  1. FC 定时触发器会定时执行 FC 函数。
  2. FC 函数通过 Serverless 工作流 SDK 调用 StartExecution API 执行 Serverless 工作流8b0732b23943d746

应用部署

  1. 创建定时触发工作流应用

    Serverless 工作流应用中心 创建定时触发工作流应用。

    81ade77a13121123
    说明
    • 应用名称:自定义的资源编排服务 ROS 资源栈名称,同一个账号下需保证唯一。
    • Cron 定时触发工作流的 Cron 表达式,参见 FC 定时触发器,默认为每分钟触发一次。
    • Input 触发执行工作流的输入,必须为 JSON 格式,默认为空。
    部署成功后可看到应用创建的所有资源。 de339104fa7aaff8 其中包括:
    • RAM 角色:fnf-timer-demo-serviceRolefnf-timer-demo-flowRole
    • FC 资源: 服务 fnf-timer-demo-service、函数 timer、函数 hello、定时触发器 trigger
    • Serverless 工作流 资源:工作流 fnf-timer-demo-flow
  2. 验证生效
    前往 Serverless 工作流控制台可看到应用创建的工作流 fnf-timer-demo-flow 被定时触发 。17b3faa193bafe86 示例工作流使用 任务步骤 调用 FC 函数 hello,定义如下。
    version: v1
    type: flow
    steps:
      - type: task
        name: hello
        resourceArn: 'acs:fc:::services/fnf-time-demo-service/functions/hello'                    

    您可以修改该工作流的定义实现自身的业务逻辑。