本文介绍如何通过控制台和命令行工具创建Pass流程。

使用控制台创建流程

本文以使用代码段创作为例。

  1. 登录Serverless工作流控制台
  2. 在顶部菜单栏,选择地域。
  3. 流程页面,单击创建流程
  4. 创建流程页面,单击使用代码段创作,填写相关信息。
    create-flow2
    说明 Hello World示例项目方式在创建流程时不支持修改流程定义
    • 流程名称:自定义填写流程的名称。长度在1~128字符之间,只能包含字母、数字、下划线(_)及短划线(-),且不能以下划线(_)及短划线(-)开头。
    • (可选)流程备注:按需填写流程备注。
    • 流程定义:通过可视化流程辅助您编写流程定义。
    您需要将流程定义的YAML内容修改为以下内容。
    version: v1
    type: flow
    steps:
       - type: pass
         name: pass1  
    参数说明如下。
    参数 描述
    version 流程的版本,目前版本仅支持v1
    type 表示流程类型,默认参数:flow
    steps 定义了流程的步骤。
    type pass表示传递步骤。更多信息,请参见基本介绍
    name 步骤的名称,可自定义步骤名称。
  5. 单击下一步
  6. 配置流程角色。
    说明 当您的流程需要调用其他云服务例如函数计算,您可以通过配置流程角色快速授权Serverless工作流调用函数计算的权限,由于本示例流程没有访问其他云服务,您可以不填写流程角色。更多信息,请参见执行角色
    • 如果您已成功创建RAM角色,您可以直接选择现有的RAM角色
    • 如果您初次使用Serverless工作流,您可以通过以下步骤创建RAM角色。

      1. 配置流程角色区域,单击为我创建RAM角色,设置角色名称
      2. 系统权限下拉框中,选择AliyunFCInvocationAccess,然后单击创建角色create_flow_step2
      3. 角色快捷创建页面,单击同意授权create_flow_step3
  7. 创建流程页面,单击创建流程
    成功创建该流程后,页面显示如下。serverless1

使用命令行工具创建流程

在使用前您需要安装和配置阿里云命令行工具CLI。更多信息,请参见安装指南配置指南

# 使用帮助
aliyun fnf CreateFlow help

预期输出:

阿里云CLI命令行工具 3.0.57

Product: fnf (FunctionFlow)
Link:    https://xxxxx.CreateFlow.html

Parameters:
  --Definition              String  Required
  --Description             String  Required
  --Name                    String  Required
  --Type                    String  Required
  --ExternalStorageLocation String  Optional
  --RequestId               String  Optional
  --RoleArn                 String  Optional

您可以使用CreateFlow命令创建一个流程。

  1. 准备工作。为叙述方便,您可以将下面的流程定义存放在当前路径下的一个文件中。
    version: v1
    type: flow
    steps:
      - type: pass
        name: pass1  
  2. 创建流程。
    注意 您需要将下面的RoleArn替换成您的流程角色。关于流程角色的详细信息,请参见流程角色介绍
    aliyun fnf CreateFlow --Description "demo" --Type FDL --RoleArn acs:ram::xxx:xxx --Name cli_guide_1 --Definition "$(<./flow.yaml)"

    预期输出:

    # 命令执行结果
    {
        "Name": "cli_guide_1",
        "Description": "demo",
        "Definition": "version: v1beta1\ntype: flow\nsteps:\n  - type: pass\n    name: pass1",
        "Id": "78c68342-d63b-4cb5-9207-4e44eeb7e632",
        "Type": "FDL",
        "RoleArn": "acs:ram::xxx:xxx",
        "CreatedTime": "2019-05-13T05:59:51.762Z",
        "LastModifiedTime": "2019-05-13T05:59:51.762Z",
        "RequestId": "xxxx"
    }