华为云用户手册

  • 计费模式 DLI 在不同的计费项下有不同的计费模式,具体详见表2说明。 表2 DLI计费模式 计费项 计费模式 计费模式说明 计算计费 包年/包月 按照弹性资源池包年/包月的固定费用计费。 按需计费 按需弹性资源池资源使用CU时进行计费。 计算费用=单价*CU数*小时数 CU时套餐包 DLI提供了弹性资源池CU时套餐包。 CU时套餐包的额度会按订购周期重置。 DLI表的数据存储 按需计费 按照存储在DLI服务中的数据存储量(单位为“GB”)收取存储费用。 存储费用=单价*存储数据量(GB)*小时数 存储套餐包 购买了存储量套餐包,按需使用过程中优先抵扣存储套餐包的规格额度,超过套餐包额度的按照按需计费。存储套餐的额度每个小时会重置。 数据扫描量 按需计费 扫描量计费=单价*扫描量数据(GB) 扫描数据量套餐包 购买了扫描数据量套餐包,按需使用过程中优先抵扣扫描数据量套餐包的规格额度,超过扫描数据量套餐包额度的按照按需计费。扫描数据量套餐的额度会按订购周期重置。 按订购周期重置:如重置周期为月,且按订购周期重置,即如果用户1月5日订购的套餐包,之后每个月5日同一时间重置免费资源。 按自然周期重置:结合重置周期使用,如重置周期为月,且按自然周期重置,即每月1日0点重置免费资源。 DLI的套餐包中仅存储套餐包按自然周期重置,即每小时重置,其他套餐包按订购周期重置。
  • 适用场景 通常情况下,建议您针对不同的业务创建项目: 开发项目:在此项目下,大多是工程师开发调试时使用,作业随机性大,数据量小。针对这种情况,建议您使用按CU时计费模式,能够帮您有效控制成本,将资源消耗控制在一定范围内。如果您有短时的专属资源需求,也可以在购买按需队列时勾选专属资源模式,享受资源专属。 生产项目:在此项目下,您的作业相对稳定(经过开发调试再上线),建议您使用包年/包月计费模式,可以更优惠。同时,按需计费的队列,在空闲1小时后(队列空闲是指该队列上没有正在运行的作业),系统会自动释放计算资源,再次使用时,需要重新分配计算资源,可能会耗费5~10min时间。使用包年/包月计费模式则可避免这种情况,节省等待时间。
  • 计费示例 价格仅供参考,实际计算请以 数据湖探索 价格详情中的价格为准。 假设您在2023/04/18 9:59:30购买了一个按需弹性资源池资源(规格:64CUs),并将1TB数据存放在DLI表中。然后在2023/04/18 11:45:46删除队列和DLI表: 第一个计费周期为9:00:00 ~ 10:00:00,该计费周期内的计费时长为1小时。 第二个计费周期为10:00:00 ~ 11:00:00,该计费周期内的计费时长为1小时。 您需要为每个计费周期付费,计费公式如表2所示。 表2 计费公式 资源类型 计费公式 资源单价 计算资源 计算费用=单价*CU数*小时数 请参见DLI产品价格详情。 存储资源 存储费用=单价*存储数据量(GB)*小时数。 请参见DLI产品价格详情。 表3 资源类型 资源类型 计费详情 合计 计算资源 0.4元/小时,实际CUs:64CUs,累计计费时长:2小时 51.2元 存储资源 0.00013889元/小时/GB,实际存储1TB=1000GB,累计计费时长:2小时 0.28元 费用合计:51.48元。
  • 计费构成分析 基于此案例,可详细计算出按需计费和包年/包月两种不同的计费模式的消费情况。 此案例中的单价仅为示例,且计算出的费用为估算值。单价的变动和实际场景中计算出来的费用可能会有偏差。请以华为云官网发布的数据为准。 计费模式 计算规则 付费周期 费用计算 按需计费(专属) 计算费用:计算费用=单价*CU数*小时数 1个月 计算费用:0.4(弹性资源池计算单价:元/时) x 256(CU数) x 24 x 30(小时数) = 73728 元/月 存储费用=单价*存储数据量(GB)*小时数 存储费用:0.00013889(存储单价:元/GB)x 1000(存储数据大小:GB)x 24 x 30(小时数)= 100 元/月 合计 总费用:73828 元/月 包年/包月 计算费用:按照弹性资源池包年/包月的固定费用计费 1个月 计算费用:43520元/月 存储费用:购买了存储量套餐包,按需使用过程中优先抵扣存储套餐包的规格额度,超过套餐包额度的按照按需计费。存储套餐的额度每个小时会重置。 存储费用:100元/月 合计 总费用:43620 元/月 由此可见,购买资源使用包年/包月的方式将为您节省大量成本,购买资源的时长越长优惠越多。
  • 计费场景 某公司用户A申请了256CUs的弹性资源池,并将1TB数据存放在DLI表中。该公司想要了解采用哪种计费模式才是性价比最优的方式。 数据湖 探索服务目前支持三种作业:SQL作业,Flink作业和Spark作业。SQL作业的计费包括存储计费和计算计费,Flink作业和Spark作业的计费只有计算计费。 示例价格仅供参考,实际计算请以DLI产品价格详情中的信息为准。 更多示例参考DLI产品价格详情。
  • 通过REST接口调用连接器 可以通过调用REST接口,完成表1中功能。如何调用接口,请参见连接器API。 表1 调用连接器 接口 说明 上传文件 将本地文件上传到存储中。使用该API上传文件,默认只会上传到连接器下配置的第一个桶中。待上传的文件可以是任何类型,如文本文件、图片、视频等。 下载文件 从存储中下载文件。 删除文件 从存储中删除无用的文件。 删除目录 从存储中删除某目录。如果目录下不为空,删除目录的同时也会删除该目录下文件。 列举目录下文件 列举存储中某目录下文件。 分段上传 对于较大文件上传,可以切分成段上传。用户可以在如下的应用场景内(但不仅限于此),使用分段上传的模式: 上传超过100MB大小的文件。 网络条件较差,和OBS等存储服务端之间的链接经常断开。 上传前无法确定将要上传文件的大小。 获取endpoint,即文件存储地址的前缀 endpoint为文件存储地址的前缀,该前缀加上传对象的路径,是实际访问对象的全路径。 分享Token 获取临时Token,用户只要使用该临时Token即可访问文件,不用再使用access-token进行鉴权。
  • 前提条件 使用OBS前,需要拥有一个华为账号或一个可用于访问OBS的 IAM 用户,即先注册华为云并实名认证、创建IAM用户、充值以及购买资源包,具体操作请参见使用OBS前需要做的准备工作。 获取AK(Access Key ID)、SK(Secret Access Key),即访问密钥对,具体操作请参见获取AK/SK。 已在华为OBS上,创建存储桶(例如“bing.testonly.1”),用于后续存储对象使用,具体操作请参见如何创建桶,请记录创建桶时选择的区域。
  • 场景描述 本章节以开发网站中常用的标签切换页面为例,向您介绍如何基于组件模板在线开发组件。标签切换效果如图1所示,页面中主要包含标签栏和详情展示模块两部分,可以通过切换标签来控制详情展示模块中的展示内容。 图1 标签切换效果 本章节主要在高级页面中,通过两个组件(标签页组件、信息展示组件)复现上述场景。其中,标签页组件包含产品类别(手机、笔记本、平板等),信息展示组件用于展示不同产品类别的图片信息。两个组件通过事件-动作机制实现交互,在标签页组件中注册标签切换事件,此事件绑定信息展示组件中切换产品图片的动作。 本章节使用的示例组件开发过程中,使用了前端开发框架Vue及组件库Element。事件-动作机制的详细介绍,请参见如何实现组件交互。
  • 了解AstroZero中预置权限 在AstroZero中,通过权限配置(Profile)来控制用户、业务用户等的操作权限。AstroZero当前预置了如下几种Profile标准配置文件: System Administrator Profile:系统管理员,拥有AstroZero全部权限。 Developer Profile:开发者权限,一般给用户使用,拥有此权限的用户可以在AstroZero进行开发,例如新增一个对象、为对象增加一个字段、新增一个流程等。 Portal User Profile:业务用户的权限,一般给业务用户使用,拥有此权限的业务用户可以通过服务编排鉴权登录AstroZero。 Anonymous User Profile:游客用户的访问权限,请根据自身业务需求,给Profile分配适当的权限。 Standard User Profile:运行态权限,开通AstroZero服务时自带的权限,拥有这个权限可以运行系统中的流程、对系统已有对象进行记录的增删改查操作,但没有开发权限,如新增一个对象或新增一个流程等。 NoCode Developer Profile:零代码应用开发权限,只有运行环境才会预置该权限。 NoCode Manager Profile:零代码应用数据管理权限,只有运行环境才会预置该权限。 一种权限配置可以分配给多个用户,但每个用户只能属于某一个权限配置。权限配置(Profile)中,各权限项详细介绍,请参见表1。 除了默认的权限配置外,用户还可以在默认权限配置的基础上,自定义权限配置,具体操作请参见创建AstroZero扩展权限集。 图6 用户开发者权限 图7 业务用户权限 图8 游客用户访问权限 表1 权限项说明 权限项 权限项说明 查看系统元数据 用户访问元数据的必要权限,仅用于界面提示作用,无法取消。 开发应用 系统最高的权限,拥有此权限可定制系统所有可定制的地方,默认拥有其他权限。 查看所有用户 查看用户列表和用户详情的权限。 查看角色 查看角色列表和角色详情的权限。 查看权限管理 查看权限配置列表和权限配置详情的权限。 查看扩展权限集 查看扩展权限集列表和扩展权限集详情的权限。 查看组 查看组列表和查看组详情的权限。 查看队列 查看队列列表和查看队列详情的权限。 查看业务用户 查看业务用户列表和查看业务用户详情的权限。 查看业务权限凭证 查看业务权限凭证列表和查看业务权限凭证详情的权限。 查看告警 查看告警列表和告警详情的权限。 管理告警 新增、修改告警定义的权限。 查看BPM 查看BPM定义列表和详情的权限,包括BPM关联的决策表、触发器等。 管理BPM实例 修改BPM实例详情的权限。 查看服务编排 查看服务编排定义列表和详情的权限。 查看脚本 查看脚本列表和详情的权限。 查看定时任务 查看定时任务列表和详情的权限。 查看报表 查看报表列表和详情的权限。 运行报表 查看报表运行实例的权限。 查看仪表板 查看仪表板列表和详情的权限。 运行仪表板 查看仪表板运行实例的权限。 查看所有数据 查看所有数据的权限,勾选此选项后,会忽略单个对象的权限。 运行SQL 执行SQL的权限。 查看加密数据 查看加密数据明文的权限。 查看租户跟踪日志 查看租户跟踪日志的权限。 查看敏感隐私数据 控制是否允许,以数据对象的形式,查看部分敏感数据对象的权限,例如权限配置、连接器定义等。 管理数据 在数据控制台操作任意对象的权限。 管理公告 控制开发者在工作台页面,是否有管理公告(新增、删除和编辑)的权限。
  • 用户(User) 用户是由AstroZero系统管理员添加并赋予Developer Profile权限的IAM用户或 WeLink 用户,可以使用AstroZero开发应用,即应用的开发者。更多关于用户和业务用户的介绍,可参见图解AstroZero中用户那些事。 图4 为用户添加开发者权限 在AstroZero中,用户可以执行如下操作: 使用AstroZero创建应用 使用AstroZero开发应用后端 使用AstroZero开发应用前端 使用AstroZero进行应用集成开发 使用AstroZero对应用进行个性化设置 发布并部署AstroZero开发的应用
  • 异常处理 当数据源类型选择ROMA Connect时,配置完数据接入后,MQS平台收不到消息,业务设置的EventTrigger没有拉起服务编排。 问题现象:ROMA Connect消息轨迹是灰色的,可能是MQS服务地址配置错误或没有配置。 解决方法:检查iotgateway容器的“roma-server”参数是否配置。若没有配置,请配置该参数或联系运维添加正确的“roma-server”地址(端口为“9776”),确认网络正常以及MQS服务器正常,兼容客户端版本。 问题现象:ROMA Connect消息轨迹是红色的,可能是MQS的source定义错误。 解决方法:在ROMA Connect平台,查看应用ID和对应的密钥是否一致,查看该应用是否订阅了主题。配置错误时,会导致鉴权失败。 问题现象:ROMA Connect消息轨迹是绿色的, 表示MQS接收成功,并成功发送到Kafka,AstroZero也收到了对应的消息,但是可能没成功拉起服务编排。 解决方法:查看iotgateway的“flume.log”日志,确认MQS是否接收成功。通过“kafka-console-cumer”确认消息是否转换成功,通过AstroZero的日志跟踪功能或AstroZero后台日志确认(日志关键字为“OnEvent”)平台是否收到事件。如果没有对应的服务编排或事件日志,可以确定服务编排未拉起,请联系华为工程师解决。
  • 在脚本中调用连接器 在脚本中,调用连接器实现与OCR的对接。 参考开发一个简单脚本实例中操作,创建一个空白脚本。 图5 新建一个空白脚本 在脚本编辑器中,输入如下代码。 //导入该脚本所依赖的标准库文件,ocr是系统预置的标准库。 import * as ocr from 'ocr'; let cli = ocr.newClient("OCR_Test"); try { let url = "https://obs.example.com:443/1.PNG?AccessKeyId=ZK87UUIONJF5ZHWBINUO&Expires=1556001233&Signature=DOwO6djb4Q3EBvCieQFaO3T2GKU%3D&x-obs-security-token=gQpjbi1ub3J0aC0xipYOeC2mcbefHh5I_aMr6DEWQ8-iFyxqatavdiFtYowH-lpJCcxeTynsV_4PTJe9QIx85mlDIDo3sU9PUv3hFtRjQORjGE2PqA4hEtozvMuWxXb5b6RKiFT37-z7NoI4R85XmlTmZGQ6OUZ92bercG5DWEBTDVd3I_UYuNGzF20q6S2COP__Z-uqkhhw8nATd3k6GaIfCqxjcOih_juHBBoM1ON74vpKxCl1sJxnEYbZfkf6FO_xuGaJD7-J7OzD8tsSmFf4jR1TqZFZzrPEc9bkd2bPr8pwOCdDp8Yy0EVauKDvtIXsvzFollOR0rUvZol1sIsQU0gVpFpZyIqYqG6C_qQfXmr5DQwXTsQyifKjXLSj2MbPs6FKLYqu7mj0NhxUVcK5EQh5Vl5x5VHvYGRwgWJL078oXVBKGnQnr05EDHcCiW-6Gris2mHBYdcNmuhJ1UwNekeumBc0S6_33yK-U8OGYLMpR6HnLooyFmtmnOBIIQIkzWfWUNM7nIdWWcPmozJcBZ8iyawE0Cxgz5Xf56hPi-YZda0d1Xu387GA8PBkEPVct1yo5nh2bmVfRH6z0zWzhN-vbFcIHsfYv776DDLKQdSH0Sn-8bHdvPLPd2QieBkgS6wfvTcKMeBA6PwwNBl0Xqds6vQPpSZe6cYyplNuJoY05VLd8tLZMy_bR8Dmf1kArQaSquBzw2eDCfJAazjA4wTnkbccr38k7eM%3D" let resp = cli.idCardWithURL(url, "front"); console.log(resp); } catch (e) { console.log("error: ", e) } 其其中,ocr.newClient("OCR_Test")中,“OCR_Test”为连接器的名称,“url”取值是图片的URL, “front”表示识别的是身份证正面。 单击脚本编辑器页面上方的,保存脚本。 保存成功后,单击,运行脚本。 不用设置输入参数,直接单击测试窗口右上角的。 在输出参数页签,检查是否识别出身份证上文字信息。 识别出身份证上的文字信息,表明成功调用连接器。 单击脚本编辑器页面上方的,启用脚本。
  • 背景信息 文字识别 (Optical Character Recognition,简称OCR)以开放API的方式提供给用户,用户使用Python、Java等编程语言调用OCR服务API将图片识别成文字,帮助用户自动采集关键数据,打造智能化业务系统,提升业务效率。 在AstroZero中,通过应用与华为OCR(Optical Character Recognition)对接,可实现图片或扫描件中文字识别功能。
  • 在脚本中调用连接器 在脚本中,通过调用连接器,实现调用 ModelArts Pro 的接口。 参考创建空白AstroZero脚本中操作,创建一个空白脚本。 在脚本编辑器中,输入如下代码。 import * as modelartspro from 'modelartspro'; export class Input { @action.param({ type: "String", required: false, description: "the image url" }) url: string; @action.param({ type: "String", required: false, description: "the base64 coded image" }) image: string; @action.param({ type: "Boolean", required: false, description: "" }) isMultiTemplate: boolean @action.param({ type: "String", required: false, description: "" }) modelId: string } export class Output { @action.param({ type: "string" }) result: string; } export class testModelartsPro { @action.method({ input: "Input", output: "Output", description: "modelartspro test case" }) run(input: Input): void { // 填写实例化的modelartspro连接器名称 let client = modelartspro.newClient("custom_defined_ocr") let result = null result = client.customOCRWithURL(input.url, input.isMultiTemplate, input.modelId); console.log(result) } } 代码modelartspro.newClient("custom_defined_ocr")中“custom_defined_ocr”为连接器的名称,如果连接器名称带有命名空间前缀,代码中也要携带。 单击脚本编辑器页面上方的,保存脚本。 保存成功后,单击,运行脚本。 在页面底部“输入参数”中,设置输入请求参数,单击测试窗口右上角的。 { "url": "https://XXXXXXXX/testModelArtsPro.jpg", "isMultiTemplate": true, "modelId": "0b7f0f28-27e2-11ec-8f30-0255ac100057" } 其中,“url”为图片的URL。 在日志页签,可查看到识别结果,表示脚本执行成功。 图5 查看日志 单击脚本编辑器页面上方的,启用脚本。
  • 前提条件 使用ModelArts Pro过程中,ModelArts Pro需要访问ModelArts服务的云资源。请先申请开通华为云ModelArts服务,具体操作请参见准备工作。 AstroZero对接ModelArts Pro,使用ModelArts Pro提供的文字识别套件、 自然语言处理 套件提供的能力。因此需要先申请文字识别套件和自然语言处理套件,具体操作请参见申请行业套件。 已参考获取AK/SK中操作,获取AK(Access Key ID)、SK(Secret Access Key),即访问密钥对。 本节场景是对行程码图片进行识别,需要在ModelArts Pro上创建并部署上线用于对行程码进行识别的模型。由于各省份行程码可能不一致,所以部署的为多模板,具体操作请参见使用多模板工作流开发应用。
  • 添加应用依赖关系 如果当前应用引用了其他应用中的元素,此时需要通过添加依赖关系将被引用应用添加到当前应用中,以确保应用正常运行。 参考登录AstroZero新版应用设计器中操作,登录新版应用设计器。 在左侧导航栏中,选择“设置”,进入应用设置页面。 选择“依赖与开放”,单击“添加依赖”,进入添加应用依赖关系页面。 图1 添加应用依赖关系 选择需要添加依赖关系的一个或多个应用,单击“确认”。 图2 选择需要添加依赖关系的应用 (可选)在应用依赖页签,单击已添加应用后的,可查看依赖的应用。 (可选)在应用依赖页签,单击已添加应用后的,可删除依赖的应用。 如果当前应用添加了与另一个应用的依赖关系,但实际上并没有引用该应用内的任何元素,则可以通过此按钮,一次性将这些虚假依赖关系删除掉。
  • 前提条件 AstroZero提供了默认对接的ROMA Connect服务器,也支持对接通过华为云开通的自有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”。 已参考设置应用中对接的ROMA Connect信息中操作,在AstroZero中设置ROMA Connect实例信息。
  • 通过REST接口调用连接器 可以通过调用REST接口,完成表2中功能。如何调用接口,请参见连接器API。 表2 调用连接器 接口 说明 上传文件 将本地文件上传到存储中。使用该API上传文件,默认只会上传到连接器下配置的第一个桶中。待上传的文件可以是任何类型,如文本文件、图片、视频等。 下载文件 从存储中下载文件。 删除文件 从存储中删除无用的文件。 删除目录 从存储中删除某目录。如果目录下不为空,删除目录的同时也会删除该目录下文件。 列举目录下文件 列举存储中某目录下文件。 分段上传 对于较大文件上传,可以切分成段上传。用户可以在如下的应用场景内(但不仅限于此),使用分段上传的模式: 上传超过100MB大小的文件。 网络条件较差,和OBS等存储服务端之间的链接经常断开。 上传前无法确定将要上传文件的大小。 获取endpoint,即文件存储地址的前缀 endpoint为文件存储地址的前缀,该前缀加上传对象的路径,是实际访问对象的全路径。 分享Token 获取临时Token,用户只要使用该临时Token即可访问文件,不用再使用access-token进行鉴权。
  • 前提条件 使用OBS前,需要拥有一个华为账号或一个可用于访问OBS的IAM用户,即先注册华为云并实名认证、创建IAM用户、充值以及购买资源包,具体操作请参见使用OBS前需要做的准备工作。 获取AK(Access Key ID)、SK(Secret Access Key),即访问密钥对,具体操作请参见获取AK/SK。 已在华为OBS上,创建存储桶(例如“bing.testonly.1”),用于后续存储对象使用,具体操作请参见如何创建桶,请记录创建桶时选择的区域。
  • 在脚本中调用连接器 在脚本中,调用连接器,实现调用ModelArts的接口。 参考创建空白AstroZero脚本中操作,创建一个空白脚本。 在脚本编辑器中,输入如下代码。 import * as modelarts from 'modelarts'; export class Input { @action.param({ type: "String", required: false, description: "the image url" }) url: string; @action.param({ type: "String", required: false, description: "the base64 coded image" }) image: string; @action.param({ type: "String", required: false, description: "" }) apigCode: string @action.param({ type: "String", required: false, description: "" }) modelId: string } export class Output { @action.param({ type: "string" }) result: string; } export class testModelarts { @action.method({ input: "Input", output: "Output", description: "modelartspro test case" }) run(input: Input): void { // 填写实例化的modelartspro连接器名称 let client = modelarts.newClient("testArts") let result = null result = client.modelArtsWithURL(input.url, input.apigCode, input.modelId); console.log(result) return result } } 其中,代码modelarts.newClient("testArts")中“testArts”为连接器的名称。如果连接器名称中带有命名空间前缀,代码中也需要携带。 单击脚本编辑器页面上方的,保存脚本。 保存成功后,单击,运行脚本。 在页面底部“输入参数”中,设置输入请求参数,单击测试窗口右上角的。 { "url": "https://XXXXXXXXX/testmodelarts.jpg", "apigCode": "bec274062225485b95fbcd4d6e8f128a", "modelId": "5ecac550-eefe-4437-9767-57eca07fa91f" } 其中,“url”请设置为图片的URL。 在输出参数页签,可查看到识别的结果。 { "predicted_label": "roses", "scores": [ [ "roses", "0.947" ], [ "daisy", "0.050" ], [ "tulips", "0.002" ], [ "dandelion", "0.000" ], [ "sunflowers", "0.000" ] ] } 单击脚本编辑器页面上方的,启用脚本。
  • 在脚本中调用连接器 在脚本中,调用已创建的连接器,实现用户登录微信公众号。 在微信客户端的H5页面,发起AJAX请求,用于获取code。 请求示例如下: https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 若提示“该链接无法访问”,请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限。 参考创建空白AstroZero脚本中操作,创建一个空白脚本。 在脚本编辑器中,输入如下代码。 import * as wechat from 'wechat'; let connectorID = "whchat" let code = "xxxxx" let client = wechat.NewClient(connectorID) let res = client.GetAccessToken(code) console.log(res) 其中,“connectorID”为连接器的名称,“code”为1获取的code取值。 单击脚本编辑器页面上方的,保存脚本。 保存成功后,单击,执行脚本。 不用输入请求报文,直接单击测试窗口右上角的。 在日志页签,查看到已获取“access_token”和“openid”,可用于登录微信公众号。 { "access_token":"AC CES S_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE" }
  • 为对象添加清理任务 为对象预置初始的清理规则,来自动删除已过期的数据记录。例如,当对象的创建时间字段,距离当前时间超过12个月,且状态字段等于失效,则将对应的数据删除。此处配置的清理规则,会包含在应用包中,被安装到目标运行环境。 在应用设计器的左侧导航栏中,选择“数据”。 将鼠标放在已创建的对象上,单击,选择“编辑”,进入对象设计器。 单击对象中的,进入对象详情页。 在“清理”页签中,单击“启动任务清单”。 在任务清单中,指定根据哪个日期字段来进行清理。 仅支持选择当前对象的,所有日期类型的字段。 图10 指定字段 指定待存留时间。 当该记录的指定字段值超过了该期限后,清理任务自动处理该记录。 单击“新增”,指定记录匹配条件,仅清除符合条件的记录。 图11 指定匹配条件 设置清理动作,单击“保存”。 选择动作为删除任务,即清理任务直接删除符合条件的记录。 图12 清理动作 (可选)管理对象的清理任务。 重置清理规则 在“清理”页签,单击已创建清理任务中的“重置”,即可重置清理规则。 关闭清理任务 在“清理”页签,单击已创建清理任务中的“关闭清理任务”,即可关闭清理任务。
  • 为对象添加数据 添加数据前,请确保已参考为对象添加字段中操作,添加自定义字段。此处以创建年龄(age)、性别(sex)字段为例(系统已预置name字段),添加一条简单的数据记录。您也可以参考批量导入对象数据中操作,为对象批量添加数据。 在应用设计器的左侧导航栏中,选择“数据”。 将鼠标放在已创建的对象上,单击,选择“编辑”,进入对象设计器。 单击对象中的,进入对象详情页。 在“数据”页签,单击“添加”。 在下方表格中,按要求录入所需数据,录入完成后数据自动保存。 图13 录入数据后效果
  • 设置对象出厂数据 出厂数据是指在开发期间就已经确定好的配置数据,会在应用包中携带,在部署应用时会预装到环境中。通过设置出厂数据,可帮助开发团队简单易用的准备实例化数据,缩短应用交付的端到端时间。 在应用设计器的左侧导航栏中,选择“数据”。 将鼠标放在已创建的对象上,单击,选择“编辑”,进入对象设计器。 单击对象中的,进入对象详情页。 在“数据”页签,单击“设置出厂数据”。 设置出厂数据,单击“保存”。 请选择要包含的出厂数据:应用包中,最多允许总共包含1万条出厂数据。 全部选择:当前对象里的所有数据,都包含在应用包中。选择全部后,打包时会包含对象当前所有的记录。 手工选择:逐条勾选对象里的数据,打包时会包含这些已选择的记录。 请选择出厂数据的安装策略。 增量数据:对象里包含的出厂数据,会增量添加到环境中,仅添加新记录,环境上已有重复记录则跳过。例如,设备管理应用中,增加了几种设备规格,需要添加到环境中。 如果环境中已存在相同ID的数据,则看是否是出厂数据。如果是,则看是否被更新过。只有未更新过的出厂数据会被覆盖。 如果环境中不存在此数据,则作为增量的新数据写入到环境中。 固定数据:对象里包含的出厂数据是应用本身的一部分,载入环境后这些数据不可被更改、删除。每次应用升级时,会用应用包里新的出厂数据直接覆盖环境上的数据。例如,客户管理应用中预置了个人客户、组织客户两种客户类型数据。 环境中该对象仍然可以插入其他业务数据。 应用升级时,固定数据会全部替换成新的出厂数据。例如,环境上已有A、B、C三条固定数据,新版本应用包中包含A、B、D三条固定数据。升级后,C会被删除,D会被新增。 样例数据:对象里包含的出厂数据,仅在应用首次安装到环境时载入,后续应用升级时不再更新。该策略用来支撑应用在各种演示环境上的安装,如调查问卷应用首次安装时,携带了样例问卷。 字段设置为出厂数据后,在编辑修改出厂数据时,界面会提示:“此数据为出厂数据,请谨慎修改”。 图14 修改出厂数据提示 开发应用时,如果修改了某个对象的出厂数据安装策略。在应用升级时,会以新的安装策略为准,即对包含在出厂数据里的记录ID做变更,变更规则如表6所示。 表6 变更规则 安装策略 样例数据(新) 固定数据(新) 增量数据(新) 样例数据(旧) - 如果环境上之前是样例数据,不管是否修改过,升级时根据ID完全覆盖为固定数据。如果出厂数据中,不包含该ID,则不处理。 如果环境上之前是样例数据,不管是否修改过,升级时根据ID完全覆盖为增量数据。如果出厂数据中,不包含该ID,则不处理。 固定数据(旧) 因为是升级,所以不会写入新样例数据。而出厂数据已经不是固定数据了,因此直接删除之前的全部固定数据。 - 环境上数据如果在出厂数据中,则覆盖为增量数据且状态为未修改。如果不在出厂数据中,则直接删除。 增量数据(旧) 因为是升级,所以不会写入新样例数据,仅清除该环境数据的策略。 环境上数据如果出现在出厂数据中,则覆盖为固定数据。如果不在出厂数据中,则仅清除该环境数据的策略。 - (可选)如果需要修改出厂数据,再次单击“设置出厂数据”,在右侧属性面板中进行修改即可。 通过“手动选择”,取消部分数据的勾选。 修改“安装策略”,重新选定策略即可。 单击属性面板中的“清除”,表示取消全部数据的出厂设置。 应用打包。 导出的安装包,默认包含出厂数据。 图15 导出安装包 导出的补丁包,出厂数据在打包过程中选择。 图16 导出补丁包 图17 添加出厂数据
  • 为对象添加索引 对象创建完成后,支持为对象添加索引。一个实体上最多允许定义10个自定义索引。创建索引的好处在于,通过唯一性索引(unique)可确保数据的唯一性、加快数据的检索速度、加快表之间的连接、减少分组和排序时间等。 在应用设计器的左侧导航栏中,选择“数据”。 将鼠标放在已创建的对象上,单击,选择“编辑”,进入对象设计器。 在对象设计器中,单击对象中的,进入对象详情页。 在“索引”页签,单击“添加”。 设置索引信息,单击“保存”。 图8 设置索引信息 表4 添加索引参数说明 参数 说明 显示名称 新建索引的名称,用于在页面显示,创建后可修改。 取值范围:1~63个字符。 唯一标识 新建索引的标识,是索引在系统中的唯一标识,创建后不支持修改。命名要求如下: 取值范围:1~63个字符。 必须以英文字母开头,只能由英文字母,数字和下划线组成,且不能以下划线结尾。 索引类型 选择新建索引的类型,支持普通索引和唯一索引。 普通:允许被索引的数据列包含重复的值,可按需选择绑定的字段数。 唯一:被索引的数据列不包含重复值,保证数据记录的唯一性,必须绑定两个字段。 默认值:普通。 字段 索引关联的数据字段,要求如下: 文本、密文、文本区、复选框、选项列表(多项选择)、公式、多语言和附件字段类型不支持创建索引。 使用关联字段(查找关系与主从关系)创建索引时,必须绑定两个及以上字段。 (可选)管理对象中的索引。 编辑已添加的索引 在“索引”页签,选中已添加的索引。 在右侧的索引属性面板中,根据表4中的参数说明修改索引。 删除已添加的索引 在“索引”页签,单击索引列表中的索引。 在右侧的索引属性面板中,单击“删除索引”。 在弹出的删除确认框中,单击“删除”,即可删除该索引。 索引删除后不可恢复,请谨慎操作。
  • 为对象添加验证规则 对象创建后,支持为对象添加校验规则。通过添加校验规则,可确保数据的正确性和有效性。例如,某个销售信息的对象,其中字段A为销售收入,字段B为销售利润,可以增加“字段B的值不能大于字段A”的规则进行校验。 在应用设计器的左侧导航栏中,选择“数据”。 将鼠标放在已创建的对象上,单击,选择“编辑”,进入对象设计器。 单击对象中的,进入对象详情页。 在“验证”页签,单击“添加”,进入添加验证页面。 设置验证的基本信息,单击“保存”。 图9 添加验证 表5 添加校验规则参数说明 参数 说明 显示名称 新建校验规则的名称,用于在页面显示,创建后可修改。 取值范围:1~63个字符。 唯一标识 新建校验规则的标识,是验证规则在系统中的唯一标识,创建后不支持修改。命名要求如下: 取值范围:1~63个字符。 必须以英文字母开头,只能由英文字母,数字和下划线组成,且不能以下划线结尾。 (可选)管理对象中的验证规则。 编辑验证规则 在“验证”页签,单击验证列表中的验证。 在右侧的验证属性面板中,修改验证规则。 显示名称:修改验证在界面的展示名称。 唯一标识:验证规则的唯一标识,不支持修改。 描述:验证规则的描述信息。 是否启用:是否使用该验证规则。 验证公式:设置验证规则的公式。在输入框中,可下拉选择元素,选择后自动插入到当前光标位置。 设置对象验证规则的公式时,在输入框中,可下拉选择元素,鼠标放在对应元素上有相应验证公式的描述说明。 错误信息:设置错误信息,提示验证失败的原因。 修改完成后,单击“保存”。 删除验证规则 在“验证”页签,单击验证列表中的验证。 在右侧的验证属性面板中,单击“删除验证”。 在弹出的删除确认框中,单击“删除”,即可删除该验证。 验证删除后不可恢复,请谨慎操作。
  • 为对象添加字段 对象创建完成后,支持为对象添加字段、编辑字段和删除字段等。您也可以参照批量添加对象字段中操作,为对象批量添加字段。 在应用设计器的左侧导航栏中,选择“数据”。 将鼠标放在已创建的对象上,单击,选择“编辑”,进入对象设计器。 在对象设计器中,单击对象中的。 您也可以单击,直接进入图6页面,为对象添加字段。 图6 为对象添加字段 在对象详情页面,单击“添加”,进入添加字段页面。 设置字段的基本信息,单击“确认”。 图7 添加字段 表2 添加字段参数说明 参数 说明 显示名称 请输入字段的名称,用于在页面显示,创建后可修改。 取值范围:1~63个字符。 唯一标识 字段在系统中的唯一标识,创建后不支持修改。命名要求如下: 长度不能超过63个字符,包括前缀命名空间的长度。 必须以英文字母开头,只能由英文字母,数字和单下划线组成,且不能以下划线结尾。 字段类型 单击,在弹出的页面中,选择新建字段的类型。 文本:允许用户输入任何字母和数字的组合,最多可输入255个字符。 密文:允许用户输入任何字母和数字的组合,并且以加密格式存储,最多可输入111个字符。 文本区:允许用户输入多行文本,最多可输入1024K字符。 数字:允许用户输入任何数字,会删除前置零。 百分比:允许用户输入百分比数字(例如,"10"),并自动向数字添加百分号。 电话:允许用户输入任何电话号码,系统会自动将其转换为电话号码格式。 币种金额:允许用户输入美元或其他币种金额,并将字段自动转换为币种金额格式。此功能在将数据导出到Excel或其它电子表格时非常有用。 日期:允许用户输入日期或从弹出式日历中选择日期。 日期/时间:允许用户输入日期和时间,或从弹出式日历中选择日期。当用户单击弹出式日历中的某个日期后,该日期和当前时间将输入到“日期/时间”字段。 电子邮件:允许用户输入电子邮件地址,对其进行验证以确保格式正确。如果对于一个联系人和潜在客户指定了此字段,则用户单击“发送电子邮件”时可以选择地址。自定义电子邮件地址无法用于批量电子邮件。 复选框:允许用户选择“真”(选取)或“假”(不选取)值。 选项列表:允许用户从定义的列表中选择值。 选项列表(多项选择):允许用户从定义的列表中选择多个值。 URL:允许用户输入任何有效的网址。当用户单击该字段时,该 URL 将在单独的浏览器窗口中打开。 查找关系:创建一个将此对象链接到另一对象的关系。 自动编号:使用用户定义的格式生成序列编号。该编号对于每条新记录会自动递增。 公式:使用用户定义的公式表达式生成只读字段。任何表达式中使用的源字段有所更改,本字段值将更新。 主从关系类型:在一个对象和另一个对象之间创建一种特殊类型的父子关系。详细记录的所有权是由主记录决定的。当用户删除主记录时,所有详细记录都将被删除。 多语言:允许用户从自定义资源表中选择多种语言内容。 附件:允许用户保存多个上传文件的地址,支持图片、文档等类型。 数据长度 根据实际需要,输入字段的长度。“字段类型”设置为“数字”时,才会显示该参数。 小数位数 根据实际需要,输入整数后的小数点位数。“字段类型”设置为“数字”时,才会显示该参数。 描述 请根据实际需要,输入字段的描述信息。 取值范围:1~255个字符。 (可选)管理对象中的字段。 编辑已添加的字段 在对象的“字段”页签中,单击已添加的字段。 在右侧字段属性中,修改字段属性。 不同类型的字段,此处展示的内容所有不同。此处以数字类型的字段为例,进行介绍。 表3 编辑字段参数说明 参数 说明 显示名称 继承5中新建字段时输入的名称,支持再次编辑。 唯一标识 继承5中新建字段时输入的标识,不支持编辑。 字段类型 继承5中新建字段时指定的字段类型,不支持编辑。 字段帮助 请根据需要,在输入框中输入该字段提示的描述信息。 描述 请根据需要,在输入框中输入对该字段的描述信息。 字段设置 是否唯一:勾选,表示该字段唯一。 是否必填:勾选,表示该字段为必填字段。 是否可搜:是否能在前端开发者控制台或脚本中,使用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”为不同值,则表示大小写敏感。 数据长度 继承5中新建字段时指定的字符长度,支持修改。字段长度不支持缩短,例如新建字段时设置的数据长度设置为18,此处输入的值需大于18。 小数点后位数 继承5中新建字段时指定的小数点后位数,支持修改。小数位数不支持缩短,例如新建字段时设置的小数位数为2,此处输入的值需大于2。 默认值 请根据需要,在输入框中输入该字段的默认值。默认值长度需小于等于“数据长度”。 设置完成后,单击“保存”。 隐藏系统预置的标准字段。 在“字段”页签中,单击右上角的,可选择隐藏系统预置的标准字段,默认不隐藏。 删除已添加的字段。 只支持删除自定义字段,系统预置字段不支持删除。字段删除后不可恢复,请谨慎操作。 在“字段”页签中,选中待删除的字段。 在右侧字段属性设置中,单击“删除字段”。 在弹出的确认框中,单击“删除”,即可删除该字段。
  • 创建自定义对象 将鼠标放在(可选)创建对象存放目录中创建的目录上,单击,进入创建新对象页面。 您也可以直接单击对象后的,进入创建新对象页面。 图4 新建对象 设置对象基本信息,单击“确定”。 图5 设置对象基本信息 表1 新建对象参数说明 参数 说明 对象名称 新建对象的名称,用于在页面显示,创建后可修改。 取值范围:1~80个字符。 唯一标识 新建对象的标识,是对象在系统中的唯一标识,创建后不支持修改。命名要求如下: 长度不能超过63个字符,包括前缀命名空间的长度。 必须以英文字母开头,只能由英文字母,数字和下划线组成,且不能以下划线结尾。
  • 在脚本中调用连接器 在脚本中,调用连接器实现调用IEF的接口。 参考创建空白AstroZero脚本中操作,创建一个空白脚本。 在脚本编辑器中,输入如下代码。 import { Decimal } from 'decimal'; import { Error } from 'error'; import * as ief from 'ief'; export class Input { @action.param({ type: "String", required: true, description: "type" }) project_id: string; // @action.param({ type: "String", required: true, description: "the operation value 2" }) // node_id: string; } export class Output { @action.param({ type: "Object", required: true }) result: Object; } export class Calculator { @action.method({ input: "Input", output: "Output", description: "do a operation" }) run(input: Input): Output { let output = new Output(); let cli = ief.newClient("ief_test"); output.result = cli.getProjectNode(input.project_id); //console.log(output.result); return output; } } 其中,ief.newClient("ief_test")中的“ief_test”为连接器的名称。 单击脚本编辑器页面上方的,保存脚本。 保存成功后,单击,运行脚本。 在输入参数页签,输入请求参数的项目ID,单击测试窗口右上角的。 { "project_id":"XXXXXXXXXXX" } 在输出参数页签,显示出边缘节点列表,表示执行事件成功。 单击脚本编辑器页面上方的,启用脚本。
  • 前台页面常用调测方法 在高级页面的开发中,常借助浏览器内置的 开发者工具 对样式或功能问题进行定位和分析。下面以Chrome浏览器为例,简单介绍浏览器开发者工具中常用的调测方法。在Chrome浏览器中,按下“F12”或者“Ctrl + Shift + I”,开启开发者工具。 DOM和 CSS 样式调试 在Elements面板,可以自由的操作DOM和 CS S,来迭代布局和设计页面。在开发者工具打开的状态下,使用左上角的箭头按钮,可点选页面元素,查看该元素DOM和CSS等。也可以在Elements页签下,修改页面上的元素的DOM标签或CSS样式(修改立即生效),实时查看修改后效果。 图1 Elements页签查看调试DOM和CSS样式 打印日志信息 在Console页签下,可使用控制台打印日志信息。在Sources页签下,调试JavaScript时常用方法是将多个console.log()语句插入代码,重新加载页面后,可以在Console页签中,查看到打印的消息。Sources页签主要包括三个部分,左侧为页面请求文件列表,中间为选择文件的文件内容,右侧为JavaScript调试窗格。 想要在JavaScript中打印日志,需要找到相应文件,查找相关代码,然后插入console.log()。 图2 Sources页签布局 调用低代码平台API 在Console页签下,可使用控制台调用低代码平台提供的API,以获取相关信息进行调试。 图3 调用低代码平台API 断点调试 在Sources页签下,可以设置断点来调试JavaScript。使用断点,DevTools会在暂停时及时显示所有变量值。Chrome开发者工具,提供了代码行断点、条件代码行断点、DOM断点和事件侦听断点等多种断点,请根据调测的实际需求选择合适的断点。断点的类型和使用场景,如表1所示。 表1 Chrome断点类型及使用场景 断点类型 使用场景 代码行 在确切的代码区域中。 条件代码行 在确切的代码区域中,且仅当其他一些条件成立时。 DOM 在更改或移除特定DOM节点或其子级的代码中。 XHR 当XHR网址包含字符串模式时。 事件 在触发点击等事件后运行的代码中。 侦听器 在引发已捕获或未捕获异常的代码行中。 异常函数 任何时候调用特定函数时。 代码行断点调试是最为常见的断点调试方法, 设置代码行断点的方法是找到请求文件,在Sources左侧请求文件列表按照目录查找,也可以借助“Ctrl+F”搜索关键词找到相关文件。在Sources中间文件内容区域,找到要设置断点的代码行,单击行号,出现蓝色图标,这意味着这行代码上有一个代码行断点。如图4所示,在global_BubbleChartWidget.js文件的49行代码处,设置了一个代码行断点。 刷新此网页,脚本运行始终会在执行此行代码之前暂停,可单击右侧调试窗格的按钮进行单步调试,或者单击调试窗格的按钮继续执行脚本。 图4 代码行断点示例 多终端测试 在进行页面自适应测试时,可采用Chrome开发者工具提供的模拟移动设备的功能。借助此功能,可无实物快速对网页进行多个终端测试。 单击,可启动模拟移动设备界面,设备工具栏在打开时默认处于自适应视口模式,可以将视口大小调整为所需的任何尺寸,另外还可以选择多种终端型号。 图5 模拟移动设备
共100000条