
# 函数工作流
函数工作流是一项基于事件驱动的函数托管计算服务，连接器包含"同步执行函数"、"异步执行函数"等执行动作，是用来执行当前租户在华为云服务函数工作流FunctionGraph下创建的函数。
#### 连接参数
函数工作流连接器使用IAM认证，连接参数说明如[表1]所示。
 表1连接参数说明 
| 名称   | 必填 | 说明                                                                                                      | 示例值/默认值     |
|:---|:---|:---|:---|
| 连接名称 | 是  | 设置连接名称。                                                                                                 | 函数工作流的连接    |
| 描述   | 否  | 对于连接的信息描述说明。                                                                                            | description |
| 租户名  | 是  | IAM用户所属账号信息。了解[账号与IAM用户的关系](https://support.huaweicloud.com/productdesc-iam/iam_01_0023.html#section2)。 | domain      |
| 用户名  | 是  | IAM用户名。                                                                                                 | name        |
| 密码   | 是  | IAM用户的登录密码。                                                                                             | -           |
| 区域   | 是  | 服务所属区域。                                                                                                 | cn-north-4  |
   
#### 同步执行函数
同步调用指的是客户端请求需要明确等到响应结果，也就是说这样的请求必须得调用到用户的函数，并且等到调用完成才返回。
- 输入参数 同步执行函数执行动作，相关参数说明如[表2]所示。
   表2同步执行函数输入参数说明 
  | 参数    | 必填 | 说明          |
  |:---|:---|:---|
  | 函数请求体 | 是  | 输入执行函数的请求体。 |
  | 函数urn | 是  | 函数的唯一标识。    |
     
  
- 输出参数 用户可以在之后的执行动作中调用该输出参数，输出参数说明请参考[表3]。
   表3同步执行函数输出参数说明 
  | 参数       | 说明        |
  |:---|:---|
  | 请求ID     | 请求ID。     |
  | 函数执行结果   | 函数执行结果。   |
  | 函数执行返回日志 | 函数执行返回日志。 |
  | 函数执行返回状态 | 函数执行返回状态。 |
     
  
 
#### 异步执行函数
异步执行函数， 目前为了兼容v1和v2接口同时返回二种格式的request_id。
- 输入参数 异步执行函数执行动作，相关参数说明如[表4]所示。
   表4异步执行函数输入参数说明 
  | 参数    | 必填 | 说明          |
  |:---|:---|:---|
  | 函数请求体 | 是  | 输入执行函数的请求体。 |
  | 函数urn | 是  | 函数的唯一标识。    |
     
  
- 输出参数 用户可以在之后的执行动作中调用该输出参数，输出参数说明请参考[表5]。
   表5异步执行函数输出参数说明 
  | 参数         | 说明          |
  |:---|:---|
  | 异步执行函数请求ID | 异步执行函数请求ID。 |
     
  
 
#### 获取函数列表
获取函数列表。
- 输入参数 获取函数列表执行动作，相关参数说明如[表6]所示。
   表6获取函数列表输入参数说明 
  | 参数              | 必填 | 说明               |
  |:---|:---|:---|
  | 上一次查询到的最后的记录位置  | 否  | 上一次查询到的最后的记录位置。  |
  | 每次查询获取的最大函数记录数量 | 否  | 每次查询获取的最大函数记录数量。 |
  | 应用名称            | 否  | 应用名称。            |
     
  
- 输出参数 用户可以在之后的执行动作中调用该输出参数，输出参数说明请参考[表7]。
   表7获取函数列表输出参数说明 
  | 参数                   | 说明                    |
  |:---|:---|
  | 满足查询条件的函数总数          | 满足查询条件的函数总数。          |
  | 函数列表                 | 函数列表。                 |
  | 函数定义                 | 函数定义。                 |
  | 函数的URN               | 函数的URN。               |
  | 函数名称                 | 函数名称。                 |
  | 租户域名ID               | 租户域名ID。               |
  | 租户项目ID               | 租户项目ID。               |
  | 项目名                  | 项目名。                  |
  | 应用名                  | 应用名。                  |
  | 函数超时时间单位秒            | 函数超时时间单位秒。            |
  | 处理函数名                | 处理函数名。                |
  | 函数执行内存单位MB           | 函数执行内存单位MB。           |
  | 函数占用的CPU资源           | 函数占用的CPU资源。           |
  | 代码类型                 | 代码类型。                 |
  | 函数的文件名               | 函数的文件名。               |
  | 函数代码大小单位KB           | 函数代码大小单位KB。           |
  | 用户自定义的name/value信息   | 用户自定义的name/value信息。   |
  | 用户自定义的name/value信息   | 用户自定义的name/value信息。   |
  | 函数hash唯一值            | 函数hash唯一值。            |
  | 函数版本                 | 函数版本。                 |
  | 内部使用版本唯一值            | 内部使用版本唯一值。            |
  | 函数使用的权限委托名称          | 函数使用的权限委托名称。          |
  | 函数APP使用的权限委托名称       | 函数APP使用的权限委托名称。       |
  | 函数描述                 | 函数描述。                 |
  | 最新更新时间               | 最新更新时间。               |
  | 对应tbl_func_vpc表的id字段 | 对应tbl_func_vpc表的ID字段。 |
  | 函数策略配置               | 函数策略配置。               |
  | 函数是否被禁用              | 函数是否被禁用。              |
  | 函数并发数                | 函数并发数。                |
  | 函数扩展配置               | 函数扩展配置。               |
  | 函数初始化入口              | 函数初始化入口。              |
  | 初始化超时时间              | 初始化超时时间。              |
  | 企业项目ID               | 企业项目ID。               |
  | 是否允许进行长时间超时设置        | 是否允许进行长时间超时设置。        |
  | 自定义日志查询组id           | 自定义日志查询组ID。           |
  | 自定义日志查询流id           | 自定义日志查询流ID。           |
  | 版本号                  | 版本号。                  |
  | 函数最近1天内执行失败的次数       | 函数最近1天内执行失败的次数。       |
  | 下次读取位置               | 下次读取位置。               |
     
  
 
#### 获取指定函数的版本列表
获取指定函数的版本列表。
- 输入参数
  
  | 参数    | 必填 | 说明       |
  |:---|:---|:---|
  | 函数urn | 是  | 函数的唯一标识。 |
     
  
- 输出参数 用户可以在之后的执行动作中调用该输出参数，输出参数说明请参考[表8]。
   表8获取指定函数的版本列表输出参数说明 
  | 参数                       | 说明                                                                                                  |
  |:---|:---|
  | 函数版本总数                   | 函数版本总数。                                                                                             |
  | 下次读取位置                   | 下次读取位置。                                                                                             |
  | 蛇形格式的返回体                 | 蛇形格式的返回体。                                                                                           |
  | 函数的URN                   | 函数的URN（Uniform Resource Name），唯一标识函数。                                                               |
  | 函数名称                     | 函数名称。                                                                                               |
  | 域名ID                     | 域名ID。                                                                                               |
  | 租户项目ID                   | 租户项目ID。                                                                                             |
  | 租户项目名                    | 租户项目名。                                                                                              |
  | 函数分组包                    | 函数所属的分组Package，用于用户针对函数的自定义分组。                                                                      |
  | 函数执行时间                   | 函数执行时间。                                                                                             |
  | 函数执行超时时间                 | 函数执行超时时间，超时函数将被强行停止，范围3～900秒。                                                                       |
  | 函数执行入口                   | 函数执行入口。                                                                                             |
  | 函数消耗的内存                  | 函数消耗的内存， 单位M。 取值范围为：128、256、512、768、1024、1280、1536、1792、2048、2560、3072、3584、4096。 最小值为128，最大值为4096。 |
  | 函数占用的CPU资源               | 函数占用的CPU资源， 单位为millicore（1 core=1000 millicores）。 取值与MemorySize成比例，默认是128M内存占0.1个核（100 millicores）。 |
  | 函数代码类型                   | 函数代码类型，取值有4种。 inline: UI在线编辑代码。 zip: 函数代码为zip包。 obs: 函数代码来源于obs存储。 jar: 函数代码为jar包，主要针对Java函数。       |
  | URL值                     | URL值。                                                                                               |
  | 函数的文件名                   | 函数的文件名。                                                                                             |
  | 函数大小                     | 函数大小，单位：字节。                                                                                         |
  | 用户自定义的name/value         | 用户自定义的name/value， 在函数中使用的参数。                                                                        |
  | 用户自定义的name/value（用于加密配置） | 用户自定义的name/value，用于加密配置。                                                                            |
  | 函数代码SHA512 hash值         | 函数代码SHA512 hash值，用于判断函数是否变化。                                                                        |
  | 函数版本号                    | 函数版本号，由系统自动生成，规则：vYYYYMMDD-HHMMSS（v+年月日-时分秒）。                                                       |
  | 函数版本的内部标识                | 函数版本的内部标识。                                                                                          |
  | 函数使用的权限委托名称              | 函数使用的权限委托名称。                                                                                        |
  | 函数APP使用的权限委托名称           | 函数APP使用的权限委托名称。                                                                                     |
  | 函数最后一次更新时间               | 函数最后一次更新时间。                                                                                         |
  | 用户的vpcid                 | 用户的vpcid。                                                                                           |
  | 实例并发数                    | 实例并发数。                                                                                              |
  | 单实例并发数                   | 单实例并发数。                                                                                             |
  | 函数策略配置                   | 函数策略配置。                                                                                             |
  | 函数是否被禁用                  | 0：函数被禁用。 -1：函数被启用。 枚举值： 0 -1。                                                                       |
  | 函数并发数                    | 函数并发数。                                                                                              |
  | 函数初始化入口                  | 函数初始化入口。                                                                                            |
  | 初始化超时时间                  | 初始化超时时间，超时函数将被强行停止，范围1～300秒。                                                                        |
  | 是否支持长时间运行                | 是否支持长时间运行。                                                                                          |
  | 日志查询组id                  | 日志查询组ID。                                                                                            |
  | 日志查询流id                  | 日志查询流ID。                                                                                            |
  | 函数异步配置返回结构体              | 函数异步配置返回结构体。                                                                                        |
  | 消息最大存活时长                 | 消息最大存活时长，取值范围\[60，86400\]。单位：秒。                                                                     |
  | 异步调用失败后的最大重试次数           | 异步调用失败后的最大重试次数，默认值为3。取值范围\[0，8\]。                                                                   |
  | 异步调用目标                   | 异步调用目标。                                                                                             |
  | 目标类型                     | 目标类型。                                                                                               |
  | 通知目标服务对应参数               | 通知目标服务对应参数。                                                                                         |
  | 目标类型                     | 目标类型。                                                                                               |
  | 通知目标服务对应参数               | 通知目标服务对应参数。                                                                                         |
  | 异步调用配置的创建时间              | 异步调用配置的创建时间。                                                                                        |
  | 异步调用配置的最后更改时间            | 异步调用配置的最后更改时间。                                                                                      |
  | 函数版本枚举值                  | 函数版本枚举值：v1 、v2。                                                                                     |
  | 是否启用cloud debug功能        | 是否启用cloud debug功能。                                                                                  |
  | 是否启用动态内存功能               | 是否启用动态内存功能。                                                                                         |
  | 企业项目ID                   | 企业项目ID。                                                                                             |
     
  
 
#### 函数异步执行并返回预留实例ID
函数异步执行并返回预留实例ID用于场景指客户端请求执行比较费时任务，不需要同步等待执行返回结果。
- 输入参数 函数异步执行并返回预留实例ID执行动作，相关参数说明如[表9]所示。
   表9函数异步执行并返回预留实例ID输入参数说明 
  | 参数 | 必填 | 说明                    |
  |:---|:---|:---|
  | 键  | 是  | 函数异步执行并返回预留实例请求body体。 |
     
  
- 输出参数 用户可以在之后的执行动作中调用该输出参数，输出参数说明请参考[表10]。
   表10函数异步执行并返回预留实例ID输出参数说明 
  | 参数     | 说明      |
  |:---|:---|
  | 预留实例id | 预留实例ID。 |
     
  
 
