华为云用户手册

  • 操作步骤 参考如何登录新版应用设计器中操作,登录新版应用设计器。 在左侧导航栏中,选择“数据”。 单击对象后的,选择“编辑”,进入对象设计器。 选中对象图元,在右侧属性面板中,单击“生成页面”。 图1 生成页面 在生成页面中,选中“更新已有页面”。 在显示的页面列表中,选择对应的页面,单击“保存”。 图2 更新已有页面 该列表显示的是由该对象直接生成的页面,不包括开发者通过创建新页面生成的页面(即使也绑定了该对象模型)。 页面的显示名称和唯一标识以及内容可能已被更改,但仍然归属此对象的生成页面。
  • 设置出厂数据 参考如何登录新版应用设计器中操作,登录新版应用设计器。 在左侧导航栏中,选择“数据”。 单击对象后的,选择“编辑”,进入对象设计器。 在对象设计器中,单击对象中的,进入对象详情页。 在“数据”页签,单击“设置出厂数据”。 设置出厂数据,单击“保存”。 请选择要包含的出厂数据:应用包中,最多允许总共包含1万条出厂数据。 全部选择:当前对象里的所有数据,都包含在应用包中。选择全部后,打包时会包含对象当前所有的记录。 手工选择:逐条勾选对象里的数据,打包时会包含这些已选择的记录。 请选择出厂数据的安装策略。 增量数据:对象里包含的出厂数据,会增量添加到环境中,仅添加新记录,环境上已有重复记录则跳过。例如,设备管理应用中,增加了几种设备规格,需要添加到环境中。 如果环境中已存在相同ID的数据,则看是否是出厂数据。如果是,则看是否被更新过。只有未更新过的出厂数据会被覆盖。 如果环境中不存在此数据,则作为增量的新数据写入到环境中。 固定数据:对象里包含的出厂数据是应用本身的一部分,载入环境后这些数据不可被更改、删除。每次应用升级时,会用应用包里新的出厂数据直接覆盖环境上的数据。例如,客户管理应用中预置了个人客户、组织客户两种客户类型数据。 环境中该对象仍然可以插入其他业务数据。 应用升级时,固定数据会全部替换成新的出厂数据。例如,环境上已有A、B、C三条固定数据,新版本应用包中包含A、B、D三条固定数据。升级后,C会被删除,D会被新增。 样例数据:对象里包含的出厂数据,仅在应用首次安装到环境时载入,后续应用升级时不再更新。该策略用来支撑应用在各种演示环境上的安装,如调查问卷应用首次安装时,携带了样例问卷。 字段设置为出厂数据后,在编辑修改出厂数据时,界面会提示:“此数据为出厂数据,请谨慎修改”。 图1 修改出厂数据提示 开发应用时,如果修改了某个对象的出厂数据安装策略。在应用升级时,会以新的安装策略为准,即对包含在出厂数据里的记录ID做变更,变更规则如表1所示。 表1 变更规则 安装策略 样例数据(新) 固定数据(新) 增量数据(新) 样例数据(旧) - 如果环境上之前是样例数据,不管是否修改过,升级时根据ID完全覆盖为固定数据。如果出厂数据中,不包含该ID,则不处理。 如果环境上之前是样例数据,不管是否修改过,升级时根据ID完全覆盖为增量数据。如果出厂数据中,不包含该ID,则不处理。 固定数据(旧) 因为是升级,所以不会写入新样例数据。而出厂数据已经不是固定数据了,因此直接删除之前的全部固定数据。 - 环境上数据如果在出厂数据中,则覆盖为增量数据且状态为未修改。如果不在出厂数据中,则直接删除。 增量数据(旧) 因为是升级,所以不会写入新样例数据,仅清除该环境数据的策略。 环境上数据如果出现在出厂数据中,则覆盖为固定数据。如果不在出厂数据中,则仅清除该环境数据的策略。 - (可选)如果需要修改出厂数据,再次单击“设置出厂数据”,在右侧属性面板中进行修改即可。 通过“手动选择”,取消部分数据的勾选。 修改“安装策略”,重新选定策略即可。 单击属性面板中的“清除”,表示取消全部数据的出厂设置。 应用打包。 导出的安装包,默认包含出厂数据。 图2 导出安装包 导出的补丁包,出厂数据在打包过程中选择。 图3 导出补丁包 图4 添加出厂数据
  • 创建自定义数据对象 参考如何登录新版应用设计器中操作,登录新版应用设计器。 例如,进入班级管理系统应用设计器,如何创建应用请参见应用。 在左侧导航栏中,选择“数据”。 (可选)单击对象后的,为对象添加目录。 对象默认存放在根目录下,在创建对象前,您可以先创建对象存放的目录,也可以在对象创建后将其拖拽到指定目录。 图1 新建目录 图2 设置目录名称 单击对象后的,进入创建新对象页面。 图3 新建对象 设置对象基本信息,单击“确定”。 图4 设置对象基本信息 对象名称:新建对象的名称,用于在界面展示。本示例配置为Class。 唯一标识:对象在系统中的唯一标识,创建后不支持修改。
  • 操作步骤 参考如何登录新版应用设计器中操作,登录新版应用设计器。 在左侧导航栏中,选择“数据”。 单击对象后的,选择“编辑”,进入对象设计器。 单击对象后的,进入添加关联页面。 图1 创建对象关系 设置关联关系,单击“下一步”。 图2 选择关系类型 查找关系:引用目标对象的记录,通过关联当前字段与另一对象的ID字段,创建本对象与另一对象的引用关系。定义了查找关系后,本字段的取值只能来源于关联对象。当本对象的记录被删除时,被引用记录不受影响。例如,学生对象到班级对象的关联关系。 主从关系类型:目标对象为当前对象的子表,通过关联当前字段与另一对象的ID字段,创建本对象与另一对象的主从关系。定义了主从关系后,本字段的取值只能来源于关联主对象。当本对象的记录被删除时,子表记录会被一起删除。例如,订单对象和订单明细对象的关联关系。 设置关系类型的基本信息,单击“确定”。 显示名称:关联关系在界面的展示名称。 唯一标识:关联关系在系统中的唯一标识,创建后不支持修改。 关联对象:选择关联目标,下拉框展示当前应用内所有对象的显示名称。 对象与目标对象创建关系后,会产生关系连线, 如图3所示。 图3 关联对象 关联关系两端显示和,表示1对多关系。目前查找关系和主从关系都是1对多关系,低代码平台暂无1对1的关系设置。 箭头从有关系字段的对象,指向被关联的对象。 关系连线被选中时,右侧显示关系字段的属性面板。在右侧属性面板中,可以修改关联字段的属性信息或删除关联字段。
  • 支持创建的应用类型 在低代码平台中,支持创建如下几种类型的应用: 新建空白应用:从零开始新建应用,更多介绍请参见新建空白应用。 使用模板新建:选择合适的模板新建应用,更多介绍请参见使用模板创建应用。 新建扩展应用:当需要基于已有应用或解决方案(不是单一的应用,某一解决方案会涉及到多个应用)进行定制时,可选择创建扩展类型应用。更多介绍,请参见创建扩展应用。 新建BO:业务对象(Business Object,简称BO),是封装了完整的数据模型、业务逻辑、页面展现的软件单元,一个BO提供一个完整场景的服务,为上层应用提供特定服务。用户可基于BO,如魔方一样创建功能各异的应用。更多介绍,请参见业务对象(BO)。 新建原生服务:开发者在低代码平台外开发了一些服务,服务运行在Docker容器中。若希望将这些服务集成到AstroZero中,供AstroZero内部应用或其他第三方系统调用时,可选择创建原生服务。更多介绍,请参见原生服务。
  • 应用的生命周期 应用的开发阶段 应用是一个工程,可以创建对象模型,编辑标准页面和高级页面,开发服务编排和脚本逻辑,开发商业应用业务流程等。在应用的开发环境里,可以快速实现底层逻辑。 应用的部署阶段 低代码新版设计器,提供了一键部署应用的功能,支持将应用一键打包发布到运行环境或者沙箱环境。使部署操作化繁为简,降低部署门槛,提升部署体验,同时提供可视化的部署进度和部署结果。 应用的运行阶段 应用是一个可预览的运行界面。
  • 样例代码解读 通过以下详细的脚本代码内容解读,对脚本有一个更具体的认识。 一般情况下,编写脚本的大致流程为: 按需引入平台标准库。 图11 引入平台标准库 定义出参、入参结构。 图12 定义入参 图13 定义出参 定义方法以及使用的对象。 图14 定义方法及使用对象 进行数据库操作。 图15 数据库相关操作 以下将通过解读一个脚本样例,带您了解脚本的总体结构框架及编写要求。 import * as decimal from 'decimal'; @action.object({type: "param"}) export class ActionInput { @action.param({type: 'String', required: true, label: 'your name', description: 'please input your name'}) name: string; @action.param({type: 'Number', required: true, min: 1, max: 100, message: 'age must during [1, 100]'}) age: decimal.Decimal; @action.param({type: 'Date', pattern: 'yyyy-MM-dd'}) birthday: Date; @action.param({type: 'String', isCollection: true}) schools: string[]; @action.param({type: 'Boolean'}) married: boolean; @action.param({type: 'MyObject'}) obj: MyObject; } @action.object({type: "param"}) export class MyObject { @action.param({type: 'String'}) something: string; @action.param({type: 'Number'}) otherthing: decimal.Decimal; } @action.object({type: "param"}) export class ActionOutput { @action.param({type: 'String', isCollection: true}) greets: string[]; } @action.object({type: "method"}) export class ActionDemo { @action.method({ label: 'greeting something', description: 'greeting something.', input: 'ActionInput', output: 'ActionOutput' }) public greet(inarg: ActionInput): ActionOutput { console.log('name = ', inarg.name); console.log('age = ', inarg.age); console.log('birthday = ', inarg.birthday); console.log('schools = ', inarg.schools); console.log('married = ', inarg.married); console.log('obj = ', inarg.obj); let out = new ActionOutput(); out.greets = ['hello', 'hi', 'how are you', 'how old are you', 'long time no see']; return out; } } 上述示例脚本主要分为如下三部分: 导入标准库或其他模块。 上例中,第1行表示使用平台提供的decimal库。 import * as decimal from 'decimal'; 除了平台预置的标准库,还可以声明对其他自定义模块的引用。例如,已提前开发了一个脚本cirle,可以用如下方式加载它。 import * as circle from './circle'; 定义输入、输出变量。 脚本可以有多个输入、输出参数,也可以没有。所有的输入或输出参数,必须封装在一个class中,作为实例成员。 本例中,脚本有6个输入参数,被封装为ActionInput。每个参数都必须定义其参数类型,同时还可以定义是否必填、标签、最大值、最小值等可选属性。 @action.object({type: "param"}) export class ActionInput { @action.param({type: 'String', required: true, label: 'your name', description: 'please input your name'}) name: string; @action.param({type: 'Number', required: true, min: 1, max: 100, message: 'age must during [1, 100]'}) age: decimal.Decimal; @action.param({type: 'Date', pattern: 'yyyy-MM-dd'}) birthday: Date; @action.param({type: 'String', isCollection: true}) schools: string[]; @action.param({type: 'Boolean'}) married: boolean; @action.param({type: 'MyObject'}) obj: MyObject; } 因为第6个输入参数“obj”的参数类型为自定义对象,所以还需要给出“ MyObject”的定义。 @action.object({type: "param"}) export class MyObject { @action.param({type: 'String'}) something: string; @action.param({type: 'Number'}) otherthing: decimal.Decimal; } 脚本中有1个输出参数,被封装为ActionOutput。 @action.object({type: "param"}) export class ActionOutput { @action.param({type: 'String', isCollection: true}) greets: string[]; } 定义方法 样例中,ActionDemo是外部调用的class,使用export导出。ActionDemo定义了一个action method,使用action.method装饰,表明调用脚本时从此方法入口。greet是class的实例方法,其输入、输出参数就是前面定义的ActionInput和ActionOutput。在一个脚本文件中,action.method只能使用一次。 @action.object({type: "method"}) export class ActionDemo { @action.method({ label: 'greeting something', description: 'greeting something.', input: 'ActionInput', output: 'ActionOutput' }) public greet(inarg: ActionInput): ActionOutput { console.log('name = ', inarg.name); console.log('age = ', inarg.age); console.log('birthday = ', inarg.birthday); console.log('schools = ', inarg.schools); console.log('married = ', inarg.married); console.log('obj = ', inarg.obj); let out = new ActionOutput(); out.greets = ['hello', 'hi', 'how are you', 'how old are you', 'long time no see']; return out; } } 脚本编辑页面不支持单步调试,样例里的console.log可实现在日志里打印过程输出,方便代码调试。
  • 脚本开发有什么限制 不支持以下正则表达式语法 (?=) // Lookahead (positive), currently a parsing error (?!) // Lookahead (backhead), currently a parsing error \1 // Backreference (\1, \2, \3, ...), currently a parsing error 使用场景限制 触发器目前只能使用ES5 JavaScript语法。 独立的脚本支持TypeScript语法。 Script中只可使用平台封装的标准库API,不能使用Formula公式。 console不兼容特性 console模块目前不支持格式化参数功能。 console.log('在 main 中,a.done=%j,b.done=%j', a.done, b.done); 不支持异步ES 7语法和库,如async/wait。
  • 提供AI代码补全功能 代码补全引擎会从开发者历史创建脚本中,学习其编码习惯,从当前代码脚本中获得代码上下文语法知识。开发者在编写脚本代码过程中,系统根据代码上下文和历史代码,对将要编写的代码进行提示,从而自动构建智能代码补全服务,增强IDE代码补全能力。 AI代码补全功能具体使用方法:开发者在代码编辑器中,编写脚本代码过程中,敲击字符时自动触发代码推荐,选中后按Enter补全。开发者将鼠标移动到待查看详细信息的字段,将字段悬浮窗中的文字选中复制粘贴到代码中。 如果想深入了解AI代码补全功能,请继续阅读以下内容: 常规补全:开发者编码过程中,输入任意字符均会触发的补全提示。 例如:开发者键入“@u”,如下图所示,系统根据意图在代码编辑器中给出最可能使用的方法。 定制补全:低代码平台脚本开发中,提供了内部预置系统级依赖库,供开发者调用。用户也可以在前台页面配置对象数据、系统参数、错误码、事件和工作流后,在脚本中引用这些内容。定制补全是指在脚本开发中引用依赖库和各配置项时,IDE触发的对潜在内容名称的补全提示。 依赖库补全:脚本代码中引入依赖的代码行时,对依赖库的名称进行推荐提示。如下图所示,开发者键入“import * as xxx from”后,提示z开头的依赖库名称。 表名(即对象名)补全:脚本代码引入对象数据的代码行中,推荐提示对象名称。如下图所示,开发者键入“@useObject”后提示m开头的对象名。 表字段提示:脚本代码中引用表字段时,鼠标移动到表名上,悬浮窗会对表名进行提示。如下图所示,开发者鼠标放在表名上,展示所有字段。 错误码补全:脚本中引入数据表的代码行中,对表名称进行推荐提示。如下图所示,开发者键入“setI18nError”后,提示相关错误码名。 错误码内容提示:脚本代码中引入数据表的代码行中,对表名称进行推荐提示。如下图所示,鼠标放在错误码名称上,展示相关描述。 系统参数补全:脚本代码中引入系统参数的代码行中,对参数名称进行推荐提示。如下图所示,开发者键入“sys.getParameter”后,提示相关系统参数。
  • 脚本用什么编辑器 低代码平台提供了一个方便简洁的在线开发IDE,即脚本编辑界面,脚本编辑界面开发体验接近离线的开发工具,具有如下优势: 现代化的编辑界面,语法高亮显示。 智能提示、智能补全。 精确查看定义、代码预览、查找引用。 快速在线编译。 友好的语法错误提示。 可以使用console.log,写 日志分析 复杂的问题。 脚本编辑界面如图1所示,您可以在线编辑、测试和发布脚本。 图1 脚本编辑界面 按钮区域 脚本编辑页面常用的图标按钮区,具体功能说明如表1所示。 表1 图标说明 图标 说明 / ,单击即可启用脚本,该图标高亮时,表示当前脚本已被启用。 ,单击即可禁用脚本,该图标非高亮时,表示当前脚本未启用。 说明: 脚本开发完成后,需要启用脚本。只有启用状态的脚本,才能在被其他资源(如服务编排、标准页面)调用时,搜索到。 保存脚本。 另存为脚本。 设置脚本属性,如可见性、是否开启允许覆盖等。 执行脚本。 / 操作回退、撤销回退。 对已开发好的脚本代码进行性能检查、兼容性检查和静态配置检查。 说明: 代码检查的具体操作,请参见脚本代码性能检查规则说明。 刷新当前引入的脚本到最新状态。 单击该图标,脚本编辑器可分屏显示。 脚本启用后,单击右上角的,可查看该组件的调用关系图。 说明: 脚本启用后,才会显示该图标。 版本对比。 切换版本。 代码编辑区域 在该区域开发代码,实现功能。代码编辑器提供智能提示、代码补全、显示光标的所在行和列信息等能力,更多介绍请参见提供AI代码补全功能。 脚本编辑页面同样支持离线编辑器中的常规快捷键操作,例如“Ctrl+S”可以保存当前修改,“Ctrl+H”可以调出查找替换对话框,您也可以根据自己的开发习惯,尝试各种快捷键操作。 测试区 运行代码后的显示区域。在“输入参数”页签输入参数后,单击测试区右侧的运行按钮,运行脚本。即可在“输出参数”页签,查看输出结果是否正确。在“问题”和“日志”页签,查看问题和日志。除此之外,还支持清除日志输出、运行脚本并动态检查和保存输入参数。
  • 脚本主要用什么语言和库 低代码平台的脚本引擎采用TypeScript语言。脚本执行时,TypeScript语言会被翻译成JavaScript语言,由JavaScript引擎执行。 在JavaScript es5的官方标准库外,低代码平台还扩展了10+预置标准库(即预置API),帮助您更高效地开发脚本,有关系统预置的标准库说明请参见脚本中预置的API。 库的使用方法举例: import * as http from 'http';
  • 代码编辑器 在代码编辑区域,在符号上单击鼠标右键,会出现如图2所示代码导航功能。除此之外,脚本编辑器还提供了智能提示、代码补全、显示光标的所在行和列信息等能力。 图2 代码导航 Go to Definition 在代码编辑区域,在符号上单击鼠标右键,选择Go To Definition,可以跳转到符号的定义代码部分。 Go to References 在代码编辑区域,在符号上单击鼠标右键,选择Go to References,可以查看符号在脚本中的引用情况。 Run 在代码编辑区域,在符号上单击鼠标右键,选择Run,执行脚本。 Go to Symbol 在代码编辑区域,单击鼠标右键,选择Go To Symbol,选择任意符号,可以跳转到该符号的定义代码部分。 Peek Definition 在代码编辑区域,在符号上单击鼠标右键,选择Peek Definition,可以查看代码的定义。 Peek References 在代码编辑区域,在符号上单击鼠标右键,选择Peek References,可以查看代码的引用。 Rename Symbol 在代码编辑区域,在符号上单击鼠标右键,选择Rename Symbol,可重命名所选符号。 Change All Occurrences 在代码编辑区域,选中一个字符串,单击鼠标右键,选择Change All Occurrences,可以批量修改代码中所有包含该字符串的内容。 Format Document/Format Selection 在代码编辑区域,选择一块代码,单击鼠标右键,选择Format Selection;或者直接在任意位置单击鼠标右键,选择Format Document,可以对代码进行格式化排版。 Fix lint issue 在代码编辑区域,选择一块代码,单击鼠标右键,选择Fix lint issue;或者直接在任意位置单击鼠标右键,选择Fix lint issue,可以对代码进行静态规范错误修复。 Cut/Copy 在代码编辑区域,选择代码单击鼠标右键,选择Copy,可以剪切或者拷贝所选代码。 Command Palette 在代码编辑区域,在符号上单击鼠标右键,选择Command Palette或者按F1,进入命令面板,可以执行很多编辑功能。 图3 命令面板 Hover 把鼠标停留在符号上,可以查看符号的定义概要。再按住Ctrl键,单击符号,可以查看符号更加详细的定义。 例如,鼠标停留在“useObject”上,显示如下图所示,可查看其定义概要。按Ctrl键,单击“useObject”,可查看更详细的定义。 图4 查看定义概要 图5 查看更详细的定义 Bracket matching 高亮显示与选择内容匹配的符号,如{}、()、[]等。 图6 Bracket mathching Errors & Warnings 编辑代码时,如果有语法错误,会在这个语法下面显示红色波浪线,鼠标移动上去,会显示具体错误。 图7 Errors&Warnings Go to Line 按“Ctrl + g”,再输入行号,可以跳转到指定的代码行。 Search and Replace 按“Ctrl + f”,输入关键字,可以搜索当前代码的内容。表示搜索的内容分别支持大小写匹配、全文匹配、正则表达式。 按Ctrl + h,输入关键字,可以查找并替换代码中的内容。 Code Complete 全局符号补全 图8 complete_symbol 对象成员补全 图9 complete_member 参数补全 图10 complete_parameter Comment Code 在代码编辑区域,选择一块代码,输入“ctrl + /”组合键,可以注释或去注释选择的代码块。 Save File 在代码编辑区域,“按Ctrl + s” ,或者单击右上角的保存图标,可以保存脚本。
  • 如何登录新版应用设计器 进入AstroZero服务控制台。 在实例页面,单击“进入首页”,进入AstroZero新版应用开发页面。 图1 应用开发页面 表1 AstroZero新版应用开发页面介绍 功能 功能介绍 主页 在主页中,可快速构建多种类型的应用。 “全部应用”中呈现了当前用户最近创建、访问和收藏的应用。 “学习中心”提供了该平台功能的操作和介绍视频,方便您更直观地了解AstroZero。 “模板中心”放置AstroZero提供的零代码和低代码应用模板,您可以直接使用这些预置的应用模板快速创建应用。 “产品动态”呈现AstroZero通知公告/升级公告。 应用 在应用中,可以开发、管理所有应用。 资产 在资产中,可以管理环境中的所有组件资产,包括可复用的BO资产和传统语言开发的原生服务。 业务大屏 单击该链接,可进入Astro大屏应用控制台。Astro大屏应用(Astro Canvas)是华为云Astro低代码平台提供的可视化页面构建服务,提供了丰富的可视化组件、灵活的数据接入和多种方式页面构建能力,支持多屏适配,帮助开发者快速构建和发布专业水准的实时可视化应用。更多介绍,请参见用户指南(Astro大屏应用)。 学习中心 学习中心提供了丰富的学习资源,帮助您快速、系统性的学习进阶开发技巧。 模板中心 模板中心提供了海量的模板,全覆盖各类场景。 微信扫一扫,可关注AstroZero公众号。 单击可切换系统语言。 华为 云消息 中心入口。消息中心是华为云为更好的建立与客户的联系而建设的服务平台,可以为用户提供各类通知消息的接收和管理,用户可以及时快捷的接收消息,从而避免信息遗漏造成不必要的损失。 AstroZero帮助文档入口。 用户名 显示当前登录账号的名称,单击账号名称,选择不同的弹出菜单,可以查看系统版本信息、隐私声明和服务声明等。 在左侧导航中,单击“应用”,进入应用管理页面。 图2 应用管理页面 单击“新建低代码应用”或,进入新建低代码应用页面。 图3 创建低代码应用 选择应用类型,单击“确定”。 图4 选择应用类型 输入应用的标签、名称,单击“新建”,即可进入新版应用设计器。 图5 新建应用 若环境中已有低代码应用,可在应用列表中,单击已创建低代码应用后的“编辑”,即可进入新版应用设计器。 图6 编辑低代码应用
  • 3、选择一个场景,开始您的开发之旅 以需求场景为开发起点,一路引导,让开发旅程更顺畅。 标准页面:标准页面是一种将一个或多个组件拖进画布,进行低代码甚至无代码的配置,即可快速完成业务功能的前端页面。对于一般的业务应用系统,例如请假电子流、出差报销、在线投票等企业常见业务场景,其功能主要是针对业务数据的增、删、改、查,且前端界面的样式相对简单的页面,可以使用AstroZero提供的标准页面。 高级页面:高级页面是由一个或者多个组件拼装而成。高级页面可以使用Widget组件进行组装和配置,方便用户实现自己想要的效果。高级页面支持多种框架,支持代码开发,比较自由,多用于对页面效果要求高的场景。 工作流:工作流即业务流程管理,源自业界BPMN 2.0标准。低代码平台基于该规范实现了自己的业务流程管理系统,由于工作流本身已成为了业界一套行业规范,因此在低代码平台中称实现此类流程的引擎为工作流。 报表:AstroZero对内部数据提供了一种汇总方式的视图,即报表。利用报表功能,可以让数据进行可视化的展示,并进行分析与洞察,更好的了解业务现存的问题与机遇。 对象:AstroZero中的对象(也可以称为Object)相当于传统方式开发业务系统时,数据库中创建一个表。每个对象对应一张数据库表,用于保存业务系统需要的配置数据和业务数据。 开放接口:通过定义服务的API,可快速定制所需的业务接口,并将该接口服务注册到网关,供第三方使用。 定时任务:通过创建定时任务,让系统自动执行某脚本、服务编排完成业务功能。例如,系统中存在一个定时任务,在每天凌晨3点,定时将到期的商品进行下架处理。 消息接入:当需要从外部数据源获取数据,按照需求对数据进行一系列处理,然后转化成内部事件,输出给Kafka或者ROMA Connect时,可通过配置“数据接入”来实现整个流程。
  • 2、创建低代码应用 在低代码平台中,您可以通过如下方式,开发各个场景的应用,以满足千行百业的各种需求。 新建空白应用:从零开始新建应用,更多介绍请参见新建空白应用。 使用模板新建:当业务与应用模板中的场景相似度较高时,可以尝试使用应用模板创建,并在模板应用的基础上继续改造应用。更多介绍,请参见使用模板创建应用。 新建扩展应用:当需要基于已有应用或解决方案(不是单一的应用,某一解决方案会涉及到多个应用)进行定制时,可选择创建扩展类型应用。更多介绍,请参见创建扩展应用。 新建BO:商业对象(Business Object,简称BO),是封装了完整的数据模型、业务逻辑、页面展现的软件单元,一个BO提供一个完整场景的服务,为上层应用提供特定服务。用户可基于BO,如魔方一样创建功能各异的应用。更多介绍,请参见业务对象(BO)。 新建原生服务:租户在低代码平台外开发了一些服务,服务运行在Docker容器中。若希望将这些服务集成到AstroZero中,供AstroZero内部应用或其他第三方系统调用时,可选择创建原生服务。更多介绍,请参见原生服务。
  • 添加字段 参考如何登录新版应用设计器中操作,登录新版应用设计器。 在左侧导航栏中,选择“数据”。 单击对象后的,选择“编辑”,进入对象设计器。 在对象设计器中,单击对象中的。 您也可以单击,直接进入图3页面,为对象添加字段。 图1 为对象添加字段 在对象详情页面,单击“添加”,为对象添加字段。 图2 对象详情页 设置字段的基本信息,单击“确认”。 图3 添加字段 显示名称:新建字段的名称,用于在页面显示。 唯一标识:字段在系统中的唯一标识,创建后不支持修改。 字段类型:单击,在弹出的页面中,选择字段类型。 描述:新建字段的描述信息,建议设置为字段功能。
  • 编辑字段 只支持修改自定义字段,预置的标准字段,仅支持修改显示名称。 参考如何登录新版应用设计器中操作,登录新版应用设计器。 在左侧导航栏中,选择“数据”。 单击对象后的,选择“编辑”,进入对象设计器。 在对象设计器中,单击对象中的,进入对象详情页。 在“字段”页签中,单击已添加的字段。 在右侧字段属性中,修改字段属性。 显示名称:字段在页面显示的名称。 唯一标识:字段在系统中存储的唯一标识,创建后不支持修改。 字段类型:字段的格式与内容规则,创建后不支持修改。 字段帮助:字段提示的帮助信息。 描述:字段的描述信息。 更多信息:显示自定义字段的创建人、创建时间、最近修改人和最近修改时间,由系统自动生成,不支持修改。 字段设置 是否唯一:勾选,表示该字段唯一。 是否必填:勾选,表示该字段为必填字段。 是否可搜:是否能在前端开发者控制台或脚本中,使用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 table as T where ...;”。 text类型采用了英语分词器,因此大小写单复数不敏感,“movie”可匹配“Movies”。 同sql语句一样,search语句也大小写不敏感。 大小写敏感:大小写是否敏感,例如,“ABC”和“abc”为相同值,表示大小写不敏感,“ABC”和“abc”为不同值,则表示大小写敏感。 数据长度:字段的字符长度。 默认值:字段默认取值,默认值长度需小于等于数据长度。 设置完成后,单击“保存”。
  • 删除字段 只支持删除自定义字段,系统预置字段不支持删除。 参考如何登录新版应用设计器中操作,登录新版应用设计器。 在左侧导航栏中,选择“数据”。 单击对象后的,选择“编辑”,进入对象设计器。 在对象设计器中,单击对象中的,进入对象详情页。 在“字段”页签中,选择待删除的字段。 在右侧字段属性设置中,单击“删除字段”。 在弹出的确认框中,单击“删除”,即可删除该字段。 字段删除后不可恢复,请谨慎操作。
  • 设置任务清单 参考如何登录新版应用设计器中操作,登录新版应用设计器。 在左侧导航栏中,选择“数据”。 单击对象后的,选择“编辑”,进入对象设计器。 在对象设计器中,单击对象中的,进入对象详情页。 在“清理”页签中,单击“启动任务清单”。 图1 启用任务清单 在任务清单中,指定根据哪个日期字段来进行清理。 仅支持选择当前对象的,所有日期类型的字段。 图2 指定字段 指定待存留时间。 当该记录的指定字段值超过了该期限后,清理任务自动处理该记录。 单击“新增”,指定记录匹配条件,仅清除符合条件的记录。 图3 指定匹配条件 匹配条件可设置“且”、“或”组合关系。 输入条件的值,要匹配字段类型。例如,日期类型则用日期输入框。 设置清理动作,单击“保存”。 选择动作为删除任务,即清理任务直接删除符合条件的记录。 图4 清理动作
  • 场景描述 本章节以开发网站中常用的标签切换页面为例,向您介绍如何基于组件模板在线开发组件。参考华为消费者业务网站(如图1所示),页面中主要包含标签栏和详情展示模块两部分,可以通过切换标签来控制详情展示模块中的展示内容。 图1 消费者业务网站示例 本章节主要在高级页面中,通过两个组件(标签页组件、信息展示组件)复现上述场景。其中,标签页组件包含产品类别(手机、笔记本、平板等),信息展示组件用于展示不同产品类别的图片信息。两个组件通过事件-动作机制实现交互,在标签页组件中注册标签切换事件,此事件绑定信息展示组件中切换产品图片的动作。 本章节使用的示例组件开发过程中,使用了前端开发框架Vue及组件库Element。事件-动作机制的详情介绍,请参见如何实现组件交互。
  • 编辑验证 参考如何登录新版应用设计器中操作,登录新版应用设计器。 在左侧导航栏中,选择“数据”。 单击对象后的,选择“编辑”,进入对象设计器。 在对象设计器中,单击对象中的,进入对象详情页。 在“验证”页签,单击验证列表中的验证。 在右侧的验证属性面板中,可修改验证。 图2 修改验证信息 显示名称:修改验证在界面的展示名称。 唯一标识:验证规则的唯一标识,不支持修改。 描述:验证规则的描述信息。 是否启用:是否使用该验证规则。 验证公式:设置验证规则的公式。在输入框中,可下拉选择元素,选择后自动插入到当前光标位置。 设置对象验证规则的公式时,在输入框中,可下拉选择元素,鼠标放在对应元素上有相应验证公式的描述说明。 如何设置对象验证规则的公式,请参考为对象字段增加校验规则。 错误信息:设置错误信息,提示验证失败的原因。 修改完成后,单击“保存”。
  • 如何创建服务编排 参考如何登录新版应用设计器中操作,登录新版应用设计器。 在左侧导航栏中,选择“逻辑”。 单击编排后的“+”,设置参数,单击“添加”。 图2 创建服务编排 创建一个新的服务编排:从零开始,创建一个新的服务编排。 使用已有的服务编排:基于同一租户或基线里已有的服务编排,来创建一个服务编排,方便用户快速继承已有服务编排的配置,增加效率。 类型:服务编排的类型。 Autolaunched Flow:自启动Flow,在接口调用后会立即执行服务编排模型定义的逻辑。 Event Trigger:事件触发的服务编排,在事件触发时才会开始执行服务编排模型定义的逻辑。当选择该类型时,您需要配置具体的事件以及条件规则。 标签:新建服务编排的标签名,用于在界面展示。 名称:服务编排在系统中的唯一标识,创建后不支持修改。系统会自动在名称前添加“{命名空间}__”,当其他功能调用服务编排时,调用的是服务编排的名称,而不是标签。 描述:新建服务编排的描述信息,通常设置为服务编排的功能。
  • 创建您的第一个服务编排 此处以创建一个根据传入的用户名,配置欢迎信息的简单业务场景为例,向您介绍如何创建一个服务编排。 参考如何创建服务编排中操作,创建名称和标签为“HelloFlow”的服务编排。 创建变量。 在服务编排设计器中,单击,进入全局上下文页面。 单击“变量”后的,创建表2中的变量。 图4 创建变量 表2 变量说明 变量名 类型 变量说明 userName 文本 传入的用户名 message 文本 欢迎信息 在全局上下文中,除了创建基本类型的变量,还可以创建“常量”、“公式”、“对象变量”、“系统变量”和“全局常量”,详情请参见变量及输入输出参数配置。 单击,配置服务编排的输入输出参数。 图5 配置输入输出参数 将“逻辑”中的“赋值”图元,拖拽到画布中。 赋值图元可以实现对全局上下文中变量等参数进行赋值,其他图元的详情介绍,请参见图元配置。 图6 拖拽赋值图元到画布 配置图元。 选择赋值图元,单击。 在“赋值”页面中,单击“新增行”,参照下图将创建的变量拖拽到相应的位置。 将“"Hello,"”赋值给message变量,并将userName变量拼接到message变量中,赋值语句将从上往下依次执行。 图7 配置赋值图元 连接图元指定逻辑关系,即从开始图元连向赋值图元,表示服务编排开始执行后,执行赋值图元的赋值语句。 图8 连接图元 单击页面上方的,保存服务编排。 单击,进入服务编排调试页面。 在输入参数中,输入如下内容,并单击“运行”。 { "userName": "AstroZero" } 运行结果如下,输出“Hello,AstroZero”。 图9 运行结果 单击页面上方的,启用服务编排。 调试已创建的服务编排。 在新版应用设计器左侧导航栏中,选择“集成”。 单击开放接口后的,新建一个helloFlow开放接口,单击“保存”。 图10 新建开放接口helloFlow 在新版应用设计器左侧导航栏中,选择“集成”。 单击开放接口后的,选择“查看”。 图11 查看API 在预览页面,单击“测试一下”,输入示例模型,单击“运行”。 图12 测试接口 图13 查看API测试结果
  • 初识服务编排编辑器 服务编排编辑器页面由上方按钮区域、左侧图元面板区域、中间画布区域和右侧参数配置区域四部分组成。 图3 服务编排编辑器页面 表1 区域说明 区域 区域说明 按钮区域 功能按钮区域,包括启用(或者禁用)、保存、另存为新版本或者新服务编排、执行服务编排、操作回退、撤销回退等,支持快捷键操作,即可脱离鼠标直接用键盘操作。 服务编排启用后,单击页面右上角的,可查看该组件的调用关系图。 图元面板区域 图元面板区域呈现服务编排编辑器的图元算子。服务编排编辑器以图元算子为基础,可直接将图元算子拖入画布区域进行逻辑编排。图元算子包括如下五类: 基本:基本类型图元,能够实现在服务编排中进行脚本或者服务编排的调用,增/改/删/查对象记录,以及发送邮件、发送事件的功能。 逻辑:逻辑判断图元,能够实现在服务编排中进行变量赋值Assignment、循环Loop、跳出循环Break、决策Decision、等待Wait的功能。 BO:商业对象图元,即将封装好的BO能力作为服务编排中的一个节点,实现特定的业务功能图元。 Native服务:原生服务图元,用于调用原生服务提供的接口。 连接器:与第三方系统对接的图元,例如将短信发送、支付等第三方连接器作为当前服务编排中的一个节点图元。 画布区域 服务编排设计操作区域,在该区域可对服务编排进行具体流程设计、图元放置。 配置区域 整个服务编排或图元的属性设置区域。选择画布区域服务编排中具体图元时,右侧配置区域为该图元的属性设置区域。选择服务编排中空白区域或者开始图元时,右侧配置区域为该服务编排的设置区域。 :服务编排基本信息配置菜单。 :显示服务编排类型、是否启用。 :整个服务编排的入参、出参,可从“全局上下文”中,选择变量拖拽到服务编排的入参、出参中。 :服务编排使用的私有结构体。 :全局上下文变量,主要用于创建服务编排中需要使用的变量、公式以及结构体变量等。
  • 高级页面开发框架 在开发高级页面过程中,主要涉及组件、库、桥接器、事件和动作等相关内容。组件、库、桥接器、事件和动作之间的关系,可概述为: 组件为高级页面的元素,组件的可复用性可以大幅提高开发效率。 组件的事件-动作机制提升页面的灵活度,使得组件与组件、组件与页面之间可以交互。 库作为组件的依赖,便捷的引用机制,降低了组件开发的复杂度且丰富了组件的功能。 组件可以通过桥接器调用后台接口,获取数据。 低代码平台通过组件、库、桥接器三类资产以及“事件-动作”机制,构建了高级页面的基本框架。 图6 组件、库、桥接器关系图 组件 组件是可复用的高级页面组成元素,一个高级页面由一个或多个组件搭建而成,可以通过拖拽组件快速搭建高级页面。如果将一个高级页面看成拼图游戏的完整图案,那么组件相当于拼图的每一小块。高级页面与组件的关系,如图6所示,其中Page为高级页面,Widget为高级组件。 图7 高级页面与组件的关系 高级页面中的组件,包括如下两类: 全局高级组件 全局高级组件是低代码平台为开发者提供的常用组件,主要包含图表、媒体(图片、视频)和文本等。更多关于全局高级组件的介绍,请参见全局高级组件。 自定义组件 若全局高级组件不能满足开发需求,低代码平台支持用户自定义组件。自定义组件开发方式,主要包含以下几类: 对全局高级组件的二次开发 低代码平台支持开发者下载全局组件,并在其基础上进行二次开发(如修改组件样式、逻辑等),完成后上传为自定义组件。通过这种方式,可以大幅度降低组件开发的工作量,详情请参见开发高级组件。 通过组件模板开发 若全局高级组件中,未包含所需要的组件类型,可以基于低代码平台提供的组件模板进行自定义组件的开发。组件模板中已为您构建组件的基本架构,详情请参见开发高级组件。 库 库是支撑高级组件运行的第三方依赖,若缺少相应的库,则组件不能正常运行。如果高级组件需要使用前端框架或组件库,例如流行的Vue(已预置)、Bootstrap、Element(已预置)等,需要将其制作成库资产,再上传到环境中使用。系统预置库及第三方库的引入方法,请参见如何引入第三方库。 桥接器 在进行前台页面开发时,经常要调用后台数据,例如购物车中用户的ID、订单编号、商品信息等。这时需要通过桥接器调用后台API,获取后台数据,详情请参见如何调用后台接口。 事件和动作 事件和动作都是组件的配置属性,用于实现组件之间的交互。例如,单击某个组件内的按钮,另外一个组件需要进行数据更新操作,或者是需要跳转到当前应用下的其他高级页面,这时需要通过事件和动作的机制来实现。单击按钮即是触发一个事件,数据更新操作或者页面跳转操作是一个动作,详情请参见如何实现组件交互。
  • 初识高级页面开发界面 进入新版应用设计器的“界面”,单击高级页面后的“+”,即可新建一个空白高级页面或基于页面模板创建一个高级页面。页面创建后,自动进入高级页面开发界面,您可以阅读以下内容初步了解高级页面。 图1 高级页面开发界面 高级页面开发工作台,功能模块布局说明如下: 高级页面工具栏(序号1) 展示页面开发过程中的常用工具,如保存、发布,电脑端或者移动端页面设置等。 组件列表:用于展开、收起高级组件列表。 电脑端\移动端:为了让同一页面能够完美呈现于电脑端和移动端,低代码平台提供了高级页面的电脑端和移动端两种终端视图,用户可分别对高级页面的电脑端和移动端进行定制开发。开发完成后发布生成的高级页面为同一URL,当电脑端或移动端加载这一URL时,平台会自动检测用户所用的设备类型并加载相应视图页面。多终端适配的详细介绍,请参见如何适配多终端。 保存:保存当前开发页面的修改。 发布:发布当前开发的页面,页面发布后可以预览该页面的运行态效果。 页面修改、保存后,需再次执行发布操作,才能在应用和预览页面中体现修改内容。 预览:页面发布后,可以预览该页面运行态效果。 发布模板:页面开发完成后,可将该页面发布为模板。 撤销\复原:页面开发过程中若出现误操作,可执行撤销、复原操作。 性能分析:低代码平台支持检查高级页面性能,生成性能报告页供开发者查看。 高级页面缩放比例:用于调节页面画布在开发工作台中的大小比例。 自动适应大小:自动适应页面画布在开发工作台中的大小比例。 网格线:开启画布网格线功能,用于标定组件在画布中的位置。 页面视图设置:设置高级页面的分辨率、网格大小、背景颜色和背景图片。 页面状态设置:设置页面的状态。 组件分类列表(序号2) 包含高级组件的功能分类,用于在开发高级页面时对组件进行筛选,方便组件查找与管理。组件列表分类默认包含图表、媒体、地图、文本、装饰等,可选择相应的分类来筛选高级组件。 高级组件展示、选择区域(序号2、3) 选定组件分类后,属于该功能分类的组件将显示在该区域。在该区域中,还包含了搜索框、应用场景、预置和自定义多种筛选条件。 搜索框:通过组件名称,可快速查询归属于当前选定组件分类中的高级组件。 应用场景筛选:可快速筛选不同应用场景的高级组件,当前应用场景包含通用、智慧园区、5G消息和其他等。 预置和自定义筛选:用于筛选当前选定组件分类中,包括预置组件和用户自定义组件。 预置组件是低代码平台提供的全局高级组件,详情请参见全局高级组件。自定义组件为用户自主开发的高级组件,详情请参见开发高级组件。 画布 编辑页面内容及页面视图区域,可将组件从高级组件展示选择区域拖入该区域,快速搭建高级页面。此处以绝对布局方式的高级页面为例,流式布局相关操作方法请参见流式布局高级页面。 定位到所需组件后,便可以将其拖动到画布中,用于构建所需的高级页面。 图2 拖拽组件到画布中 在画布中,可以通过拖拽的方式调整组件的位置、大小。低代码平台还提供了组件对齐提示线,帮助布局组件。 图3 调整组件 组件的右键设置:在画布中选中组件,单击鼠标右键会弹出删除、复制、粘贴(若已复制组件)、格式刷、置于顶层、置于底层、高级设置选项。 删除:删除当前选中的高级组件,也可通过键盘中BackSpace键(退格键)和Delete键(删除键)实现。 复制:复制当前选中的高级组件,也可通过快捷键Ctrl+C实现。 粘贴:用于粘贴已复制的高级组件,也可通过快捷键Ctrl+V实现。 格式刷:用于复制当前选中组件的属性,应用于其他组件。可选的属性包含样式(边框、背景)、位置(距左、距上、高度、宽度)和其他属性。选定所需格式刷内容后,光标会变成刷子样式,单击所需格式刷组件即可。 图4 格式刷操作示例 置于底层/顶层:用于设置当前选中高级组件的堆叠顺序,即 CSS 中的z-index属性。仅绝对布局类型的高级页面,存在该设置选项。 高级设置:用于设置当前组件的样式属性,全局高级组件详情介绍,请参见全局高级组件。 组件属性设置区域 未选中画布中任何组件时,此模块显示内容为“当前视图组件列表”即当前页面中所布局的组件列表。您可以通过选择画布中或列表中的组件,切换到该组件的“组件属性设置”栏,进行当前选中组件的属性设置、数据设置、事件绑定和路由设置。 图5 组件属性设置操作示例 属性设置:组件基本属性设置,支持在自定义组件中添加自定义属性,详细介绍请参见开发高级组件。 数据设置:设置组件绑定的桥接器,以实现通过桥接器调用后台接口,获取后台数据,详情请参见如何调用后台接口。 事件绑定:设置在运行态,对该组件相关操作的事件触发的具体动作,详情请参见如何实现组件交互。 路由设置:当前该功能主要用于流式布局类型高级页面中的“路由导航”组件。
  • 如何快速创建一个高级页面 以构建包含基本柱图组件的高级页面为例,向您介绍如何快速搭建高级页面。 新建高级页面。 参考如何登录新版应用设计器中操作,登录新版应用设计器。 在左侧导航栏中,选择“界面”。 单击高级页面后的,设置标签和名称,单击“添加”。 图8 添加高级页面 在应用中首次创建高级页面时,才会显示“视图”选项。 搭建高级页面。 在高级页面开发界面,单击,打开组件列表。 从组件列表中,拖拽基本柱图组件到画布中,按需调整组件的位置和大小。 图9 搭建高级页面 进行组件属性配置。 以修改组件的图表数据为例,向您介绍如何进行组件属性配置。 选中基本柱图组件,在组件属性设置中,单击“数据”页签。 在桥接器实例中,选择“折柱图数据桥接器”,数据类型选择“静态数据”,并在静态数据中拷贝如下示例。 图10 组件数据设置 { "resCode": "0", "resMsg": "成功", "result": [{ "order": { "dataX": [ "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24" ], "dataValue": [{ "title": "入园人数", "value": [ 20, 30, 45, 20, 60, 80, 140, 200, 145, 40, 70, 60, 80, 16, 87, 77, 60, 20, 60, 80, 55, 68, 70, 24 ] }, { "title": null, "value": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] }, { "title": "出园人数", "value": [ 90, 60, 30, 20, 10, 110, 140, 87, 64, 45, 11, 24, 80, 14, 98, 35, 41, 14, 45, 80, 31, 22, 23, 24 ] } ] } }] } 返回高级页面开发界面,单击页面上方的,保存页面。 预览和发布高级页面。 页面创建完成后,可直接单击高级页面上方的,预览页面,也可以单击,发布高级页面。
  • 什么是高级页面 高级页面是由一个或者多个组件拼装而成。高级页面可以使用Widget组件进行组装和配置,方便用户达到自己想要的效果。高级页面支持多种框架,支持代码开发,比较自由,多用于对页面效果要求高的场景。 高级页面主要用于开发应用中较复杂的前端页面,例如包含图片、图表、视频、地图等元素的页面。您可以将高级页面应用于开发网站、电商平台等,通过拖拽、布局组件,并进行相关属性配置即可快速搭建应用。低代码平台中的高级页面,提供了常用组件,组件包含了预置的样式,并封装了基础事件代码,实现了开箱即用,避免重复写样式和事件代码,陷入代码细节,使开发人员更好的专注于业务场景的挖掘。
  • 使用流程 具体操作流程如图1所示。 图1 使用流程 准备工作 将应用接入AppStage前需要依次完成购买AppStage、关联组织、配置服务授权、添加部门/成员信息、录入产品/服务/微服务信息和申请权限。 服务环境配置 使用AppStage运维中心前需要先准备环境并为服务关联区域、账号和企业项目。 资源接入 VPC接入:资源接入AppStage前需要先打通网络,通过纳管VPC实现VPC下资源的网络连通。 虚拟机接入:AppStage运维中心支持纳管虚拟机,对虚拟机进行统一管理,包括主机资源发放/回收/操作、OS管理、密码密钥管理等。 CCE集群接入:AppStage运维中心支持纳管CCE集群,对CCE集群进行统一管理,包括资源池监控、访问安全控制、任务调度、业务负载弹性伸缩和多种K8s扩展等。 数据库接入:AppStage运维中心支持纳管数据库,对数据库进行统一管理,包括数据库台账、自动化SQL变更、数据查询、自动化数据提取、性能分析、负载分析、数据库风险诊断等。 基础监控指标接入:AppStage运维中心支持对云服务基础指标进行监控,首先需要在华为云上购买Kafka做数据转储,并将数据订阅至AppStage。 CES 告警接入:支持将 云监控服务 CES生成的告警接入至AppStage运维中心。 应用部署 AppStage运维中心支持将已有应用软件包上传至运维中心的部署服务中,使用部署服务完成应用部署。 应用运维 接入日志:AppStage运维中心支持接入虚拟机日志和容器日志,通过部署filebeat完成日志采集,其中容器日志在设置日志路径时使用通配符匹配完成容器日志数据接入。 查看日志:日志接入后,可以对日志进行检索,查看原始日志或者汇聚后的日志。 配置监控:如果需要查看监控,需要配置虚拟机监控、配置业务数据监控。 查看监控:监控配置后可以查看监控数据。 配置告警:容器监控异常会自动上报告警,如需对虚拟机及业务进行异常监控,需要配置虚拟机告警和配置业务告警。 查看告警:告警配置后可以查看告警,并及时处理告警问题。 配置告警通知:可以通过配置告警通知,及时掌握并处理告警,避免影响业务正常运行。 演练故障:AppStage支持对业务故障进行演练,演练场景可复用,高度自动化,最终实现无人值守演练。
  • 背景知识 EG通知是基于事件网格(EventGrid,简称EG)服务的事件通知功能。EG是华为云提供的一款Serverless事件总线服务,支持华为云服务云服务、自定义应用、SaaS应用以标准化、中心化的方式接入事件网格,通过标准化的CloudEvents协议在这些应用之间以灵活方式路由事件,帮助您轻松构建松耦合、分布式的事件驱动架构。 OBS作为云服务事件源将产生的云服务事件发送到EG,事件规则对云服务事件进行过滤和转换,通过转换后的事件触发事件目标(即 函数工作流 服务中的函数)。 图1 事件网格总体架构示意图
共100000条