华为云用户手册

  • 支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:自定义策略中授权项定义的内容即为权限。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。 “√”表示支持,“x”表示暂不支持。 FunctionGraph服务支持的自定义策略授权项如表1所示。 表1 FunctionGraph授权项明细 权限 对应API接口 授权项 IAM项目(Project) 企业项目(Enterprise Project) 获取函数列表 GET /v2/{project_id}/fgs/functions FunctionGraph:function:list √ √ 获取函数的metadata GET /v2/{project_id}/fgs/functions/{function_urn}/config FunctionGraph:function:getConfig √ √ 获取指定函数代码 GET /v2/{project_id}/fgs/functions/{function_urn}/code FunctionGraph:function:getCode √ √ 创建函数 POST /v2/{project_id}/fgs/functions FunctionGraph:function:create √ √ 删除函数/版本 DELETE /v2/{project_id}/fgs/functions/{function_urn} FunctionGraph:function:delete √ √ 修改函数代码 PUT /v2/{project_id}/fgs/functions/{function_urn}/code FunctionGraph:function:updateCode √ √ 修改函数的metadata信息 PUT /v2/{project_id}/fgs/functions/{function_urn}/config FunctionGraph:function:updateConfig √ √ 发布函数版本 POST /v2/{project_id}/fgs/functions/{function_urn}/versions FunctionGraph:function:createVersion √ √ 获取指定函数的版本列表 GET /v2/{project_id}/fgs/functions/{function_urn}/versions FunctionGraph:function:listVersion √ √ 创建函数版本别名 POST /v2/{project_id}/fgs/functions/{function_urn}/aliases FunctionGraph:function:createAlias √ √ 修改函数版本别名信息 PUT /v2/{project_id}/fgs/functions/{function_urn}/aliases/{alias_name} FunctionGraph:function:updateAlias √ √ 删除函数版本别名 DELETE /v2/{project_id}/fgs/functions/{function_urn}/aliases/{alias_name} FunctionGraph:function:deleteAlias √ √ 函数版本的指定别名信息 GET /v2/{project_id}/fgs/functions/{function_urn}/aliases/{alias_name} FunctionGraph:function:getAlias √ √ 获取指定函数所有版本别名列表 GET /v2/{project_id}/fgs/functions/{function_urn}/aliases FunctionGraph:function:listAlias √ √ 获取指定函数的所有触发器 GET /v2/{project_id}/fgs/triggers/{function_urn} FunctionGraph:trigger: listSpecifiedFunctionTriggers √ √ 获取指定触发器的信息 GET /v2/{project_id}/fgs/triggers/{function_urn}/{trigger_type_code}/{trigger_id} FunctionGraph:trigger:get √ √ 删除指定函数的所有触发器 DELETE /v2/{project_id}/fgs/triggers/{function_urn} FunctionGraph:trigger: deleteSpecifiedFunctionTriggers √ √ 创建触发器 POST /v2/{project_id}/fgs/triggers/{function_urn} FunctionGraph:trigger:create √ √ 删除触发器 DELETE /v2/{project_id}/fgs/triggers/{function_urn}/{trigger_type_code}/{trigger_id} FunctionGraph:trigger:delete √ √ 同步执行函数 POST /v2/{project_id}/fgs/functions/{function_urn}/invocations FunctionGraph:function:invoke √ √ 异步执行函数 POST /v2/{project_id}/fgs/functions/{function_urn}/invocations-async FunctionGraph:function:invokeAsync √ √
  • 概述 您可以使用扩展API将函数与监控、可观察性、安全性和监管等工具集成,控制并参与 FunctionGraph生命周期的所有阶段。例如在函数调用之前、期间和之后捕获诊断信息;无需更改代码即可自动检测您的代码;在函数调用之前获取配置设置;通过安全代理检测功能发出警报;将遥测数据直接从函数异步发送到自定义目的地。 扩展作为独立进程在函数执行环境中运行。由于扩展作为进程运行,您可以使用不同于函数的语言来编写它们,建议您使用已编译的语言实现扩展。在这种情况下,扩展是一个独立的二进制文件,与支持的运行时兼容。如果使用非编译的语言,请确保和函数的运行时兼容。 当前http和事件类型函数支持扩展的使用,自定义镜像不支持。 您可以通过将扩展制作为依赖包的方式添加到函数。 父主题: 扩展API
  • 步骤二:创建父函数 在控制台创建父函数。委托名称选择包含“FunctionGraph Administrator”或“Tenant Administrator”权限的委托,本例所选参数如图2所示,其他参数保持默认。 图2 配置参数 在“代码”页签,进行代码编辑,示例代码如下所示。 import jsonimport requestsdef handler (event, context): token = context.getToken() project_id = context.getProjectID() urn = 'urn:fss:xx-xxxxx-x:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:function:xxx:subfunction:latest' #子函数的urn,在子函数详情页拓扑图的右侧可查询 url = 'https://functiongraph.xx-xxxxx-x.xxxxxxxxxxxxx.com/v2/%s/fgs/functions/%s/invocations' % (project_id,urn) headers = { "x-auth-token": token, "content-type": 'application/json' } body = {"k":"v"} resp = requests.post(url, json=body, headers=headers, verify=False) print(resp.text) return { "statusCode": 200, "isBase64Encoded": False, "body": json.dumps(event), "headers": { "Content-Type": "application/json" } }
  • 监控指标 表1 监控指标 指标名称 显示名 描述 单位 上限值 下限值 建议阈值 值类型 指标意义 所属维度 count 调用次数 该指标用于统计函数调用次数 次数 - 0 - Int 该指标用于统计函数调用次数 package-functionname failcount 错误次数 该指标用于统计函数调用错误次数 次数 - 0 - Int 该指标用于统计函数调用错误次数 package-functionname rejectcount 被拒绝次数 该指标用于统计函数调用被拒绝次数 次数 - 0 - Int 该指标用于统计函数调用被拒绝次数 package-functionname duration 平均运行时间 该指标用于统计函数调用平均运行时间 毫秒 - 0 - Int 该指标用于统计函数调用平均运行时间 package-functionname maxDuration 最大运行时间 该指标用于统计函数调用最大运行时间 毫秒 - 0 - Int 该指标用于统计函数调用最大运行时间 package-functionname minDuration 最小运行时间 该指标用于统计函数调用最小运行时间 毫秒 - 0 - Int 该指标用于统计函数调用最小运行时间 package-functionname
  • 基本概念 帐号 您注册公有云服务时的帐号,帐号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于帐号是付费主体,为了确保帐号安全,建议您不要直接使用帐号进行日常管理工作,而是创建用户并使用他们进行日常管理工作。 用户 由帐号在IAM中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 在我的凭证下,您可以查看帐号ID和用户ID。通常在调用API的鉴权过程中,您需要用到帐号、用户和密码等信息。 区域 指云资源所在的物理位置,同一区域内可用区间内网互通,不同区域间内网不互通。通过在不同地区创建云资源,可以将应用程序设计的更接近特定客户的要求,或满足不同地区的法律或其他要求。 可用区 一个可用区是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 公有云区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您帐号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中购买资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。 图1 项目隔离模型 企业项目 企业项目是项目的升级版,针对企业不同项目间资源的分组和管理,是逻辑隔离。企业项目中可以包含多个区域的资源,且项目中的资源可以迁入迁出。 关于企业项目ID的获取及企业项目特性的详细信息,请参见《企业管理服务用户指南》。 父主题: 使用前必读
  • 错误码 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 状态码 错误码 错误信息 描述 处理措施 400 FSS.0400 Invalid parameter. 无效参数 检查请求body体中参数 400 FSS.1001 Invalid query parameter. 无效的查询参数 检查查询参数 400 FSS.1002 Invalid function name. 无效的函数名称 检查函数名称 400 FSS.1003 Invalid function handler. 无效的函数Handler 检查函数执行入口 400 FSS.1004 Invalid Package (function app). 无效的函数包 检查函数包 400 FSS.1005 Invalid runtime. 无效的Runtime 检查运行时 400 FSS.1006 Invalid function code entry mode. 无效的代码类型 检查代码类型 400 FSS.1007 Invalid function memory. 无效的内存 检查函数内存 400 FSS.1008 Invalid function timeout. 无效的超时时间 检查函数超时时间 400 FSS.1009 Invalid function UserData. 无效的环境变量 检查函数环境变量 400 FSS.1010 Invalid URL. 无效的URL 检查URL 400 FSS.1011 Invalid function code. 无效的函数代码 检查函数代码 400 FSS.1012 The function code must be configured. 函数代码不能为空 检查函数代码 400 FSS.1013 Invalid file type. 无效的文件类型 检查文件类型 400 FSS.1014 Invalid function alias. 无效的函数版本别名 检查函数别名 400 FSS.1015 Invalid function version. 别名对应的版本无效 检查函数版本 400 FSS.1016 The function cannot be published because no changes have been made since last publication. 无效的版本发布操作,与上次发布相比无任何更改 确认与上次版本发布相比函数进行了更改 400 FSS.1017 The number of environment variables exceeds the maximum allowed limit (20). 环境变量个数超过限制(20) 检查环境变量的个数 400 FSS.1018 The total size of environment variables exceeds the maximum allowed limit (2 KB). 环境变量总大小超过限制(2K) 检查环境变量的总大小 400 FSS.1019 The description exceeds the maximum allowed limit (512 characters). 描述信息长度超过限制(512 字符数) 检查描述长度 400 FSS.1022 Only one YAML file is allowed. 只容许有一个YAML文件 确认是否只有一个YAML文件 400 FSS.1023 The imported file is too large. 导入的文件太大了,超过了最大限制 检查导入文件的大小 400 FSS.1024 Invalid dependency. 无效的依赖包 检查依赖包 400 FSS.1025 Invalid YAML file. 无效的YAML文件 检查YAML文件 400 FSS.1026 Invalid Concurrency. 无效的并发策略 检查并发策略 400 FSS.1027 Invalid packageName (app name). 无效的包名或者应用名称 检查包和应用名称。 400 FSS.1028 The app cannot be deleted because it contains functions. 该应用不能删除,因为该应用下还有函数存在 应用删除前,检查其下是否有函数存在 400 FSS.1029 The default app cannot be deleted. 默认的应用不能删除 默认的应用不能删除 400 FSS.1031 The dependency already exists. 依赖包已经存在 检查依赖包是否存在 400 FSS.1032 Invalid dependency type. 无效的依赖包类型,当前只容许本地zip包或者OBS上传 检查依赖包类型 400 FSS.1034 Invalid image URL. 无效的镜像地址 检查镜像地址 400 FSS.1035 The image does not exist. 该镜像不存在 检查镜像是否存在 400 FSS.1036 The VPC does not exist. 该VPC不存在 检查VPC是否存在 400 FSS.1037 No subnet matches the specified ID. 没有匹配的子网 检查子网是否存在 400 FSS.1038 The file system configuration already exists in the function. 在该函数中已经存在相同的文件系统配置 检查文件系统配置是否重复 400 FSS.1039 The mounting path is invalid. 无效的挂载路径 检查挂载路径 400 FSS.1058 The app name and function name cannot be the same in the YAML file. 在YAML文件中不允许存在相同的应用名和函数名 检查YAML中应用名和函数名是否重复 400 FSS.1074 The event field is invalid. 无效的事件参数 检查事件参数 400 FSS.1075 The value of UserId or GroupId must be a non-zero integer from -1 to 65534. 用户ID和用户组ID必须是从-1到65534之间的整数(0、1000、1002除外) 检查用户ID和用户组ID 400 FSS.1076 The number of reserved instances exceeds the maximum allowed limit. 函数的预留实例数超过了最大限制 检查函数预留实例的个数 400 FSS.1077 The code and configuration of the function cannot be updated because the function has at least one reserved instance. 该函数下存在预留实例,不能更新函数代码和配置 检查函数下是否存在预留实例 400 FSS.1091 The additional version is invalid. 无效的灰度版本 检查灰度版本 400 FSS.1092 The weight of the additional version is invalid. 无效的灰度版本权重值 检查灰度版本权重值 400 FSS.1093 The major version and the additional version cannot be the same. 灰度版本不能与主版本一致 检查灰度版本和主版本 400 FSS.1101 Invalid trigger type. 无效的触发器类型 检查触发器类型 400 FSS.1102 Invalid SMN trigger parameters. 无效的SMN触发器参数 检查SMN触发器参数 400 FSS.1103 Invalid DMS trigger parameters. 无效的DMS触发器参数 检查DMS触发器参数 400 FSS.1104 Invalid DIS trigger parameters. 无效的DIS触发器参数 检查DIS触发器参数 400 FSS.1106 Invalid OBS trigger parameters. 无效的OBS触发器参数 检查OBS触发器参数 400 FSS.1107 Invalid APIG trigger parameters. 无效的APIG触发器参数 检查APIG触发器参数 400 FSS.1109 Invalid timer trigger parameters. 无效的定时任务触发器参数 检查定时任务触发器参数 400 FSS.1110 Invalid LTS trigger parameters. 无效的LTS触发器参数 检查LTS触发器参数 400 FSS.1112 The Kafka trigger parameters are invalid. 无效的Kafka触发器参数 检查Kafka触发器参数 400 FSS.1113 The username and password must be specified because Kafka SASL_SSL is enabled. 若Kafka开启了SASL_SSL协议,所以必须设置对应的用户名和密码 若Kafka开启了SASL_SSL协议,检查是否设置对应的用户名和密码 400 FSS.1114 The subnet of the function must be the same as that of the Kafka instance. 函数的子网与kafka实例所在的子网不一样 检查函数的子网与Kafka实例所在的子网是否一致 400 FSS.1116 Kafka instance configuration error. Please check the username and password. Kafka实例配置错误,请检查对应的用户名和密码是否正确 检查Kafka实例配置的用户名和密码是否正确 400 FSS.1117 Failed to query messages from the Kafka instance. 从kafka实例读取消息失败 检查Kafka实例是否正常 400 FSS.1164 Invalid DDS trigger parameters. 无效的DDS触发器参数 检查DDS触发器参数 400 FSS.1172 The database instance does not exist. 找不到指定的数据库实例 检查数据库实例 400 FSS.1173 DDS DB instance configuration error. Please contact DDS R&D personnel. DDS实例配置错误,请联系DDS研发人员 联系DDS开发人员 400 FSS.1301 The CTS trigger does not exist. CTS触发器不存在 检查CTS触发器 400 FSS.1303 Access denied due to insufficient permissions. 权限校验失败,访问被禁止 检查是否授权 400 FSS.1304 The CTS service failed to process the request. 服务器未能处理请求 联系CTS开发人员 400 FSS.1305 Invalid CTS trigger parameters. 无效的CTS触发器参数 检查CTS触发器参数 400 FSS.1306 The number of triggers exceeds the maximum allowed limit. 触发器达到上限 检查触发器数目是否达到上限 400 FSS.1307 The trigger name already exists. 触发器名称已存在 检查触发器名称是否重复 400 FSS.1308 The operation resource does not exist. 操作资源不存在 检查资源是否存在 400 FSS.1309 Invalid function URN. functionUrn验证错误 检查functionUrn 400 FSS.1310 Unauthorized user. 获取组用户Token验证失败 检查权限 400 FSS.1311 Unauthorized access. 未开通CTS服务 检查CTS服务是否开通 400 FSS.1312 The notification name must be specified. 关键通知名称为空 检查关键通知名称 400 FSS.1313 The number of resources to be operated has reached the maximum allowed limit (100). 操作资源超过100条上限 检查操作资源的数目是否超过上限 400 FSS.1314 The operation resource must be specified. 操作资源为空 检查是否操作资源是否为空 400 FSS.1316 The resource operation has already been selected. 选择重复的操作。 检查是否选择的相同的操作。 400 FSS.1317 The trigger name is too long. 触发器名称过长 检查触发器名字的长度 400 FSS.1318 Invalid trigger operation. 无效的触发器操作 检查触发器操作 400 FSS.1404 Invalid function initializer. 非法的函数初始化入口 检查函数初始化入口 400 FSS.1405 Invalid initialization timeout. 非法的函数初始化超时时间 检查函数初始化超时时间 401 FSS.0401 Unauthorized access. 未授权的访问 检查用户的权限 401 FSS.1118 Access denied. 访问受限,该用户不在白名单中 检查白名单配置 403 FSS.0403 Forbidden. 禁止操作 检查用户的操作权限 403 FSS.1040 The selected Xrole does not have permissions to mount the resources. 选择的委托没有权限挂载该资源类型 检查选择的委托权限 403 FSS.1041 The number of functions exceeds the maximum allowed limit (400). 租户的函数数量超过限制(400) 检查租户的函数数量是否超限 403 FSS.1042 The total code size of functions exceeds the maximum allowed limit (20 GB). 租户的函数的总大小超过限制(20G) 检查函数的总大小是否超过限制(20G) 403 FSS.1043 The number of aliases exceeds the maximum allowed limit. 别名数量超过了允许的最大限制 检查别名数量是否超过了允许的最大限制 403 FSS.1044 The number of apps exceeds the maximum allowed limit (400). 应用数量超过了允许的最多限制(400) 检查应用数量是否超过了允许的最多限制(400) 403 FSS.1045 The number of dependencies exceeds the maximum allowed limit. 依赖包数量超过了最大限制 检查依赖包数量是否超过了最大限制 403 FSS.1046 The dependency is inaccessible. 该依赖包不可用 检查依赖包是否可用 403 FSS.1047 The number of bound VPCs exceeds the maximum limit allowed for a tenant. 租户的绑定的VPC数量超过了最大限制 检查租户的绑定的VPC数量是否超过了最大限制 403 FSS.1048 The number of bound VPCs exceeds the maximum limit allowed for a project. 单个项目的绑定的VPC数量超过了最大限制 检查单个项目的绑定的VPC数量是否超过了最大限制 403 FSS.1049 The number of file systems mounted to the function exceeds the maximum allowed limit (5). 单个函数挂载文件系统数量超过了最大限制(5) 检查单个函数挂载文件系统数量是否超过了最大限制(5) 403 FSS.1068 The number of events configured for the function exceeds the maximum allowed limit. 单个函数的事件数超过了最大限制 检查单个函数的事件数是否超过了最大限制 403 FSS.1069 The size of EventData exceeds 4 KB. 事件大小超过了允许的最大限制(4KB) 检查代码大小是否超过了允许的最大限制(4KB) 403 FSS.1073 The function event already exists. 事件在函数中已经存在 检查事件在函数中是否已经存在 403 FSS.1094 The version cannot be deleted when it is used as the additional version of an alias. 不能删除正在被灰度版本使用的版本号 检查灰度版本号是否正在被使用 403 FSS.1096 The file sharing protocol of the mounted resource is not NFS. 挂载资源的文件共享协议不是NFS 检查挂载资源的文件共享协议是否为NFS 403 FSS.1108 The bucket configuration of the current trigger conflicts with that of an existing OBS trigger. 当前触发器的存储桶配置与现有OBS触发器的存储桶配置冲突 检查触发器的存储桶配置与现有OBS触发器的存储桶配置是否冲突 403 FSS.1121 Forbidden 访问受限,请检查是否有配置对应的DMS委托 检查是否配置对应的DMS委托 403 FSS.1122 Forbidden 访问受限,请检查是否有配置对应的DIS委托 检查是否有配置对应的DIS委托 403 FSS.1123 The number of pull triggers exceeds the maximum allowed limit (10). 拉模式的触发器数量达到最大值10 检查拉模式的触发器数量是否达到最大值10 403 FSS.1124 The number of APIs exceeds the maximum allowed limit. API数量超过了最大限制 检查API数量是否超过了最大限制 403 FSS.1125 Forbidden 无权限访问,请检查是否配置了对应的LTS委托 检查是否配置了对应的LTS委托 403 FSS.1126 You do not have permissions to call the API. 没有权限访问API 检查是否有权限访问API 403 FSS.1127 The EPS user does not have permissions to call the API. EPS用户没有权限访问该API 检查权限 403 FSS.1154 Aliases of a function bound with triggers cannot be deleted. 该函数别名下面存在触发器,不能删除该别名 删除函数别名之前,先删除其下的触发器 404 FSS.0404 The specified resource cannot be found. 没有找到指定的资源 检查访问的资源是否存在 404 FSS.1050 The mounted resource cannot be found. 找不到挂载的资源类型 检查挂载的资源类型是否存在 404 FSS.1051 The function does not exist. 找不到指定的函数 检查函数是否存在 404 FSS.1052 The version does not exist. 找不到指定的函数版本 检查函数版本是否存在 404 FSS.1053 The alias does not exist. 找不到指定的函数版本别名 检查函数的指定版本别名是否存在 404 FSS.1054 The function code package does not exist in OBS. 从OBS找不到指定的函数代码包 检查指定的函数代码包在OBS中是否存在 404 FSS.1055 The app does not exist in obs. 从OBS找不到指定的函数应用 检查指定的函数应用在OBS中是否存在 404 FSS.1056 The dependency does not exist. 找不到指定的依赖包 检查依赖包是否存在 404 FSS.1057 The function name does not exist in the YAML file. 在YAML文件中找不到该函数名 检查YMAL文件中是否有该函数名 404 FSS.1059 The function template does not exist. 函数模板不存在 检查函数模板是否存在 404 FSS.1060 The event template cannot be found. 事件模板不存在 检查事件模板是否存在 404 FSS.1070 The event cannot be found. 事件不存在 检查事件是否存在 404 FSS.1086 The function async invocation configuration does not exist. 函数异步配置不存在 函数异步配置不存在 404 FSS.1111 The Kafka resource cannot be found. 指定的kafka不存在 检查指定的Kafka是否存在 404 FSS.1130 The DIS stream does not exist. 没有找到指定的DIS通道 检查指定的DIS通道是否存在 404 FSS.1131 The trigger does not exist. 没有找到指定的触发器 检查指定的触发器是否存在 404 FSS.1132 The SMN trigger does not exist. View the SMN console. 没有找到指定的SMN触发器 检查指定的SMN触发器是否存在 404 FSS.1133 The DMS trigger does not exist. 没有找到指定的DMS触发器 检查DMS触发器是否存在 404 FSS.1134 The DIS trigger does not exist. 没有找到指定的DIS触发器 检查DIS触发器是否存在 404 FSS.1135 The DMS queue does not exist. 没有找到指定的DMS队列 检查指定的DMS队列是否存在 404 FSS.1136 The OBS trigger does not exist. 没有找到指定的OBS触发器 检查OBS触发器是否存在 404 FSS.1137 Invalid trigger type. 无效的触发器类型 检查触发器类型是否合法 404 FSS.1138 The APIG trigger does not exist. 没有找到指定的APIG触发器 检查APIG触发器是否存在 404 FSS.1139 The DMS consumer group does not exist. 没有找到指定的DMS消费组 检查DMS消费组是否存在 404 FSS.1140 The timer trigger does not exist. 没有找到指定的定时任务触发器 检查定时任务触发器是否存在 404 FSS.1160 The LTS trigger does not exist. 没有找到指定的LTS触发器 检查LTS触发器是否存在 404 FSS.1161 The LTS topic does not exist. 没有找到指定的LTS日志主题 检查指定的LTS日志主题是否存在 404 FSS.1163 The DDS trigger cannot be found. 找不到指定的DDS触发器 检查指定的DDS触发器是否存在 404 FSS.1171 The SMN topic does not exist. Create it on the SMN console. 该SMN的topic不存在 检查指定的SMN的topic是否存在 404 FSS.1174 The Kafka trigger does not exist. 找不到指定的Kafka触发器 检查定的Kafka触发器是否存在 406 FSS.0406 Not acceptable. 请求格式无效 对着api检查请求body体 406 FSS.1151 The OBS bucket is in a different region. OBS桶所在区域与当前区域不匹配 更换OBS桶 408 FSS.0408 Request timeout. 请求超时 检查网络 409 FSS.0409 The specified resource already exists. 指定的资源已经存在 检查是否重复创建资源 409 FSS.1061 The function already exists. 函数已经存在 检查是否重复创建函数 409 FSS.1062 The version already exists. 函数版本已经存在 检查是否重复创建函数版本 409 FSS.1063 The alias already exists. 函数版本别名已经存在 检查是否重复创建函数版本别名 409 FSS.1064 The app already exists. 函数应用已经存在 检查是否重复创建函数应用 409 FSS.1065 The dependency already exists. 依赖包已经存在 检查依赖包是否重复创建 409 FSS.1066 The version is already in use by another alias. 该版本号已经在其他别名中使用了 检查版本号是否已被占用 409 FSS.1067 The function template already exists. 函数模板已经存在 检查函数模板是否重复创建 409 FSS.1141 The SMN trigger already exists. 指定的SMN触发器已经存在 检查SMN触发器是否重复创建 409 FSS.1142 The DMS trigger already exists. 指定的DMS触发器已经存在 检查DMS触发器是否重复创建 409 FSS.1143 The DIS trigger already exists. 指定的DIS触发器已经存在 检查DIS触发器是否重复创建 409 FSS.1145 The OBS trigger already exists. 指定的OBS触发器已经存在 检查OBS触发器是否重复创建 409 FSS.1146 The APIG trigger already exists. 指定的APIG触发器已经存在 检查APIG触发器是否重复创建 409 FSS.1147 The request path already exists. APIG触发路径已存在 检查APIG触发路径是否已经存在 409 FSS.1148 The timer trigger already exists. 指定的定时任务触发器已经存在 检查指定的定时任务触发器是否已经存在 409 FSS.1149 The LTS trigger already exists. LTS触发器已存在 检查LTS触发器是否已存在 409 FSS.1150 The Kafka trigger already exists. 指定的kafka触发器已经存在 检查指定的Kafka触发器是否已经存在 409 FSS.1166 The DDS trigger already exists. 指定的DDS触发器已经存在 检查指定的DDS触发器是否已经存在 410 FSS.0410 The specified resource does not exist. 指定的资源不存在 检查指定的资源是否存在 412 FSS.1033 The dependency is currently in use. 依赖包正在使用,不能被删除 删除依赖包之前,请检查是否被使用 412 FSS.1090 The subnet is not in the ACTIVE state. 子网不是ACTIVE状态 检查子网状态是否为可用 412 FSS.1095 The mounted resource is not ready. 挂载资源还没有准备好 准备好挂载资源 412 FSS.1153 The triggering conditions have not been met. 触发器前置条件不满足 检查触发器前置条件 413 FSS.0413 The request body is too large. 请求体大小超过限制 检查请求体 413 FSS.1071 The size of the code package to be uploaded exceeds the maximum allowed limit (50 MB). 上传代码包大小超过限制(50M) 检查代码包大小 413 FSS.1072 The size of the inline code exceeds the maximum allowed limit (10 KB). 在线编辑代码大小超过限制(10K) 检查在线编辑代码大小是否超过限制(10K) 413 FSS.1201 The request body is too large. 请求体大小超过限制 检查请求体大小 424 FSS.0424 Invalid dependency. 无效的依赖 检查依赖是否有效 426 FSS.0426 An upgrade is required. 不支持该操作,需要升级 联系开发人员 426 FSS.1152 The selected bucket cannot be used to create a trigger. 所选的OBS桶不支持创建触发器 联系开发人员 428 FSS.0428 The preconditions have not been met. 先决条件不满足 检查先决条件 429 FSS.0429 Too many requests. 太多的请求 请求数过多,稍后重试 500 FSS.0500 Internal service error. 服务临时性异常,服务内部调用出错,稍后重试 服务临时性异常,服务内部调用出错,稍后重试 500 FSS.1162 The operation cannot take effect immediately due to service exception. 由于服务异常,该操作无法立即生效 联系开发人员 500 FSS.1202 The response body or callback body is invalid because they do not contain any status code. 函数返回的body无效 联系开发人员 500 FSS.1206 Failed to convert result for apig. 无法转换 apig 的结果 检查apig返回或联系开发人员 500 FSS.1302 Failed to save the data. 触发器存储失败 稍后重试或联系开发人员 500 FSS.1315 The CTS service is unavailable. 服务器异常 联系CTS开发人员 500 FSS.4001 function entry cannot be foundut. 找不到函数入口 请检查函数的执行入口和上传代码的函数入口是否一致 500 FSS.4002 The user function failed to run. 用户函数运行报错 请根据错误提示信息排查自身代码问题 500 FSS.4004 the return value of the function exceeds the maximum allowed limit 函数返回值大小超过平台限制 请检查函数返回值内容的大小是否超过平台限制(6M) 500 FSS.4010 invoke timed out. 函数执行超时 请检查函数超时的原因和配置的超时时间 500 FSS.4011 Initialization function execution times out. 初始化函数执行超时 请检查函数初始化超时的原因 500 FSS.4014 reading the storeObject timeout.Use larger memory 加载依赖包超时 请增加函数的内存规格 500 FSS.4021 trigger request of this tenant is limited at this frontend instance 函数的并发数超过限制 请联系技术支持工程师协助解决 500 FSS.4024 function metadata is not found. 函数间调用时检查函数不存在 1.请检查被调函数是否已删除 2.如果函数未删除,请联系技术支持工程师协助解决 500 FSS.4025 can not create a state using a stateless function 使用无状态函数创建状态实例 请检查函数是否为有状态函数 500 FSS.4026 instanceName is not exist 删除或查询有状态实例ID时,指定了未创建的实例名 请检查有状态实例名是否已经成功创建 500 FSS.4027 cannot be created repeatedly instanceID 使用了同一个实例名给同一个函数创建状态实例 请检查函数是否使用同一个有状态实例名重复创建状态实例 500 FSS.4140 the size of request body is beyond maximum body size. 函数的请求体超过平台限制(默认6M) 请检查函数的请求体大小是否超过限制,如果仍无法解决,请联系技术支持工程师协助解决 500 FSS.4201 function initialization failed 用户函数初始化失败 请检查初始化函数代码 500 FSS.4202 runtime bootstrap not found 函数找不到 bootstrap 文件 请检查 bootstrap 脚本文件路径配置是否正确 500 FSS.4203 runtime process is exited 用户 bootstrap 脚本未执行完退出 请检查 bootstrap 脚本是否存在异常退出的情况 500 FSS.4204 The user bootstrap script syntax is incorrect. 用户 bootstrap 脚本语法错误 请根据错误提示信息检查 bootstrap 脚本代码。 500 FSS.4205 runtime memory limit exceeded 函数使用的内存总量超过限制 请检查函数代码占用的内存大小和配置的内存大小限制 500 FSS.4206 failed to mount volumes for function 用户磁盘挂载失败 请检查代码中使用的磁盘信息(如:路径等)是否与配置信息一致。如果仍无法解决,请联系技术支持工程师协助解决 500 FSS.4207 disk uages exceed limit 磁盘使用超出限额 请检查函数代码中是否超额使用磁盘存储。如果仍无法解决,请联系技术支持工程师协助解决 500 FSS.4208 function invocation canceled 请求被取消 用户调用了请求取消接口 502 FSS.0502 Bad gateway. 网关错误 联系开发人员 502 FSS.1319 Invalid trigger name. 无效触发器名称 更换触发器名称 503 FSS.0503 Service unavailable. 服务不可用 联系开发人员 503 FSS.1115 The network is unreachable. 网络不可达 检查网络 503 FSS.1169 The network is unreachable. 网络不可达 检查网络 503 FSS.1170 Authentication error. 鉴权失败,请检查DDS的配置 检查DDS配置 503 FSS.1401 Failed to obtain the image information. 获取镜像信息失败 检查获取镜像的配置 503 FSS.1402 Failed to pull the image to create a container. 加载镜像创建容器失败 检查镜像地址 503 FSS.1403 Failed to pull the image to delete a container. 加载镜像删除容器失败 检查镜像地址 504 FSS.0504 Gateway timeout. 网关超时 检查网络 父主题: 附录
  • API概览 FunctionGraph API为开发者、合作伙伴提供开发、部署、托管、运维的开放接口,帮助用户快速、低成本地实现业务创新,缩短应用上线周期。 FunctionGraph API提供的接口有如下几种类型。 表1 接口简介 类型 说明 函数调用 包括同步执行函数、异步执行函数、函数异步执行并返回预留实例ID接口。 函数配额 查询租户配额。 函数依赖包 包括创建、删除、获取、更新依赖包等接口。 函数测试事件 包括创建、删除、获取、更新测试事件等接口。 函数调用链 获取、修改调用链配置。 函数生命周期管理 包括创建、删除函数等接口。 函数版本别名 包括创建、删除函数版本别名等接口。 函数指标 包括获取按指定指标排序的函数列表、租户函数统计信息、获取指定时间段的函数运行指标接口。 函数日志 获取指定函数的lts日志组日志流配置、开通lts日志上报功能。 函数预留实例 获取函数预留实例配置列表、修改函数预留实例数量。 函数导入导出 导入、导出函数。 函数触发器 包括创建、删除、更新触发器等接口。 函数流 查询、删除、创建、停止函数流等接口。 函数异步配置 获取、删除、设置函数异步配置信息等接口。
  • 状态码 状态码如表1所示 表1 状态码 状态码 返回 说明 200 - 请求成功。 204 - 请求成功。 400 Bad Request 服务器未能处理请求。 401 Unauthorized 被请求的页面需要认证。 403 Forbidden 对被请求页面的访问被禁止。 404 Not Found 服务器无法找到被请求的页面。 405 Method Not Allowed 请求中指定的方法不被允许。 406 Not Acceptable 服务器生成的响应无法被客户端所接受。 407 Proxy Authentication Required 用户必须首先使用代理服务器进行验证,这样请求才会被处理。 408 Request Timeout 请求超出了服务器的等待时间。 409 Conflict 由于冲突,请求无法被完成。 500 Internal Server Error 请求未完成,服务异常。 501 Not Implemented 请求未完成,服务器不支持所请求的功能。 502 Bad Gateway 请求未完成,服务器从上游服务器收到一个无效的响应。 503 Service Unavailable 请求未完成,系统暂时异常。 504 Gateway Timeout 网关超时。 父主题: 附录
  • URI GET /v2/{project_id}/fgs/workflows/{workflow_id}/executions-history 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 最小长度:1 最大长度:64 workflow_id 是 String 函数工作流ID 最小长度:1 最大长度:512 表2 Query参数 参数 是否必选 参数类型 描述 offset 是 Integer 偏移量,表示从此偏移量开始查询,offset大于等于0 最小值:0 limit 是 Integer 分页查询,每页查询数据条数,取值范围:1,2,3...100 最小值:1 最大值:100 start_time 否 String 查询开始时间,UTC时间,格式:YYYY-MM-DD hh:mm:ss。若起始时间未填写,以终止时间前推3天为起始时间。 end_time 否 String 查询结束时间,UTC时间,格式:YYYY-MM-DD hh:mm:ss。若终止时间未填写,以起始时间后退3天未终止时间。若均未填写,默认查询最近3天数据。
  • 响应示例 状态码: 200 函数流执行查询返回体 { "executions" : [ { "workflow_id" : "c0aecc37-8b78-4fc5-81af-14af495dc053", "execution_id" : "41c25eec-a1ba-4789-9851-eaead00cd6b9", "status" : "success", "begin_time" : "2022-10-11T06:30:45Z", "end_time" : "2022-10-11T06:30:47Z", "last_update_time" : "2022-10-11T06:30:45Z", "created_by" : "c0aecc37-8b78-4fc5-81af-14af495dc053", "workflow_urn" : "urn:fss:cn-north-7:c53626012ba84727b938ca8bf03108ef:workflow:default:flow_nxy_tp:latest" }, { "workflow_id" : "c0aecc37-8b78-4fc5-81af-14af495dc053", "execution_id" : "74a29a25-2d6d-4b50-a02e-63b7c5b8ab93", "status" : "success", "begin_time" : "2022-10-11T06:30:24Z", "end_time" : "2022-10-11T06:30:26Z", "last_update_time" : "2022-10-11T06:30:25Z", "created_by" : "c0aecc37-8b78-4fc5-81af-14af495dc053", "workflow_urn" : "urn:fss:cn-north-7:c53626012ba84727b938ca8bf03108ef:workflow:default:flow_nxy_tp:latest" } ], "total" : 100, "size" : 10}
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 endpoints Array of strings Ip列表 address String 域名地址 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • 请求示例 创建下沉入口。 POST https://{Endpoint}/v2/{project_id}/fgs/vpc-endpoint{ "vpc_id" : "a938xxxx-7xxx-4xxx-bxxx-cee915xxxxxx", "subnet_id" : "a4a1xxxx-9xxx-4xxx-8xxx-bb46f7xxxxxx", "flavor" : "default", "xrole" : "xxx"}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 flavor 否 String 选定EP的规格,默认为大规格 xrole 否 String 制作EP时使用的租户委托名称 vpc_id 是 String 对接EP使用的租户VPCID subnet_id 是 String 对接EP使用的租户子网ID
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 action 否 String action名称 枚举值: create delete tags 否 Array of KvItem objects 标签列表 sys_tags 否 Array of KvItem objects 系统标签列表 表4 KvItem 参数 是否必选 参数类型 描述 key 否 String 键 value 否 String 值
  • 请求示例 创建资源标签。 POST https://{Endpoint}/v2/{project_id}/{resource_type}/{resource_id}/tags/create{ "tags" : [ { "key" : "testKey1", "value" : "testValue1" }, { "key" : "testKey2", "value" : "testValue2" } ], "action" : "create"}
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 action 否 String action名称 枚举值: create delete tags 否 Array of KvItem objects 标签列表 sys_tags 否 Array of KvItem objects 系统标签列表 表4 KvItem 参数 是否必选 参数类型 描述 key 否 String 键 value 否 String 值
  • 响应示例 状态码: 200 ok { "tags" : [ { "key" : "xxx", "values" : [ "yyy", "zzz" ] } ], "sys_tags" : [ { "key" : "_sys_enterprise_project_id", "values" : [ "5aa119a8-d25b-45a7-8d1b-88e127885635" ] } ]}
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 tags Array of TagItem objects 标签列表 sys_tags Array of TagItem objects 系统标签列表 表4 TagItem 参数 参数类型 描述 key String 键 values Array of strings 值 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 state String 快照制作状态 code String 快照制作响应码 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 401 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 403 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 404 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • 响应参数 状态码: 400 表3 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 401 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 403 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 404 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • URI POST /v2/{project_id}/fgs/functions/{function_urn}/snapshots/{action} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户项目 ID,获取方式请参见获取项目ID。 function_urn 是 String 函数的URN,详细解释见FunctionGraph函数模型的描述。 action 是 String 禁用/启用
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 id String 依赖包ID。 owner String 依赖包拥有者。 link String 依赖包在obs的存储地址。 runtime String FunctionGraph函数的执行环境 Python2.7: Python语言2.7版本。 Python3.6: Pyton语言3.6版本。 Python3.9: Python语言3.9版本。 Go1.8: Go语言1.8版本。 Go1.x: Go语言1.x版本。 Java8: Java语言8版本。 Java11: Java语言11版本。 Node.js6.10: Nodejs语言6.10版本。 Node.js8.10: Nodejs语言8.10版本。 Node.js10.16: Nodejs语言10.16版本。 Node.js12.13: Nodejs语言12.13版本。 Node.js14.18: Nodejs语言14.18版本。 C#(.NET Core 2.0): C#语言2.0版本。 C#(.NET Core 2.1): C#语言2.1版本。 C#(.NET Core 3.1): C#语言3.1版本。 Custom: 自定义运行时。 PHP7.3: Php语言7.3版本。 http: HTTP函数。 枚举值: Java8 Java11 Node.js6.10 Node.js8.10 Node.js10.16 Node.js12.13 Node.js14.18 Python2.7 Python3.6 Go1.8 Go1.x C#(.NET Core 2.0) C#(.NET Core 2.1) C#(.NET Core 3.1) Custom PHP7.3 Python3.9 http etag String 依赖包唯一标志。 size Long 依赖包大小。 name String 依赖包名。 description String 依赖包描述。 file_name String 依赖包文件名。 状态码: 401 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 403 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 404 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息 状态码: 500 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误信息
  • 响应示例 状态码: 200 OK { "id" : "4f4ae4eb-dcdc-4dd3-bffd-79600bd972b3", "owner" : "*****", "link" : "https://{bucket}.{obs_endpoint}/depends/****/4f4ae4eb-dcdc-4dd3-bffd-79600bd972b3.zip", "runtime" : "Python3.6", "etag" : "83863be4b6c3a86aef995dbc83aae68f", "size" : 577118, "name" : "python-kafka", "description" : "python支持kafka操作的库", "file_name" : "python-kafka.zip"}
  • 响应示例 状态码: 200 Success { "execution_id" : "48aff955-ea10-4ffd-b426-190bc192dc14", "status" : "success", "output" : { "result" : 200, "message" : "success" }, "errors" : [ { "node_id" : "48aff955-ea10-4ffd-b426-190bc192dc14", "error_message" : "Exception happened", "begin_time" : "2021-01-01T00:00:00Z", "end_time" : "2021-01-01T00:00:00Z" } ], "begin_time" : "2021-01-01T00:00:00Z", "end_time" : "2021-01-01T00:00:00Z"}
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 execution_id String 流程实例ID 最小长度:1 最大长度:64 status String 流程执行最终状态 最小长度:1 最大长度:64 枚举值: success fail timeout output Object 工作流的执行结果,JSON格式,仅在status为success时有值 errors Array of SyncExecutionNodeErrorDetail objects 流程执行错误信息,仅在status为fail时有值 begin_time String 流程实例创建时间,格式:yyyy-MM-ddTHH:mm:ssZ,UTC时间 最小长度:0 最大长度:64 end_time String 流程实例结束时间,格式:yyyy-MM-ddTHH:mm:ssZ,UTC时间 最小长度:0 最大长度:64 表4 SyncExecutionNodeErrorDetail 参数 参数类型 描述 node_id String 流程节点ID 最小长度:1 最大长度:64 error_message String 错误详细信息 最小长度:1 最大长度:2048 begin_time String 流程实例创建时间,格式:yyyy-MM-ddTHH:mm:ssZ,UTC时间 最小长度:0 最大长度:64 end_time String 流程实例结束时间,格式:yyyy-MM-ddTHH:mm:ssZ,UTC时间 最小长度:0 最大长度:64 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:1 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 404 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:1 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:1 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512
  • 响应示例 状态码: 200 Success { "id" : "48aff955-ea10-4ffd-b426-190bc192dc14", "workflow_urn" : "urn:fss:cn-north-7:73d69ae0cfcf460190522d060f05ad:workflow:default:testflow:latest", "name" : "test-flow", "description" : "desc", "created_time" : "2021-01-01T00:00:00Z", "updated_time" : "2021-01-01T00:00:00Z", "created_by" : "admin"}
  • 请求示例 获取指定函数流实例。 PUT /v2/{project_id}/fgs/workflows/{workflow_id}{ "name" : "workflow_test", "start" : "test", "functions" : [ { "name" : "test", "operation" : "urn:fss:{regin}:c53626012ba84727b938ca8bf03108ef:test:latest" } ], "constants" : { }, "states" : [ { "id" : "test", "name" : "test", "type" : "Operation", "end" : false, "transition" : "end", "actions" : [ { "function_ref" : { "ref_name" : "test", "arguments" : { "execution_name" : "$.test" } } } ] }, { "id" : "end", "name" : "end", "type" : "End", "end" : true, "transition" : "", "state_data_filter" : { "input" : "", "output" : "" }, "actions" : [ ], "action_mode" : "" } ], "retries" : [ { "name" : "test" } ]}
  • 请求参数 表2 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 函数流名称 最小长度:1 最大长度:64 description 否 String 函数流描述 最小长度:1 最大长度:512 start 是 String 流程开始节点ID 最小长度:1 最大长度:256 triggers 否 Array of Trigger objects 触发器列表 functions 是 Array of Function objects 函数列表 states 是 Array of OperationState objects 函数流节点清单,定义参考SleepState和OperationState constants 是 Object 函数流中的常量 retries 是 Array of Retry objects 重试策略清单 mode 否 String 函数流模式,当前支持两种模式NORMAL: 标准模式,普通模式面向普通的业务场景,支持长时间任务,支持执行历史持久化和查询,只支持异步调用EXPRESS: 快速模式,快速模式面向业务执行时长较短,需要极致性能的场景,只支持流程执行时长低于5分钟的场景,不支持执行历史持久化,支持同步和异步调用默认为标准模式 缺省值:NORMAL 枚举值: NORMAL EXPRESS express_config 否 ExpressConfig object 快速函数流模式配置,当mode为EXPRESS时需要设置 enterprise_project_id 否 String 企业项目ID 最小长度:0 最大长度:64 enable_stream_response 否 Boolean 是否返回流数据 缺省值:false 表3 Trigger 参数 是否必选 参数类型 描述 trigger_name 是 String 触发器名称 最小长度:1 最大长度:256 trigger_type 是 String 触发器类型 FLOWTIMER:定时触发器 SMN:SMN触发器 APIG:APIG触发器(共享版) APIG_DE:APIG触发器(专享版) OBS:OBS触发器 最小长度:1 最大长度:32 枚举值: FLOWTIMER SMN APIG APIG_DE OBS enabled 否 Boolean 是否启用触发器 缺省值:true 枚举值: true false trigger_config 否 OBSTriggerConfig object OBS触发器配置,当trigger_type为OBS时需要设置 表4 OBSTriggerConfig 参数 是否必选 参数类型 描述 bucket 是 String OBS桶名(trigger_type为OBS时配置) 最小长度:1 最大长度:64 events 是 Array of strings OBS事件列表(trigger_type为OBS时配置) prefix 是 String 对象名前缀(trigger_type为OBS时配置) 最小长度:1 最大长度:1024 suffix 是 String 对象名后缀(trigger_type为OBS时配置) 最小长度:1 最大长度:1024 表5 Function 参数 是否必选 参数类型 描述 name 是 String 函数名称,在单个流程中,名称需要唯一 最小长度:0 最大长度:256 operation 是 String 函数调用URN 最小长度:0 最大长度:256 metadata 否 Object 函数扩展属性,由用户自己定制 表6 OperationState 参数 是否必选 参数类型 描述 action_mode 否 String Action执行模式,支持串行,并行两种模式,默认串行 最小长度:1 最大长度:32 枚举值: sequential parallel actions 是 Array of Action objects 节点中要执行的操作列表 on_errors 否 Array of OnError objects 错误处理策略 id 是 String 节点ID,需要在当前函数流中唯一 最小长度:0 最大长度:64 name 是 String 节点名称 最小长度:1 最大长度:256 type 是 String 节点类型 最小长度:1 最大长度:32 枚举值: Operation Sleep End end 是 Boolean 是否是结束节点 transition 是 String 下一步骤节点ID 最小长度:0 最大长度:256 state_data_filter 否 StateDataFilter object 过滤表达式 duration 否 Long 时间等待节点等待时间(秒),节点类型为Sleep时为必填,节点类型不为Sleep时无效 最小值:0.001 最大值:86400 表7 Action 参数 是否必选 参数类型 描述 function_ref 否 FunctionRef object 函数调用信息 表8 FunctionRef 参数 是否必选 参数类型 描述 ref_name 是 String 函数引用名称,需要和外层functions中的name对应 最小长度:0 最大长度:256 invoke_mode 否 String 函数调用模式,目前只支持同步调用 最小长度:1 最大长度:32 枚举值: synchronize asynchronous arguments 是 Object 函数执行时的入参,支持引用constants中的常量 定义方式:参数路径 | 常量值/常量路径 参数路径指输入参数的JsonPath路径,如$.a.b[0].c 常量值可以为数字类型,字符串类型(需要用单引号括起来),布尔类型 常量路径为常量的JsonPath路径,但是根节点需要用$CONST表示,示例:$CONST.a.b 表9 OnError 参数 是否必选 参数类型 描述 error 否 String 错误匹配表达式,用来过滤需要处理的异常 最小长度:0 最大长度:256 transition 否 String 下一步骤节点ID 最小长度:0 最大长度:256 retry_ref 否 String 重试策略名称 最小长度:0 最大长度:256 表10 StateDataFilter 参数 是否必选 参数类型 描述 input 否 String 输入过滤表达式(JsonPath) 最小长度:0 最大长度:256 output 否 String 输出过滤表达式(JsonPath) 最小长度:0 最大长度:256 表11 Retry 参数 是否必选 参数类型 描述 name 是 String 重试策略名称,在单个流程中,名称需要唯一 最小长度:1 最大长度:256 delay 否 Long 重试间隔,单位:秒。若不传,默认为1 最小值:1 最大值:30 max_attempts 否 Long 最大重试次数,。若不传,默认为3 最小值:1 最大值:8 表12 ExpressConfig 参数 是否必选 参数类型 描述 log_level 否 String 快速模式相关配置,仅在mode配置为EXPRESS时生效 快速模式下流程的执行日志级别,当前支持: ALL: 记录所有节点的执行日志 ERROR:仅记录异常节点执行日志 NONE:不记录日志 注意:当配置为ALL和ERROR级别时租户需要开启LTS相关权限 最小长度:1 最大长度:5 枚举值: ALL ERROR NONE
  • 响应示例 状态码: 200 函数流统计信息 { "count" : [ { "timestamp" : 0, "value" : 0 } ], "duration" : [ { "timestamp" : 0, "value" : 0 } ], "fail_count" : [ { "timestamp" : 0, "value" : 0 } ], "running_count" : [ { "timestamp" : 0, "value" : 0 } ]}
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 count Array of SlaReportsValue objects 执行次数 duration Array of SlaReportsValue objects 平均时延,单位毫秒 fail_count Array of SlaReportsValue objects 错误次数 running_count Array of SlaReportsValue objects 运行中数量 表4 SlaReportsValue 参数 参数类型 描述 timestamp Long 时间戳 value Double 值 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:1 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 request_id String 请求ID 最小长度:2 最大长度:512 状态码: 500 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:1 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 request_id String 请求ID 最小长度:2 最大长度:512
共100000条