华为云用户手册

  • 6、安装部署低代码应用 应用开发编译发布成应用包后,可在沙箱环境和运行环境中安装使用。 在沙箱环境安装应用 在应用正式发布上线之前,需要在测试环境进行测试,包含数据配置。这里一般以沙箱(Sandbox)环境来作为测试环境,具体操作请参见如何使用沙箱进行测试。在沙箱环境安装应用的流程和在运行环境安装应用流程一致,如图1。 在运行环境安装应用 应用包的开发者租户,可以在当前租户的运行环境中安装应用资产包,安装后进行测试或直接部署运行该应用。安装应用的操作,请参见如何安装已开发好的应用。 图1 在运行环境安装应用流程
  • 4、开发低代码应用 低代码应用创建完成后,将进入开发阶段,您还需要进行以下操作。 表2 开发低代码应用 操作 操作对象 使用说明 后端开发 对象 AstroZero中的对象(也可以称为Object)相当于传统方式开发业务系统时,数据库中创建一个表。每个对象对应一张数据库表,用于保存业务系统需要的配置数据和业务数据。更多内容,请参见对象。 触发器 触发器以图形表示的方式将业务流程呈现给用户,触发器配置好后,用户不必手动执行这些操作,系统会自动执行。更多内容,请参见触发器。 脚本 针对业务逻辑比较复杂的场景,AstroZero平台提供了脚本(Script)能力,支持用户在线开发TypeScript脚本,完成灵活复杂的业务逻辑。更多内容,请参见脚本开发。 服务编排 服务编排是一种通过简单的拖拉拽式流程编排以及参数配置的方式来进行服务开发的能力,并支持对已开发的服务重新进行组合编排。更多内容,请参见服务编排。 BPM BPM(Business Process Management)即业务流程管理,源自业界BPMN 2.0标准。AstroZero基于该规范实现了自己的业务流程管理系统,由于BPM本身已经成为了业界一套行业规范,因此在AstroZero称实现此类流程的引擎为BPM流程编排。更多内容,请参见BPM服务编排。 前端开发 标准页面 标准页面是一种将一个或多个组件拖进画布,进行低代码甚至无代码的配置,即可快速完成业务功能的前端页面。对于一般的业务应用系统,例如请假电子流、出差报销、在线投票等企业常见业务场景,其功能主要是针对业务数据的增、删、改、查,且前端界面的样式相对简单的页面,此时,您即可使用AstroZero提供的“标准页面”。更多内容,请参见标准页面。 高级页面 对于一些样式比较复杂的页面,例如网站、电商、园区大屏等,可以使用平台提供的“高级页面”。更多内容,请参见高级页面。 集成开发 连接器 通过AstroZero开发的应用可以与第三方应用系统对接,实现微信支付、短信发送等功能。更多内容,请参见与云服务集成。 数据接入 当需要从外部数据源获取数据,按照需求对数据进行一系列处理,然后转化成内部事件,输出给Kafka或者ROMA。这时您可通过配置“数据接入”,来实现这整个流程。更多内容,请参见如何配置数据接入。 原生服务 AstroZero支持无缝集成原生服务的API,并开放给应用调用。更多内容,请参见原生服务。 应用配置 配置项 开发应用时,创建的各种配置项,如系统参数、选项列表、错误码等。更多内容,请参见管理员指南。 说明: 系统参数、选项列表、错误码这三类配置的删除操作都属于全局范围的操作,如果多应用同时使用的配置项,建议不要在某一应用随意删除。 功能测试 预览应用 应用开发完成后,可预览并验证应用。例如,调查问卷应用创建完成后,通过预览功能,可预览并体验调查问卷应用的功能。
  • 3、创建低代码应用 AstroZero覆盖三大开发低代码应用开发场景,满足行业客户、开发者等各种需求。 表1 开发场景介绍 分类 应用类型 使用说明 轻应用 轻应用 轻应用一般为轻量级的应用,不涉及复杂的代码,用户通过零代码或低代码就能轻松完成应用的搭建。 在AstroZero中,可以通过如下两种方式创建轻应用。 使用应用模板创建应用 当您的业务与应用模板中的场景相似度较高时,可以尝试使用模板创建,并在模板应用的基础上继续改造应用。 从空白开始创建一个全新的应用 从前端到后端,从零开始,一步步完成应用的开发。 行业应用 行业应用 行业应用是针对不同行业领域,如城市、园区、能源及交通等创建的应用。 在AstroZero中,可以通过应用模板或从空白开始,创建一个全新的行业应用,操作方式与轻应用相同。 Addon应用 当需要基于已有应用或解决方案(不是单一的应用,某一解决方案会涉及到多个应用)进行定制时,可选择创建Addon类型应用。更多内容,请参见创建Addon应用。 Native Service 租户在AstroZero平台外开发了一些服务,服务运行在Docker容器中。若希望将这些服务集成到AstroZero中,供AstroZero内部应用或其他第三方系统调用时,可选择创建Native Service。更多内容,请参见如何创建原生服务。 服务组件(BO) BO即商业对象,是封装了完整的数据模型、业务逻辑、页面展现的软件单元,一个BO提供一个完整场景的服务,为上层应用提供特定服务。用户可基于BO,如魔方一样创建功能各异的应用。更多内容,请参见服务组件(BO)。 业务大屏 Astro大屏应用 Astro大屏应用(简称Astro Canvas),是Astro轻应用提供的可视化页面构建服务,提供了丰富的可视化组件、灵活的数据接入和多种方式页面构建能力,支持多屏适配,帮助开发者快速构建和发布专业水准的实时可视化应用。通过Astro Canvas一站式数据可视化开发,可分钟级构建业务大屏、小屏页面。更多内容,请参见用户指南(Astro Canvas)。
  • 操作步骤 进入数据调试页面。 方式一:在AstroZero经典版应用设计器中,单击左下角的,进入数据调试页面。 图1 从应用开发页面进入数据调试页面 方式二:在AstroZero经典版环境配置中,单击页面右下角的,进入数据调试页面。 图2 从环境配置页面进入数据调试页面 方式三:直接在浏览器中,输入“https://AstroZero域名/studio/console.html”,进入控制台页面进行数据调试。 控制台页面如图3所示,界面分为多个区域,展示不同的内容。 图3 控制台 区域1:数据调试控制台支持的所有操作。 对象管理:关于对象表的操作。 缓存管理:对AstroZero系统的缓存进行管理,主要是清理所有缓存或清理某个特定缓存的命令。 任务查询:对AstroZero的一些历史任务或表数据统计的可用命令展示。 搜索管理:展示Elasticsearch中的可搜索表或字段。 区域2:根据区域1的操作从而展示对应的内容。 单击区域1的“对象管理”,则会在区域2中展示该用户有权限看到的所有表。 单击区域1“缓存管理”,则会在区域2中展示管理缓存相关的命令。 单击区域1“任务查询”,则会在区域2中展示任务管理相关的命令。 单击区域1“搜索管理”,则会在区域2中展示搜索管理相关的命令,支持根据应用进行过滤,默认显示“全部”,即搜索所有应用数据。 区域3:展示命令的说明或提示文字。 单击区域2展示的命令时,会在该区域展示该命令的简单说明或展示一些提示文字。 区域4:操作按钮区域。 单击“执行”(快捷键为Ctrl + Enter),可执行用户在区域5输入的命令。或者选中区域5输入的某个命令,单击“执行选择项”进行执行。命令执行完成后,单击“清除”,可清除执行结果的展示。 区域5:命令输入区,用户可以在该区域进行表数据查询,支持多种表操作的SQL语句。 例如:在单击区域1的“对象管理”时,会在区域2展示所有对象表,单击某个表,便可复制该表名。用户在区域5输入命令时,可快速复制粘贴要查询的表名。且对于区域2展示的所有命令,可通过双击鼠标左键,可直接将命令展示在该区域,然后单击区域4“执行”,执行该命令,减少了用户手动输入命令的动作。 区域6:展示相关命令的执行结果。 区域7:展示系统的发行版本和发行时间。 区域8:记录用户在区域5成功执行的所有命令。 单击该区域的命令,可将选中的命令填充到区域5,单击区域4的“执行”按钮,便可执行该历史命令。 根据 “支持SQL语句列表”提示,输入SQL查询语句,执行查询。 对象管理中除了系统预置的标准对象、用户定制的自定义对象、视图对象和聚合对象,还有一种系统对象,即AstroZero各项系统功能模块所使用到的对象,如服务编排、脚本。此类对象一般无需关注,若需要定位问题可在数据调试控制台使用SQL语句进行查询。 图4 执行SQL语句查询
  • 当前泳道 “用户任务”图元接收人类型设置为“当前泳道”,将泳道和工作队列绑定,则处于该泳道的用户任务图元,由该泳道对应工作队列中的成员去处理。工作队列中的成员可以是多个用户、业务用户、公共组中成员、角色或带有下属的角色中成员。配置过程如下: 参考管理队列中操作,创建工作队列,将处理任务的用户或者业务用户加入工作队列中。 例如,创建派单员工作队列“Dispatcher”。 图2 创建工作队列 如图3所示,“用户任务”的接收人类型选择“当前泳道”,可以将任务分配给“当前泳道角色的任意成员”或“当前泳道中的上一个任务被分配的人员”。 图3 用户任务中设置当前泳道接收 如图4所示,单击左侧泳道区域,在“泳道配置”中设置派单员工作队列“Dispatcher”。 处于该泳道的用户任务图元,则由工作队列“Dispatcher”中的成员去处理。 图4 设置泳道
  • 基于规则 “用户任务”图元接收人类型设置为“基于规则”时,可以将全局上下文中的变量拖入到条件输入框中。当条件输入框中的变量或条件为true时,将会把任务分配给选择框中配置的用户。您可以通过以下方式,配置接收任务的用户: 当前用户:把任务分配给执行当前用户任务的用户。 上级经理:把任务分配给执行当前用户任务的用户的上级经理。 特定的用户:把任务分配给选择框中选择的用户。 队列:把任务分配给选择框中选择的工作队列中的所有用户。 用户属性:根据用户对象的某一字段,进行任务的分配。 变量:根据输入框中的用户ID或用户名,将任务分配给相应的用户。 图6 基于规则
  • 名称和表达式 “用户任务”图元接收人类型设置为“名称和表达式”时,可以通过“表达式”、“用户”和“组”三种方式分配该任务的参与者。这时,泳道中的工作队列配置不起作用。 图5 名称和表达式 用户:在“取值”中,选择接收该任务的用户,不包括业务用户。 组:在“取值”中,选择公共组,则该任务由公共组的成员去处理。公共组的成员可以是用户、业务用户、其他公共组的成员、角色或带有下属的角色中成员。关于如何创建工作组,请参考管理公共组。 表达式:当将“参与者”配置为“表达式”时,实际是一个变量。在“取值”中可设置变量的值,变量值支持以下几种: 用户的用户名或用户ID,其中用户名前需要加“user:”前缀。 业务用户的用户名或业务用户ID,其中业务用户名前需要加“puser:”前缀。 公共组名称或者公共组ID,其中公共组名称前需要加“group:”前缀。 角色名称或者角色ID,其中角色名称前需要加“role:”前缀。 例如,分配任务接受者为用户名为“PortalUser1”的业务用户、用户名为“User1”的用户、用户ID为“10XX000000XXXXXXX”的用户、公共组名称为“group1”和角色名称为“role1”的合集,则取值为“"puser:PortalUser1,user:User1,10XX000000XXXXXXX,group:group1,role:role1"”。多个取值之间用英文逗号“,”分隔,取值外加英文双引号。
  • 用户和业务用户 在进行任务分配时,AstroZero平台提供了两种用户可以进行任务的分配,分别是用户和业务用户。 用户(User):是租户账号或子账号开发者,用来管理应用和业务用户。购买AstroZero的租户账号默认拥有所有权限,是管理员用户,可添加子账号并为其配置需要的权限。 业务用户(即PortalUser):是访问在AstroZero中开发的业务应用的用户账号,即业务应用的使用者。 您可以在BPM中通过用户任务图元,在用户任务配置页面的“接收人”模块,通过以下三种方式将任务分配给用户或业务用户。 当前泳道 流程发起人的主管 名称和表达式 基于规则 图1 接收人类型
  • 步骤2 创建WebSocketAlarmFlow告警服务编排 创建WebSocketAlarmFlow告警编排以触发事件,并在服务编排中配置全局变量和系统(日期/时间)变量为事件传递参数。 如果想快速了解和验证WebSocket使用,可不必创建WebSocketAlarmFlow告警服务编排,采用消息事件的测试功能进行简单验证。您可以直接跳过该步骤,直接执行步骤3 开发alarmDisplayWidget告警展示组件,并在方法一:直接触发事件验证中采用方法1(直接触发事件验证)进行效果验证。 创建编排。 参考如何登录新版应用设计器中操作,登录新版应用设计器。 在左侧导航栏中,选择“逻辑”。 单击编排的,进入添加服务编排。 选择“创建一个新的服务编排”,输入标签“WebSocketAlarmFlow”,单击“添加”。 单击名称对应的输入框,系统会根据标签自动生成名称。 图6 创建服务编排WebSocketAlarmFlow 在服务编排画布左侧,单击“基本”,将“发送事件”图元拖入画布中。 图7 拖入“发送事件”图元 添加添服务编排变量。 选中“发送事件”图元,单击画布右侧。 单击“全局上下文”,进入上下文页面。 单击“变量”后的,添加表4中变量。 图8 配置全局变量 表4 告警服务编排的变量 名称 数据类型 AlarmTitle 文本 AlarmContent 文本 在“发送事件”图元中,配置1中创建的事件CNAME__WebSocketAlarmEvent__e(需替换为用户实际创建的事件名称)。 参考下图配置输入参数,通过全局变量AlarmTitle和AlarmContent及系统变量$Flow.CurrentDateTime为事件传参。 图9 事件图元的配置 连接所有图元。 图10 连接图元 选中“开始”图元,单击,参考下图配置服务编排的入参。 入参是从全局上下文的变量中拖入,告警服务编排的入参有AlarmTitle和AlarmContent两个。 图11 配置入参 单击页面上方的,保存服务编排。 单击,启用服务编排。 服务编排只有启用后,才会生效。服务编排在启用后,不可编辑,若需要对其中的图元或参数进行修改,请先单击,禁用该服务编排。
  • 步骤1 创建WebSocketAlarmEvent告警事件 创建事件。 参考如何登录新版应用设计器中操作,登录新版应用设计器。 在左侧导航栏中,选择“数据”。 单击事件后的,进入添加事件页面。 选择“创建新事件”,输入标签“WebSocketAlarmEvent”,单击“添加”。 单击名称对应的输入框,系统会根据标签自动生成名称。系统实际创建的事件名称为“CNAME__WebSocketAlarmEvent__e”,其中“CNAME__”为租户命名空间namespace,“__e”后缀代表是自定义事件。 图3 添加WebSocketAlarmEvent事件 在事件详情页面,选择“自定义参数”页签,单击“新建”。 设置标签、名称和字段类型,单击“保存”,添加事件自定义参数AlarmTitle。 图4 添加事件自定义参数 重复3中操作,创建事件自定义参数AlarmContent、AlarmDate。 表3 事件自定义参数说明 标签 名称 字段类型 AlarmContent 单击名称对应的输入框,系统根据标签自动生成名称。 文本 AlarmDate 单击名称对应的输入框,系统根据标签自动生成名称。 日期/时间 启用告警事件。 在事件详情页面,选择“基本信息”页签。 单击页面右上方的“启用”,启用该事件。 启用成功后,“启用”按钮会变为“禁用”按钮,同时“是否启用”标签变为状态。 图5 启用告警事件 消息事件只有启用成功后,该事件在服务编排或WebSocket中,才会有效。事件启用后,不可编辑,若需要对事件进行参数修改,请先单击“基本信息”下的“禁用”按钮,禁用该事件。
  • 创建自定义数据对象 参考从空白开始创建一个全新的应用中操作,创建班级管理系统应用。 将鼠标放在应用视图下的Model文件夹上,单击,选择“对象”。 图3 新建对象 选择“创建新对象”,输入基本信息后,单击“添加”。 图4 新建对象 表3 新建对象参数说明 参数 参数说明 标签 新建对象的标签,用于在界面展示。 名称 输入标签值后,单击该参数的输入框,系统会自动生成对象的名称,同时自动增加租户命名空间前缀及“__CST”后缀,作为对象的唯一标识。 描述 对象的描述信息。 拓展知识点: 除了在应用开发设计器创建对象,还可以通过全局视图新建对象,如图5所示。两种方式创建的对象都是全局对象,在全局视图对象列表中都可查看到。不同点是在全局视图中创建的对象,可参考图6和图7在应用开发工作台目录中手动导入。一个自定义对象(即定制对象)只能被一个应用导入(标准对象可被多个应用导入),例如,应用A中导入全局视图中创建的自定义对象B后,其他应用不可再导入自定义对象B。 图5 全局视图新建对象 图6 应用中导入对象步骤1 图7 应用中导入对象步骤2
  • 定义自定义对象的字段(Fields) 自定义对象创建完成后,系统默认预置了一些标准字段,为了满足业务需求,往往还需修改标准字段或新建自定义字段,字段就是对象的属性描述。 本节主要介绍手动创建自定义字段,AstroZero还支持批量创建自定义字段,详细操作请参见如何使用对象的字段模板批量创建自定义字段。 在对象配置页面,单击“标准字段”页签,可以看到系统预置的标准字段。系统会为对象的每一条记录自动创建一个name字段,作为该条记录的标识。 预置字段仅name支持修改,其他字段不支持修改。例如,本任务中将其用于标识出班级的名字,如20届一班。单击,可以修改字段的标签。 图8 系统预置字段 下面将以创建班级Class对象中的“班级编号number”字段为例,为您介绍如何在低代码平台对象界面中,跟随页面提示创建一个自定义字段。 新建自定义字段班级编号(number)。 在“自定义字段”页签,单击“新建”。 图9 新建自定义字段 字段类型选择“数字”,单击“下一步”。 图10 字段类型 设置“班级编号”字段的详情信息,单击“下一步”。 图11 字段详情 表4 参数说明 参数 参数说明 标签 字段在界面的展示名,此处配置为“number”。 名称 单击输入框系统自动生成,表示字段在系统中的记录值。 字段帮助 字段提示的帮助信息。 描述 字段的描述信息。 数据长度 字段的字符长度,数字类型长度默认为18。 小数点后位数 根据实际需求设置。 默认值 该字段默认取值。 是否必填 勾选表示是必填字段。 是否唯一 勾选表示字段唯一。 是否可搜 是否能在前端开发者控制台或脚本中,使用search语句搜索该字段。 只有加密文本、选项列表、选项列表(多项选择)和公式类型以外的字段,才会有该参数配置。 search语句可以理解为sql语句的子集,系统支持大部分常用的sql查询语句,只需把sql查询语句开头的select关键词修改为search即可。 search语句特点和限制如下: search语句当前对分组、通配符、去重distinct等功能暂未支持。 search语句不支持通配符,in查询可进行模糊查询。 search语句除了聚合函数(AVG、COUNT、MAX、MIN、SUM),其他必须带有where从句,否则报错。 字符串类型默认都转为es中text类型,因此可以实现分词的倒排索引。由于默认未设置Fielddata=on(会很耗性能),所以字符串类型无法排序。 不支持search语句where从句中有非可搜索字段,如不支持search from myobject where t1 = 'abc' (此处t1为非可搜字段)。 search语句目前只可进行单表搜索。 search语句不支持HAVING子句、OFFSET。 search语句不支持同时普通查询和聚合。例如:不支持“search count(列名),列名 from 列表名;”。 search语句不支持列表名别名后“.*”全部查询。例如:不支持“search T.from 列表名 as T where condition条件;”。 text类型采用了英语分词器,因此大小写单复数不敏感,“movie”可匹配“Movies”。 同sql语句一样,search语句也大小写不敏感。 设置“班级编号”字段的访问权限,即设置哪些权限集可以查看或修改该字段,然后单击“下一步”。 图12 字段权限 AstroZero预置了一些权限集,并提供了自定义对象中字段级的安全控制,这些权限配置是由管理员预置的,权限集介绍及设置方法的详细介绍,请参见了解权限配置。 设置“班级编号”字段是否加入布局。 该配置用于将“班级编号”字段,加入到对象默认的布局页面。 图13 加入布局 创建的自定义对象,系统会自动创建对象的页面布局Detail和Records。自定义对象的页面布局是AstroZero提供的一种管理对象的方式,详情介绍请参见如何使用布局增删改查对象数据。 单击“保存”,完成字段的创建。 自定义字段创建后,系统会自动为自定义字段添加“__CST”后缀和命名空间前缀。 (可选,当需要给对象创建索引字段时,请执行该步骤)在“自定义字段”页签,单击“自定义索引”,在弹出的页面单击“添加自定义索引”。 图14 添加自定义索引 表5 自定义索引参数说明 参数 参数说明 名称 自定义索引的名称。 类型 添加索引的类型。 普通索引 唯一索引 唯一索引字段的,字段取值必须唯一。 字段 选择已创建的自定义字段,作为索引字段。 默认最多只能创建一个索引,每个索引中最多创建两个索引字段。
  • 场景描述 本章节从如何新建对象,到定义对象的字段来添加属性,让您快速熟悉数据对象建模的过程。 示例:以新建一个班级Class对象为例,介绍如何进行数据对象建模。在班级Class对象中,将会添加一个自定义字段班级编号number,并给name(标准字段)和number赋值。 表2 对象的字段 对象 字段来源 字段名称 字段数据类型 Class 标准字段,不需要创建 name 文本 自定义字段,手动创建 number 班级编号
  • 前提条件 已接入服务实例,具体操作请参考注册Native Service。 已在需要调用原生服务的应用中,添加待调用的原生服务。添加后,在该应用的服务编排中,才可以调用Native服务。 “Internal dependencies”为内部依赖文件夹,导入的BO服务或者Native服务,在打包上层应用时也会随应用打包发布出去。 “External dependencies”为外部依赖文件夹,导入的BO服务或者Native服务,在打包上层应用时不会打包出去。 图1 应用中添加原生服务 若AstroZero开启了根证书校验,请先上传原生服务的根证书,再调用原生服务。关于根证书的更多内容,请参考开启根证书校验。
  • 场景描述 创建一个定时任务“OfferingOffline”,用于实现从2018-12-28开始,每天零点自动将过期商品下架。其中,将过期商品下架的功能由“OfferingOffline”脚本实现。 在创建定时任务前,需要先开发实现定时任务功能的Script脚本,Script脚本的开发可参考脚本开发。 本章节介绍的是在应用内配置定时任务,也可以在管理中心下创建定时任务,相关操作请参考创建定时任务。两者的区别是在应用里配置的定时任务,可在打包发布应用时,将定时任务一起发布,在管理中心设置的定时任务无法随应用发布。
  • 如何使用错误码 在脚本里使用 通过新建脚本,将上文创建的错误码抛出,在脚本中增加抛出错误信息的context函数setI18nError('错误码名称','变量1','变量2')。 在应用开发页面,创建一个新脚本。 鼠标放在应用开发工作台的某一文件夹旁会出现加号,单击加号,选择“脚本”。选择“创建一个新脚本”,输入脚本名称,单击“添加”。 在脚本编辑器中录入如下代码,并单击上方按钮区域的,保存脚本。 import*as context from'context'; context.setI18nError('命名空间__Error001','测试用例','脚本使用错误码的用例解读') 测试执行脚本。 单击代码编辑器上方的,执行脚本。在页面底部,单击测试窗口右上角的图标。在“输出参数”页签,可查看到抛出的错误码信息,如图2所示。 图2 运行脚本后显示界面 单击代码编辑页面上方的,启用脚本。 在服务编排里使用 在“全局上下文”中,新建公式变量,使用表达式SETI18NERROR(ErrorCodeName','变量1','变量2')方式引入错误码。 图3 服务编排里使用错误码 目前BPM中错误码,由BPM调用的脚本和服务编排抛出。
  • 自定义OAuth2授权码模式接入鉴权 配置OAuth管理中介绍了第三方系统访问AstroZero时,如何配置接入鉴权,通过鉴权认证的第三方系统才可访问AstroZero。在AstroZero中开发的应用也可以通过自定义OAuth2授权码模式接入鉴权,当应用配置鉴权后,只有通过鉴权的第三方系统才可访问应用。 参考配置OAuth管理中操作,获取鉴权ID“client_id”和鉴权密钥“client_secret”。 在经典版应用设计器的服务中,开发者通过自定义接口,给第三方接入调用,用于第三方系统获取授权码code。 应用调用脚本API,判断第三方客户端的鉴权ID“client_id”和重定向地址“redirect_url”是否和注册接入鉴权时匹配。 如果匹配,则由平台应用自定义接口,实现登入跳转和授权跳转。在授权完成后,再调用脚本API获取授权码code,并将需要展示给第三方的授权用户信息,通过该API传给AstroZero,AstroZero会返回一个code,然后应用重定向到“redirect_url”,并携带code。 判断第三方客户端的鉴权ID“client_id”和重定向地址“redirect_url”是否和注册接入鉴权时,匹配的API样例如下: // Here's your code. import * as oauth from 'oauth' let handle = oauth.getAuthorizeHandle() let clientDatas: oauth.clientDataFromApp = { redirect_uri: "http://10.26.30.68:14000/appauth/code", client_id: "bff4398905ee4a918722debec98b594c", } let pass = handle.checkURL(clientDatas) console.log(pass) //true if (pass){ //判断是否登入,做登入跳转 //判断是否授权,做授权跳转 } 获取授权码code的脚本API样例如下: // Here's your code. import * as oauth from 'oauth' let handle = oauth.getAuthorizeHandle() //前面步骤已经走完 let clientDatas: oauth.clientDataFromApp = { redirect_uri: "http://10.26.30.68:14000/appauth/code", client_id: "bff4398905ee4a918722debec98b594c", } let userInfo = { "name": "jack", "phone": "1256287222", "email": "dsfsdf.com" } let code = handle.getAuthCode(clientDatas, userInfo) console.log(code) //WEUcqXbeQDKUHxcn8til3Q 第三方系统接收到该请求,并解析出code后,在自己的后端访问AstroZero接口获取access_token,其步骤和配置OAuth管理中一致。 第三方系统在获取到access_token后,使用该凭证访问平台“https://AstroZero域名/u-route/baas/oauth/v1.0/third/userinfo”接口,来获取授权用户的信息。 响应示例如下: { "resCode": "0", "resMsg": "成功", "result": { "email": "dsfsdf.com", "name": "jack", "phone": "1256287222" } }
  • 背景信息 应用与数据集成平台(ROMA Connect)是一个全栈式的服务平台,聚焦应用和数据连接,提供数据(跨机房、跨数据中心、跨云的数据)、服务API(将数据和后端服务以API形式开放)、消息(为企业提供跨网络访问的安全、标准化消息通道)和设备信息(使用MQTT标准协议连接设备,帮助企业快速、简单地实现设备云端管理)集成能力,帮助企业快速联接云上云下,消除数字鸿沟,实现数字化转型。 AstroZero通过连接器和ROMA Connect对接后,可调用ROMA Connect的API,从而集成服务。 AstroZero提供了默认对接的ROMA Connect服务器,也支持对接通过华为云开通的自有ROMA Connect实例控制台,即参考配置ROMA Connect中操作,在AstroZero管理中心配置对接信息,并请从华为云控制台登录自有ROMA Connect实例。
  • 前提条件 本章节以AstroZero对接自有ROMA Connect为例进行说明,默认对接的ROMA Connect服务器配置类似。 已在ROMA Connect平台上完成应用创建(创建时,应用的“Key”字符长度必须小于60,否则后续向AstroZero同步时会失败)、函数API创建、API分组创建、API创建、调试、发布和授权操作。关于ROMA Connect的具体操作,请参见使用ROMA Connect集成服务与配置API授权。 例如,如图1所示,已在ROMA Connect平台创建“人员管理”应用。如图2所示,已发布“获取人员信息”API,且该API已授权给“人员管理”应用。 图1 集成应用 图2 授权API 已在ROMA Connect上,设置“app_secret”和“app_route”值为“on”。 修改方法:在ROMA Connect实例控制台的“实例信息”页面,选择“配置参数”。修改“app_secret”和“app_route”的“参数运行值”为“on”。
  • 前提条件 已接入服务实例,具体操作请参考注册Native Service。 已在需要调用原生服务的应用中,添加待调用的原生服务。添加后,在该应用的服务编排中,才可以调用Native服务。 “Internal dependencies”为内部依赖文件夹,导入的BO服务或者Native服务,在打包上层应用时也会随应用打包发布出去。 “External dependencies”为外部依赖文件夹,导入的BO服务或者Native服务,在打包上层应用时不会打包出去。 图1 应用中添加原生服务 若AstroZero开启了根证书校验,请先上传原生服务的根证书,再调用原生服务。关于根证书的更多内容,请参考开启根证书校验。
  • 如何在脚本、服务编排、工作流中加密数据? 用户使用AstroZero的脚本、服务编排、工作流等开发的内容是不会加密存储的。如果用户需要加密数据,请使用加密类型的系统参数。 参考如何创建系统参数中操作,新建加密类型的系统参数。 例如,新建加密参数appClientId,注意要勾选“是否加密”。 图5 新建appClientId系统参数 在脚本、服务编排和工作流中,使用上一步创建的系统参数。 脚本:脚本代码中引入系统参数的代码行中,引入系统库,并使用“sys.getParameter('appClientId')”引入系统参数。 import * as sys from 'sys'; ...... let cliendId = sys.getParameter('appClientId'); 图6 在脚本中引用参数appClientId 服务编排:在服务编排“全局上下文”中新增公式变量,表达式输入“SYSPARAMETER('appClientId')”,引入系统参数。 图7 在服务编排中引用参数appClientId 工作流:在工作流的“全局上下文”中,新增文本类型的变量,图元配置中设置该变量,值输入“SYSPARAMETER('appClientId')”,引入系统参数。 图8 在工作流中引用参数appClientId
  • 如何使用系统参数 系统参数创建完成后,可在脚本、服务编排和工作流等中使用。 脚本:脚本代码引入系统参数的代码行中,引入“sys”系统库,并使用“sys.getParameter('系统参数名')”引入系统参数。 例如,脚本里编辑如下代码,执行脚本,不用输入入参,查看“日志”页签打印的日志。 import * as sys from 'sys'; let sysParam = sys.getParameter('命名空间__APPName_MaxValue'); console.log("MaxValue:", sysParam); 图1 在脚本中使用 服务编排:在服务编排的“全局上下文”中,新增公式变量,表达式输入“SYSPARAMETER('系统参数名')”,引入系统参数,注意数据类型保持一致。 图2 在服务编排中使用 工作流:在工作流的“全局上下文”中,新增相同数据类型的变量,图元配置中设置该变量,值输入“SYSPARAMETER('系统参数名')”,引入系统参数。 图3 在工作流中使用 自定义连接器:在自定义连接器的“动作”页签,单击“新建”。在“新建动作”页面的URL内,使用“{!系统参数名}”方式引入系统参数。 图4 在自定义连接器中引入系统参数
  • 场景描述 新增、查询系统参数并进行修改。系统参数创建后,可以在其他地方以“{!parameter_name}”方式引用。例如,在如下两个场景使用系统参数: 将系统公用邮箱设置为系统参数。 将系统定时数据清理的执行时间,设置为系统参数。例如,系统执行数据清理任务时,会自动查询是否配置了系统参数“bingo.expiretask.execute.time”(AstroZero已预置该系统参数),查询到后,会按照配置的时间来启动数据清理。 本章节介绍的是在应用内配置系统参数,还可以在环境配置中创建系统参数,相关操作请参考配置系统参数。两者的区别是在应用中配置的系统参数,可在打包发布应用时,将系统参数一起发布出去。在环境配置中,设置的系统参数无法随应用发布出去。
  • 背景信息 应用与数据集成平台(ROMA Connect)是一个全栈式的服务平台,聚焦应用和数据连接,提供数据(跨机房、跨数据中心、跨云的数据)、服务API(将数据和后端服务以API形式开放)、消息(为企业提供跨网络访问的安全、标准化消息通道)和设备信息(使用MQTT标准协议连接设备,帮助企业快速、简单地实现设备云端管理)集成能力,帮助企业快速联接云上云下,消除数字鸿沟,实现数字化转型。 AstroZero通过连接器和ROMA Connect对接后,可调用ROMA Connect的API,从而集成服务。 AstroZero提供了默认对接的ROMA Connect服务器,也支持对接通过华为云开通的自有ROMA Connect实例控制台,即参考配置ROMA Connect中操作,在AstroZero管理中心配置对接信息,并请从华为云控制台登录自有ROMA Connect实例。
  • 前提条件 本章节以AstroZero对接自有ROMA Connect为例进行说明,默认对接的ROMA Connect服务器配置类似。 已在ROMA Connect平台上完成应用创建(创建时,应用的“Key”字符长度必须小于60,否则后续向AstroZero同步时会失败)、函数API创建、API分组创建、API创建、调试、发布和授权操作。关于ROMA Connect的具体操作,请参见使用ROMA Connect集成服务与配置API授权。 例如,如图1所示,已在ROMA Connect平台创建“人员管理”应用。如图2所示,已发布“获取人员信息”API,且该API已授权给“人员管理”应用。 图1 集成应用 图2 授权API 已在ROMA Connect平台上,设置“app_secret”和“app_route”值为“on”。 修改方法:在ROMA Connect实例控制台的“实例信息”页面,选择“配置参数”。修改“app_secret”和“app_route”的“参数运行值”为“on”。
  • 什么是沙箱 沙箱环境(Sandbox)是与开发环境隔离的环境,用户可以在沙箱环境中进行软件测试,也可在开发环境直接进行测试。沙箱是一种特殊的执行环境,能够在不破坏生产环境的情况下测试更改或更新应用程序。AstroZero提供了创建沙箱环境功能,您可根据需要决定是否使用沙箱环境。 在沙箱环境只能进行测试,不具备开发能力。沙箱环境只拥有开发环境的元数据副本,没有数据记录。登录沙箱环境后,可以增加新的沙箱用户,并设置用户密码。新增用户只在沙箱有效,并且只能访问沙箱环境。
  • 自定义布局样式 如果导航页面,想实现如下图所示布局效果,即整个页面不需要有滚动条,而其中导航组件区域和全局路由视图组件区域可随滚动条滚动时,可参考如下步骤实现。 图13 自定义布局样式页面效果 在头部组件的“.css”样式文件中,指定头部组件的高度。 样例代码如下: #headerWidget { height: 90px; } 参考基于预置组件进行自定义中操作,下载预置组件路由导航(示例),解压global_NavigatorWidget.zip。 修改解压后的“Navigator_Widget.css”文件,该文件是Widget的样式文件,在该文件中编写Widget的css样式。 样例代码如下: html[app=desktop] body { overflow: hidden; } #navigatorWidget, #global_RouterViewWidget { height: calc(100% - 90px); overflow: scroll; } 将修改后的头部组件和组件路由导航组件文件,重新打成zip包。 参考基于预置组件进行自定义中操作,上传重新打包后的组件。 在高级页面设计器左上方,单击,拖出上传的头部组件、路由导航组件和预置的路由视图组件至设计页面。 单击页面上方的,保存页面。 保存成功后,单击,发布页面。 发布成功后,单击,可查看页面效果。
  • 操作步骤 在Native Service配置页面,选择“导航”。 图1 单击导航 在“API设计”页签,单击“开始设计API”。 选择“使用模板”,配置基本信息和新URL对应的版本号,单击“创建”。 图2 创建一个新版本 openApi版本:接口定义需要符合openApi规范,这里配置具体openApi的版本号。 选择模板:选择系统预置的模板。 版本:输入服务版本号。 标题:原生服务API的名称。 创建完成后,单击“新增资源”。 在“增加资源及操作方法”页面,配置相关参数,单击“确认”。 图3 增加资源及操作方法配置页面 输入一个新的资源路径(以/开头):与镜像文件中的接口路径保持一致。 方法:调用的方法,如GET(查询)、PUT(增加)、POST(修改)、DELETE(删除)、PATCH(对资源进行部分修改)。 操作名称:与镜像文件中的操作名称保持一致。 公共接口:若勾选,则只能在公共接口中调用,无法在服务编排和脚本中使用。 内容类型:当勾选“公共接口”时,您需要配置内容类型,即请求中的body类型。其中,“application/x-www-form-urlencoded”、“application/xml”、“multipart/form-data”、“text/html”和“text/plain”用于文件上传接口,选择该内容类型,只能调用post类型的方法。 描述:描述信息。 单击生成的方法,可以在右侧编辑方法的URL、Header、Response参数,需要和镜像文件中接口的URL参数、Header参数、请求参数、返回参数保持一致。编辑参数后,需要单击参数操作列的,再单击“保存”。 您可参考界面上“/case”、“/case/{CaseId}”两个示例编辑生成的方法。每个方法都需要定义Response参数,否则会部署失败。返回体数据结构在模式对象中定义。 当Body参数和Response参数较多,一些参数可以封装成对象类型的参数,并在“模式对象”页签设置该类型参数,注意“模式对象”页签中参数名与操作中URL参数不能同名。 支持按照操作名称和资源路径单过滤或者组合过滤搜索方法。 图4 编辑方法 图5 定义模式对象 参考4~6,新增其他API方法。 编辑方法完成后,需要手动删除“/case”、“/case/{CaseId}”两个示例,删除示例模式对象。 单击“保存”,创建的自定义接口会出现在页面上。 在页面右上方,单击,可以查看自定义接口中的方法和模型对象。单击,可导出该原生服务下接口定义yaml文件。 单击,发布API。 发布后如果需要修改API,需要单击,取消发布后进行修改,修改后再保存并发布。 已发布的API可能在服务编排中已经使用,如果修改API导致不兼容,请同步修改引用该API的服务编排。
  • 操作步骤 选择以下任意一种方式,进入日志跟踪页面。 方式一:在AstroZero经典版应用设计器中,单击左下角的,进入日志跟踪页面。 图1 在App开发页面开启日志跟踪 方式二:在AstroZero经典版环境配置中,单击页面右下角的,进入日志跟踪页面。 图2 进入日志跟踪页面 单击,可以开启十分钟内的AstroZero的后台日志追踪。 如果需要停止跟踪,可单击,将停止追踪且不会获取日志文件。 图3 开启日志跟踪 表1 日志跟踪参数说明 参数 说明 日志级别 日志级别,取值说明如下: 会话级:只打印当前会话的日志。 租户级:打印租户所有会话的日志。 日志类型 日志类型,取值说明如下: 业务日志:输出业务相关的跟踪日志。 完整日志:输出业务日志,以及数据库、中间件等的详细日志,主要用于AstroZero问题定位。 下载日志文件。 单击下载,可下载日志文件。下载后会自动停止跟踪,日志格式为“时间|操作ID|业务部件|动作描述”。 单击,可从新窗口打开日志跟踪页面。 单击,可最小化显示日志跟踪页面。 单击最小化图标后,日志跟踪页面将会被隐藏。在AstroZero管理中心页面的右下角,可以看到日志跟踪剩余时间。单击该时间,将重新弹出日志跟踪页面。 图4 日志跟踪时间
  • 自定义OAuth2授权码模式接入鉴权 配置OAuth管理中介绍了第三方系统访问AstroZero时,如何配置接入鉴权,通过鉴权认证的第三方系统才可访问AstroZero。在AstroZero中开发的应用也可以通过自定义OAuth2授权码模式接入鉴权,当应用配置鉴权后,只有通过鉴权的第三方系统才可访问应用。 参考配置OAuth管理中操作,获取鉴权ID“client_id”和鉴权密钥“client_secret”。 在新版应用设计器的集成中,开发者通过自定义接口,给第三方接入调用,用于第三方系统获取授权码code。 应用调用脚本API,判断第三方客户端的鉴权ID“client_id”和重定向地址“redirect_url”是否和注册接入鉴权时匹配。 如果匹配,则由平台应用自定义接口,实现登入跳转和授权跳转。在授权完成后,再调用脚本API获取授权码code,并将需要展示给第三方的授权用户信息,通过该API传给AstroZero,AstroZero会返回一个code,然后应用重定向到“redirect_url”,并携带code。 判断第三方客户端的鉴权ID“client_id”和重定向地址“redirect_url”是否和注册接入鉴权时,匹配的API样例如下: // Here's your code. import * as oauth from 'oauth' let handle = oauth.getAuthorizeHandle() let clientDatas: oauth.clientDataFromApp = { redirect_uri: "http://10.26.30.68:14000/appauth/code", client_id: "bff4398905ee4a918722debec98b594c", } let pass = handle.checkURL(clientDatas) console.log(pass) //true if (pass){ //判断是否登入,做登入跳转 //判断是否授权,做授权跳转 } 获取授权码code的脚本API样例如下: // Here's your code. import * as oauth from 'oauth' let handle = oauth.getAuthorizeHandle() //前面步骤已经走完 let clientDatas: oauth.clientDataFromApp = { redirect_uri: "http://10.26.30.68:14000/appauth/code", client_id: "bff4398905ee4a918722debec98b594c", } let userInfo = { "name": "jack", "phone": "1256287222", "email": "dsfsdf.com" } let code = handle.getAuthCode(clientDatas, userInfo) console.log(code) //WEUcqXbeQDKUHxcn8til3Q 第三方系统接收到该请求,并解析出code后,在自己的后端访问AstroZero接口获取access_token,其步骤和配置OAuth管理中一致。 第三方系统在获取到access_token后,使用该凭证访问平台“https://AstroZero域名/u-route/baas/oauth/v1.0/third/userinfo”接口,来获取授权用户的信息。 响应示例如下: { "resCode": "0", "resMsg": "成功", "result": { "email": "dsfsdf.com", "name": "jack", "phone": "1256287222" } }
共100000条