云服务器内容精选

  • 返回结果 表2 返回结果 类型 说明 GetResult 参数解释: SDK公共结果对象。 表3 GetResult 参数名称 参数类型 描述 status int 参数解释: HTTP状态码。 取值范围: 状态码是一组从2xx(成功)到4xx或5xx(错误)的数字代码,状态码表示了请求响应的状态。完整的状态码列表请参见状态码。 默认取值: 无 reason str 参数解释: HTTP文本描述。 默认取值: 无 errorCode str 参数解释: OBS服务端错误码,当status参数小于300时为空。 默认取值: 无 errorMessage str 参数解释: OBS服务端错误描述,当status参数小于300时为空。 默认取值: 无 requestId str 参数解释: OBS服务端返回的请求ID。 默认取值: 无 indicator str 参数解释: OBS服务端返回的错误定位码。 默认取值: 无 hostId str 参数解释: 请求的服务端ID,当status参数小于300时为空。 默认取值: 无 resource str 参数解释: 发生错误时相关的桶或对象,当status参数小于300时为空。 默认取值: 无 header list 参数解释: 响应消息头列表,由多个元组构成。每个元组均包含两个元素,代表响应头的键值对。 默认取值: 无 body object 参数解释: 操作成功后的结果数据,当status大于300时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无 表4 返回结果 GetResult.body类型 说明 表5 参数解释: 响应结果,详见表5 表5 RestoreFailedWorkflowExecutionResponse 参数名称 参数类型 描述 executionUrn str 参数解释: 运行实例的URN 默认取值: 无 restoredAt str 参数解释: 运行实例的恢复启动时间 默认取值: 无 executionName str 参数解释: 运行实例的名字 默认取值: 无
  • 操作场景 在数据发布、数据变更等流程运行过程中,用户需要通过调用流程服务API,可以将部件、BOM(Bill Of Material,物料清单)、工艺等数据传递给第三方系统,实现上下游系统之间数据同步。此时,可以通过定义流程服务编排,生成相应的流程服务API,后续在流程元模板的“流程编辑”中应用后,实现流程与外部系统对接,如数据同步、数据集成、 消息通知 等场景。 流程服务编排支持通过如下方式进行创建,请根据实际业务需求进行选择。
  • 查看服务详情 在“聚合服务编排”页面,单击服务“编码”链接,查看目标服务详情。 表1 服务详情页签介绍 详情页签 说明 服务定义 展示当前服务的基本信息、图结构,入参、过滤条件以及出参等信息,其中纯脚本服务无“编辑图结构”和“设置过滤条件”。 基本信息:包括服务基本信息、服务权限信息、API调用方式、服务发布信息及版本信息等。 编辑图结构:服务涉及的模型以及关系组成的图结构。 设置入参:展示服务入参信息。入参指的是API接口中需要前台用户输入的参数。 设置过滤条件:展示已设置的服务入参的过滤条件。 设置出参:展示服务出参信息。出参指的是API接口中的返回参数。 服务开发 展示当前服务的功能脚本,支持快速调测服务。 服务测试 展示当前服务的测试用例,支持执行测试用例并查看结果。 查看测试用例详情:单击具体用例的“用例编码”链接,查看用例信息详情。 查看测试用例执行结果:单击具体用例“操作”列处的,查看已执行过的测试用例结果。 服务发布 展示当前服务已配置服务发布所需的响应参数等。 数据集配置 展示当前服务数据集配置信息(详细可参见数据集配置)。 说明: 仅“服务定义”基本信息阶段中“支持服务运行结果保存为数据集”为“是”时,才显示该页签。 修订记录 展示当前服务的所有版本修订记录。修订记录不可创建和编辑,如果对应服务有新的修订记录则会自动更新到该页面。 查看详情:单击“修订号”链接,弹出对应记录的详细信息。 版本对比:勾选2个不同的版本后,单击“图结构对比”,根据需要选择“全量比较”或“差异比较”页签查看。
  • 创建私有结构体 服务编排中如果涉及复杂的结构体参数,可以先创建全局或私有结构体,并用作参数类型。创建全局结构体和私有结构体后,再参考创建对象变量/结构体变量/事件变量中操作,创建全局结构体变量和私有结构体变量,作为服务编排的参数类型。 在服务编排设计器右侧,选择,在私有结构体页面单击“新增”。 该“私有结构体”页面有两个“新增”按钮,单击上面的“新增”按钮,是通过设置页面参数新建私有结构体。单击下面的“新增”按钮,是通过输入JSON Schema类型的数据源码定义私有结构体。 图13 添加私有结构体类型 (如果上一步单击“私有结构体”页面上方的“新增”按钮,请执行该步骤)设置页面参数。 在“基本信息”中,输入结构体名字、描述信息。 在“结构体成员”中,设置自定义成员变量,包括设置成员变量的名称、数据类型、是否必填、是否是集合和描述信息等。单击“新增”,可增加成员变量,支持设置全局结构体或私有结构体成员变量。当私有结构体的成员变量包含结构体类型时,您需要提前定义成员结构体。例如,下图中成员变量“hobby”为私有结构体类型,需要提前创建“create”私有结构体。 图14 配置私有结构体 (如果上一步单击“私有结构体”页面下方的“新增”按钮,请执行该步骤)在“创建JSON Schema”页面中,定义结构体名称,在“JSON源码”中输入数据源码,单击,系统会进行校验,转换成服务编排中的结构体类型,单击“保存”。 图15 创建JSON Schema 数据源码示例如下: { "name": "xiaoming", "age": 18, "father": { "name": "daliu", "gender":"male" }, "brother": { "name": "xiaolei", "gender":"male" } } 创建成功后,页面显示如下。 图16 创建成功 该方式创建的结构体中,包含成员结构体时,成员结构体具体定义不会在界面显示,且其他结构体不可引用。 JSON结构体支持嵌套,例如上述创建的“family”结构体,在“JSON Schema结构体”区域再次单击“新增”,新增“company”结构体,里面“ceo”嵌套引用“family”结构体,如下图所示,在定义结构体输入值时,您可以输入“$”符号,选择当前服务编排中的其它结构体进行嵌套引用。 图17 引用其他结构体
  • 创建常量 编排服务流程或交互时,不会改变的值或参数,通常定义为常量,例如服务标识、访问地址和错误码等。 在服务编排设计器右侧,选择。 在全局上下文页面,单击“常量”后的。 单击新增常量后的“...”,选择“设置”。 设置页面参数,单击“保存”。 图11 配置常量 表3 常量参数说明 参数 说明 名称 新建常量的名称,名称是变量在流程中引用的唯一标识。修改变量名不会改变图元中的引用,但是会导致流程不可用。 数据类型 常量的数据类型,直接在下拉框中选择即可,默认为“文本”类型。 值 新建常量的取值,字符串常量输入需要用双引号括起来,例如“"abc"”。 描述 根据实际需求,输入变量的描述信息。 外部使用 如果勾选该选项,表示该变量为外部使用变量,编译时不校验其是否被使用。 默认为不勾选。
  • 创建对象变量/结构体变量/事件变量 对象变量用于在服务编排中引用或操作特定的对象实例,用于较简单的业务流程中。结构体变量允许将多个不同类型的数据项进行组合,通常用于较复杂的业务流程中。事件变量用于表示系统或业务流程中发生的事件,事件可以是系统内部产生的,也可以是外部触发的。 在服务编排设计器右侧,选择。 在全局上下文页面,单击“对象变量”后的。 设置页面参数,以创建对象变量为例进行介绍。 图18 配置对象变量 表5 对象变量参数说明 参数 说明 名称 输入新建对象变量的名称,名称是变量在流程中引用的唯一标识。修改变量名不会改变图元中的引用,但是会导致流程不可用。 对象 请直接在下拉框中,选择具体的对象。选择“对象”类型时,该参数才会显示。 全局结构体 请直接在下拉框中,选择具体的全局结构体。选择“全局结构体”类型时,该参数才会显示。 私有结构体 请直接在下拉框中,选择具体的私有结构体。选择“私有结构体”类型时,该参数才会显示。 事件 请直接在下拉框中,选择具体的事件。选择“事件”类型时,成员变量为事件的自定义字段,不包括系统预置的标准字段。选择“事件”类型时,该参数才会显示。 默认值 请直接输入变量的默认值或从下拉框中选择。 描述 请根据实际需求,输入变量的描述信息。 取值范围:1~255个字符。 是否为数组 是否为数组变量,即集合变量。 默认为不勾选。 外部使用 勾选该选项,表示该变量为外部使用变量,编译时不校验其是否被使用。 默认为不勾选。
  • 创建公式变量 在服务编排中,公式变量主要用于变量赋值、表达式计算、参数传递等。 在服务编排设计器右侧,选择。 在全局上下文页面,单击“公式”后的。 设置页面参数,单击“保存”。 图12 配置公式变量 表4 公式变量参数说明 参数 说明 名称 输入新建公式变量的名称。 数据类型 公式变量的数据类型,直接在下拉框中选择即可,默认为“文本”类型。 描述 根据实际需求,输入公式变量的描述信息。 外部使用 勾选该选项,表示该变量为外部使用变量,编译时不校验其是否被使用。 默认为不勾选。 表达式 设置新增变量的表达式。如果表达式中需要运用公式,可根据需要双击“公式”区域中系统预置的公式,该公式会显示在右侧“表达式”区域中。当表达式中需要有变量参数时,可从变量区域中直接选择变量拖入到表达式中。
  • 创建服务编排 参考登录AstroZero新版应用设计器中操作,登录应用设计器。 在左侧导航栏中,选择“逻辑”。 (可选)单击编排后的,为服务编排添加目录。 服务编排默认存放在根目录下,在创建服务编排前,您可以先创建服务编排存放的目录,也可以在服务编排创建后将其拖拽到指定目录。 将鼠标放在已创建的服务编排目录上,单击,进入“添加服务编排”页面。 如果未创建服务编排目录,请直接单击编排后的,进入添加服务编排页面。 设置参数,单击“添加”。 图1 创建服务编排 表1 添加服务编排参数说明 参数 说明 标签 新建服务编排的标签名,用于在界面展示,创建后可修改。 取值范围:1~64个字符。 名称 服务编排在系统中的唯一标识,创建后不支持修改。系统会自动在名称前添加“{命名空间}__”,当其他功能调用服务编排时,调用的是服务编排的名称,而不是标签。 命名要求如下: 长度不能超过64个字符,包括前缀命名空间的长度。 说明: 名称前的内容为命名空间,在AstroZero中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。 名称必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不能以下划线结尾。 类型 在下拉框中,选择服务编排的类型。 Autolaunched Flow:自启动Flow,在接口调用后会立即执行服务编排模型定义的逻辑。 Event Trigger:事件触发的服务编排,在事件触发时才会开始执行服务编排模型定义的逻辑。当选择该类型时,您需要配置具体的事件以及条件规则。 默认值:Autolaunched Flow。 描述 请根据实际需求,输入服务编排的描述信息,建议设置为服务编排的功能介绍。 取值范围:1~255个字符。 创建变量。 在服务编排设计器中,单击,进入全局上下文页面。 单击“变量”后的,创建表2中的变量。 图2 创建变量 表2 变量说明 变量名 类型 变量说明 userName 文本 传入的用户名 message 文本 欢迎信息 在全局上下文中,除了创建基本类型的变量,还可以创建常量、创建公式变量、创建私有结构体和创建对象变量/结构体变量/事件变量。 单击,配置服务编排的输入输出参数。 图3 配置输入输出参数 将“逻辑”中的“赋值”图元,拖拽到画布中。 赋值图元可以实现对全局上下文中变量等参数进行赋值,其他图元的详细介绍,请参见为AstroZero服务编排设置图元。 图4 拖拽赋值图元到画布 配置图元。 选择赋值图元,单击。 在“赋值”页面中,单击“新增行”,参照下图将创建的变量拖拽到相应的位置。 将“"Hello,"”赋值给message变量,并将userName变量拼接到message变量中,赋值语句将从上往下依次执行。 图5 配置赋值图元 连接图元指定逻辑关系,即从开始图元连向赋值图元,表示服务编排开始执行后,执行赋值图元的赋值语句。 图6 连接图元 单击页面上方的,保存服务编排。 单击,进入服务编排调试页面。 在输入参数中,输入如下内容,并单击“运行”。 { "userName": "Flow" } 运行结果如下,输出“Hello,Flow”。 图7 运行结果 单击页面上方的,启用服务编排。 服务编排启用后,才可以在脚本、工作流等操作中引用。 调试已创建的服务编排。 在应用设计器左侧导航栏中,选择“集成”。 单击开放接口后的“+”,新建一个helloFlow开放接口,单击“保存”。 图8 新建开放接口helloFlow 接口创建后,在开放接口中,将鼠标放在已创建的接口上,单击,选择“查看”。 在预览页面,单击接口后的。 单击“测试一下”,输入示例模型,单击“运行”。 图9 测试接口 图10 查看API测试结果
  • 接口启动 通过调用BPM的Rest接口“http://AstroZero对外提供的默认 域名 /u-route/baas/bp/v2.0”,进行启动。 接口URI:POST AstroZero域名/u-route/baas/bp/v2.0/runtime/instances 表1 请求参数 参数 是否必选 参数类型 描述 name 是 String BPM的名称,在界面处创建BPM时配置的名称。 version 否 String BPM版本号,为可选参数,因为一个BPM可以存在多个版本。如不带版本号,表示运行当前启用的版本。 variables 否 Object BPM元数据中定义的变量,包括自定义变量和系统变量, key-value形式,key为变量名字,value为变量的值。如果需要在启动BPM前设置BPM的变量,可以填写该参数。如需启动时设置变量,可以在variables中设置系统变量$Flow.BusinessKey;如需设置工作流的title,可以设置系统变量$Flow.Title。 表2 响应参数 参数 参数类型 描述 resCode String 返回码,如果返回“0”代表请求成功。 resMsg String 返回消息,如果成功状态,通常会返回“Success”,其他情况会返回具体的错误信息。 result Object 在成功请求时会有内容,返回启动BPM之后,BPM实例的运行信息。 例如,创建并启动了一个BPM,BPM名称为“createCloudOK_NEW”,版本号为“1.0.1”,带有4个启动参数。 请求示例 POST AstroZero域名/u-route/baas/bp/v2.0/runtime/instances { "name":"createCloudOK_NEW", "version":"1.0.1", "variables":{ "name":"sun", "memorySize":"15", "storageSize":"15", "expiryDate":"2018-12-12" } } 响应示例 { "resCode":"0", "resMsg":"Success", "result":{ "name":"bpName1", "version":"1.0.1", "id":"002N000000Sy2NphoRbU", "processDefID":"001L000000S8Yi3xG9Gi", "interviewLabel":"BP Label 1", "nextElem":"subProcess", "isTest":true, "state":"Dispatched", "bpStatus":"New", "urgency":0, "taskOutcome":"", "businessKey":"002N000000Sy2NphoRbU", "startTime":"2019-08-27 10:53:04", "endTime":"", "Ext1":"", "Ext2":"", "Ext3":"", "Ext4":"", "Ext5":"", "Ext6":"", "Ext7":0, "Ext8":0, "suspended":false, "isClosed":false } }
  • 脚本启动 在脚本代码中,导入BPM的脚本库,通过下面脚本代码方式启动。 import * as bp from "bp"; //......(其他代码) const client = bp.newInstanceClient(); client.start(BPM名称, BPM版本号, BPM中定义的变量); 脚本样例如下: import * as bp from 'bp'; let client = bp.newInstanceClient(); let res = client.start("test", "1.0.1", { "foo": 1, "bar": 3}); 输出样例如下: { "interviewId": "002N000000FdtN6xwgjI", "screen": { "allowBack": false, "allowFinish": true, "allowNext": true, "allowPause": false, "helpText": "", "label": "input phone number", "name": "inputphonenumber", "pausedText": "", "screenFields": [ { "dataType": "text", "defaultValue": "135xxxxxxxx", "fieldType": "InputField", "helpText": "", "isRequired": false, "label": "phone number", "name": "phoneNumber" } ] }
  • 在BPM设计页面启动工作流 参考登录经典应用设计器中操作,登录经典版应用设计器。 在BPM所在目录下,单击对应的BPM,进入BPM编辑器。 图1 单击待启动的BPM 在BPM设计页面,单击页面上方的,启动该BPM。 在BPM设计页面,可以通过如下两种方式启动。 自定义:将BPM的“开始”图元的开始类型设置为“自定义”启动,不指定事件的起因,即不需要指定触发条件,主要用于接口调用进行启动。 图2 自定义 表单:使用表单或页面,启动BPM。选择该项时,需要配置具体的表单、标准页面或高级页面。 图3 表单
  • 服务编排基本能力 拖拉拽式编排流程 以往的传统编程,需要进行变量的声明并编写相应逻辑代码进行服务的开发。使用服务编排进行服务开发,能够通过拖拉拽的方式,将配置项创建的变量以及服务编排中提供的各种功能进行编排,并以流程的方式将服务所要实现的功能展现出来。整个开发过程中无需进行代码的编写,简单快捷,并能够图形化展示服务的逻辑。 逻辑处理 服务编排中提供了逻辑处理的图形化元件,包括赋值、循环、跳出循环、决策和等待。通过这些图元能够实现基本的逻辑处理,并图形化展示,便于开发者理解。 对象处理 服务编排中提供了对象处理的图形化元件,包括记录创建、记录查询、记录更新和记录删除。通过这些图元能够对通过平台创建的自定义对象或标准对象进行相应的增、删、改、查操作,简化处理对象数据的流程,提高开发效率。 服务单元组合脚本、原生服务、BO和第三方服务 服务编排中提供了服务单元组合的图形化元件,包括脚本、子服务编排、原生服务、BO和连接器。通过这些图元能够将平台中已开发完成的服务集成到服务编排中,并重新进行组合,快速扩展出更丰富的业务功能。
  • 服务编排与模块间调用关系 服务编排将平台提供的部分功能模块进行了封装,并提供了平台其他模块调用服务编排的能力,下面介绍其他模块与服务编排是如何进行相互调用的。 脚本 在服务编排中,可通过配置脚本图元,选择当前应用中的脚本,进行脚本的调用。 在脚本中,可以通过引入sys库,再执行“sys.invokeFlow({Flow_Name})”,进行服务编排的调用。其中,“Flow_Name”为服务编排的名称。 对象 在服务编排中,可以通过配置记录创建、查询、更新和删除图元,对当前应用中的对象记录进行增删改查。 标准页面 在标准页面的模型视图中,新建服务模型,能够绑定服务编排,进行服务编排的调用。 工作流 在工作流中,可以通过配置“调用服务编排”活动,选择相应的服务编排,进行服务编排的调用。 API接口 在新建开放接口时,选择资源类型为“服务编排”,并选择相应的服务编排,即可将服务编排绑定到服务接口上,通过API接口进行服务编排的调用。 BO 在服务编排中,调用BO(BO是封装了完整的数据模型、业务逻辑、页面展现的软件单元)进行使用,详情请参见为AstroZero服务编排添加BO图元。 连接器 在服务编排中,调用与第三方系统对接的接口,如对接短信发送、 云存储 、系统中已定义的Action等,详情请参见为AstroZero服务编排添加连接器图元。 服务编排中只允许调用当前应用工程下的资源,如对象、脚本。例如,服务编排A中需要调用脚本B,请确保A和B处于同一应用中。如果需要调用的资源不在同一应用中,则在服务编排A所在的应用中新建脚本B,或选择“使用已有脚本”导入脚本B,再在服务编排A中调用该脚本。 图1 通过“使用已有脚本”导入脚本
  • 操作场景 在数据发布、数据变更等流程运行过程中,用户需要通过调用流程服务API,可以将部件、BOM(Bill Of Material,物料清单)、工艺等数据传递给第三方系统,实现上下游系统之间数据同步。此时,可以通过定义流程服务编排,生成相应的流程服务API,用以后续在流程元模板的“流程编辑”中应用后,实现流程与外部系统对接,如数据同步、数据集成、消息通知等场景。 流程服务编排支持通过如下方式进行创建,请根据实际业务需求进行选择。
  • 如何使用循环图元 例如,当前有数组变量“TestList1”,“TestList2”,要求把“TestList1”中的元素逐个加到数组“TestList2”的后面。 创建数组变量“TestList1”、“TestList2”和普通变量“test_var”。 在服务编排编辑器页面右侧,选择。 在全局上下文页面,单击“变量”后的加号。 图1 创建变量 单击新增变量后的“...”,选择“设置”。 设置数组变量“TestList1”,数据类型为文本。 图2 数组变量“TestList1” 参考上述步骤设置数组变量“TestList2”和普通变量“test_var”,普通变量不用勾选“是否为数组”。 图3 数组变量“TestList2” 图4 普通变量“test_var” 在逻辑中,拖拽“循环”图元到画布中。 选中循环图元,单击,设置基本信息。 图5 设置基本信息 表1 基本信息参数说明 参数 说明 标签 设置图元的标签,用于在服务编排设计页面展示。系统会自动填入该值,格式为Loop序号,序号从“0”开始,表示同类型图元序号。 名称 设置图元的名称,名称为图元在服务编排中的标识,请确保在当前服务编排中唯一。命名要求如下: 长度范围为1~80个字符。 必须以英文字母开头,由英文字母,数字或单下划线组成,且不能以下划线结尾。 描述 请根据实际需求,在输入框中输入图元的描述信息。 取值范围:1~255个字符。 单击,在“循环”页面进行配置。 图6 配置循环图元 表2 循环图元配置参数说明 参数 说明 数组 进行循环的具体数组,可从全局上下文中拖拽或输入集合变量。 本示例从全局上下文拖拽数组变量“TestList1”,表示对数组“TestList1”进行循环。 元素 将每次循环取出来的元素,赋值给该变量,可从全局上下文中拖拽或者输入变量。 本示例请从全局上下文拖拽普通变量“test_var”,表示将每次循环取出来的元素赋值给变量“test_var”。 排序 循环取出的顺序,可选择升序或者降序从数组中依次取出。 进行赋值操作,将“test_var”的值加到数组“TestList2”后面。 在逻辑中,拖拽“赋值”图元到循环图元后。 图7 拖拽赋值图元 单击,设置“标签”和“名称”为“AddToList2”。 如下图所示,设置页面参数,从全局上下文拖拽数组变量“TestList2”到变量中,从全局上下文拖拽普通变量“test_var”到值中。将“test_var”的值加到数组“TestList2”后面。 图8 添加Assignment定义 将循环和赋值连线,在连线类型选择“下一个取值”。 图9 添加连线 清空“test_var”并闭环。 在逻辑中,拖拽“赋值”图元至画布中。 单击,设置“标签”和“名称”为“testvar_Tonull”。 单击,设置页面参数。 从全局上下文拖拽普通变量“test_var”到变量中,从全局上下文拖拽全局常量“$GlobalConstant.Null”到值中。清空“test_var”。 图10 清空test_var页面 在服务编排编辑器页面右侧,选择,按照下图从全局上下文页面中拖拽参数到相应的入参和出参区域,设置服务编排的入参和出参。 图11 设置服务编排的入参和出参 按照下图连线,单击页面上方的,保存服务编排。 图12 连接图元 单击,在“输入参数”中输入参数后,运行服务编排。 在“输入参数”中,输入如下参数: { "TestList1": [ "1", "2", "3" ] } 检查输出页签的结果是否符合预期。 { "interviewId": "002N000000YfbbgBStmq", "outputs": { "TestList2": [ "1", "2", "3" ] } }