云服务器内容精选

  • 规则10:SELECT语句中谨慎使用order by SELECT语句中,请谨慎使用order by。如果需要使用order by,请为排序字段增加索引,以提高查询效率。如果无法增加索引,需要关注是否存在查询性能低下的风险。 错误代码示例 import * as db from 'db'; let errorDemo = db.sql().exec("select object_name from object_demo where object_id = 'A' Orde by createdDate") 表“object_demo”中的“createdDate”,并没有创建索引。 正确代码示例 import * as db from 'db'; let correctDemo = db.sql().exec("select object_name from object_demo where id = 'A' Order by createdDate") “object_demo”中的“createdDate”,创建了索引。
  • 规则8:SELECT语句中拼接的参数值请谨慎使用入参变量 SELECT语句中,拼接的参数值请谨慎使用入参变量,以免引起SQL注入的风险。 错误代码示例 import * as db from 'db'; let errorDemo = "select id,name from object_demo where id = "; errorDemo += input.parameter let errorDemoResult = db.sql().exec(errorDemo) 其中,“input.parameter”为脚本入参。 正确代码示例 import * as db from 'db'; let correctDemo = "select id,name from object_demo where id = ?"; let correctDemoResult = db.sql().exec(correctDemo, { params: [input.parameter] }) 其中,“input.parameter”为脚本入参。
  • 规则7:SELECT语句中严禁使用“select from...”形式查询语句 严禁使用“select ...”形式查询语句,请指出select的具体字段。 错误代码示例 import * as db from 'db'; let errorDemo = db.sql().exec("select from object_demo where object_name = 'test'") 正确代码示例 import * as db from 'db'; let correctDemo = db.sql().exec("select id, object_type from object_demo where object_name = 'test'")
  • 规则4:SELECT语句中查询字段不在表的索引库中 如果SELECT语句where条件中,查询字段并未创建索引,请判断该字段是否需要创建索引,以提高代码查询效率。 错误代码示例 import * as db from 'db'; let errorDemo = db.sql().exec("select object_name from object_demo where object_id = ?") 表“object_demo”中的“object_id”并没有创建索引。 正确代码示例 import * as db from 'db'; let correctDemo = db.sql().exec("select object_name from object_demo where id = ?") 表“object_demo”中的“id”创建了索引。
  • 规则6:SELECT语句中聚集函数必须增加别名 SELECT语句中,聚合函数必须使用别名方式存储查询结果,以免因聚合函数返回的结果不一致,导致存在兼容性问题。 错误代码示例 import * as db from 'db'; let errorDemo = db.sql().exec("select count(*) from object_demo where object_name = 'A'") 正确代码示例 import * as db from 'db'; let correctDemo = db.sql().exec("select count(*) as count from object_demo where object_name = 'A'") 推荐代码示例 ***聚合函数示例 **** select count(*) as count_res, select max(*) as max_res, select min(*) as min_res, select avg(*) as avg_res, select sum(*) as sum_res
  • 操作场景 华为账号是资源的归属以及使用计费的主体,对其所拥有的资源具有完全控制权限,可以访问所有云服务。为了保证您的账号安全,建议您创建一个 IAM 用户并赋予Astro Zero Instance ManageAccess和Astro Zero IAM User QueryAccess系统策略。授予Astro Zero Instance ManageAccess和Astro Zero IAM User QueryAccess策略的IAM用户,可以购买AstroZero实例,也可以将同一个华为账号下的其他IAM用户添加到AstroZero,并赋予其管理员权限或开发者权限。 图1 给用户授予AstroZero权限流程
  • 购买AstroZero专享版实例 提交工单申请开通AstroZero专享版实例。 专享版实例需要单独付费购买,购买专享版实例前,需要先提交工单申请开通专享版。 开通后,进入购买Astro轻应用专享版实例页面。 在购买AstroZero实例页面,设置实例参数,单击“立即购买”。 图9 购买AstroZero专项版实例 表3 购买专享版参数说明 参数 说明 实例版本 待购买实例的规格,请选择“专享版”。 用户数 购买的AstroZero实例中最多可以添加多少个用户,此处的用户数包括业务用户数。 CPU架构 新建AstroZero实例的CPU架构,支持x86和Arm。 可用区 新建AstroZero实例,所在的可用区。可用区是在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。如果需要提高实例的高可靠性,建议将实例创建在不同的可用区。 实例名称 新建实例的名称,同一账号下实例不可重名,创建后不可修改。命名要求如下: 长度为4~64个字符。 必须以英文字母开头,只能英文字母、数字或下划线组成。 描述 在输入框中,输入新建实例的描述信息。 取值范围:1~255个字符。 虚拟私有云 新建实例所在的虚拟私有云,实例创建后不可更改。 安全组 新建实例所在的安全组,实例创建后不可更改。 公网出口 是否开启服务器访问外部公网/局域网内大网网络,网络环境与云平台EIP(弹性公网IP)网络环境一致,当AstroZero需要访问外部邮箱服务或其它第三方网站等需求时,建议开启。 购买时长 设置实例的购买时长,最短1个月,最长3年。 确认规格无误后,单击“去支付”。 支付完成后,单击“返回Astro轻应用控制台”,即可进入AstroZero服务控制台。 AstroZero实例创建成功后,单击专享版实例中的“管理运行环境”,即可进入独立的运行环境。
  • 操作场景 AstroZero免费版可使用的资源有限,标准版、专业版和专享版更适用于个人或企业的商用开发。 标准版:适用于零代码应用开发场景,开发者不需要有代码开发经验,企业自用首选。如何购买标准版实例以及如何使用AstroZero零代码能力开发应用,请参见《用户指南(零代码)》。 专业版:专业版在标准版基础上提供了低代码应用运行环境(多租户共享运行环境),且提供了更多功能和资源,适用于专业开发者。 专享版:专享版提供了物理隔离的运行环境,运行环境实例发放到租户虚拟私有云中。专享版需要提交工单申请开通,否则,您将无法购买专享版。 AstroZero专业版和专享版实例支持回退到免费版,回退后不支持访问运行环境。 购买AstroZero标准版和专业版实例时,会同步创建一个Astro工作流免费基础版实例。Astro工作流(Astro Flow,简称AstroFlow)可帮助开发者快速构建业务流程及自动化工作流,轻松实现人财物事的调、转、入、离、审、评和批等任务的数字化需求。更多关于Astro工作流的介绍,请参见Astro工作流 AstroFlow。
  • 报表概述 AstroZero对内部数据提供了一种汇总方式的视图,即为报表。利用报表功能,可以让数据进行可视化的展示,并进行分析与洞察,更好地了解业务现存的问题与机遇。 AstroZero提供报表构建器,让您完成报表的开发。报表构建器由如下两个主要模块组成。 报表 报表定义了报表数据来源于哪些对象,以及对象的连接关系,支持创建一个带有多个对象连接起来的汇总报表,不必局限于单个对象。同时支持对已有的原始记录数据,进行归类、筛选、分组、公式计算以及数据汇总。 仪表板 仪表板是多张报表的可视化集合。通过仪表板,可以对一个主题对多张报表进行汇总,并以图表化的方式呈现。 报表构建器中的报表和仪表板既可以单独使用,也可以联合使用。仪表板则提供了丰富的图表功能,如下图所示。仪表板能够让用户高效地查看报表数据,有效洞察出当前系统存在的问题和机遇。 图1 仪表盘 在实际的应用开发过程中,需要先利用报表Widget创建一个报表展示页面,再调用本章节介绍的AstroZero创建报表或仪表板。 父主题: 报表和仪表板
  • 操作场景 添加的IAM开发者账号,必须是从华为云IAM同步过来的。用户的个数受业务阈值限制,如何查看用户个数,请参见查看AstroZero账号的业务阈值。 AstroZero中的开发环境、沙箱环境和运行环境是三个独立的环境,在某个环境上添加的用户不能在其他环境上使用,需要重新添加。例如,在开发环境中添加了用户A,用户A只能登录开发环境,无法登录运行环境或沙箱环境。如果用户A需要登录运行环境或沙箱环境,请在运行环境和沙箱环境中执行添加用户的操作。
  • 在脚本中调用连接器 在脚本中,调用已创建的连接器,实现与SMTP的对接。 参考创建空白AstroZero脚本中操作,创建一个空白脚本。 在脚本编辑器中,输入如下代码。 // 导入连接器 import * as connector from 'connector'; //新建SMTP邮件连接器,第一个参数固定是emailsmtp,第二个参数是连接器的名称 let client = connector.newClient("emailsmtp","命名空间__smtp01"); //构建请求消息头,包括收件人地址、邮件主题、邮件正文(主题和正文不能同时为空) //按内容发送 let req ={"address":"test@example.com","subject":"SMTP功能验证-事件","body":"使用SMTP发送邮件"}; //按模板发送,如果有template模板参数,则主题和正文配置无效,按邮件模板中的内容发送 //let req={"address":"test@example.com","template":"smtptt1."} //发送邮件,其中第一个参数不用填写,第二个参数为消息体 let resp = client.invoke("",req); 其中,connector.newClient中“命名空间__smtp01”为连接器的名称,“address”为收件人,“subject”为主题,“body”为邮件内容。 单击脚本编辑器页面上方的,保存脚本。 保存成功后,单击,执行脚本。 2中已设置入参,故此处不需要再设置,直接单击测试窗口右上角的。 检查收件人是否收到邮件。 收到邮件,表示成功调用连接器,如图5。 图5 接收邮件内容 单击脚本编辑器页面上方的,启用脚本。
  • 了解AstroZero中预置权限 在AstroZero中,通过权限配置(Profile)来控制用户、业务用户等的操作权限。AstroZero当前预置了如下几种Profile标准配置文件: System Administrator Profile:系统管理员,拥有AstroZero全部权限。 Developer Profile:开发者权限,一般给用户使用,拥有此权限的用户可以在AstroZero进行开发,例如新增一个对象、为对象增加一个字段、新增一个流程等。 Portal User Profile:业务用户的权限,一般给业务用户使用,拥有此权限的业务用户可以登录和使用AstroZero中创建的应用。 Anonymous User Profile:游客用户的访问权限,无需登录即可访问AstroZero中创建的应用。 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中用户那些事。 将IAM用户添加到AstroZero并赋予Developer Profile权限时,请确保待添加的IAM用户没有被添加到任何用户组或者添加到拥有Astro Zero Instance ViewAccess权限的用户组中。 图4 为用户添加开发者权限 在AstroZero中,用户可以执行如下操作: 使用AstroZero创建应用 使用AstroZero开发应用后端 使用AstroZero开发应用前端 使用AstroZero进行应用集成开发 使用AstroZero对应用进行个性化设置 发布并部署AstroZero开发的应用
  • 购买沙箱 以创建用户并授权使用AstroZero中创建IAM用户进入购买Astro轻应用沙箱实例页面。 申请免费试用AstroZero或购买商用实例后,AstroZero服务控制台才会显示“购买沙箱”入口。AstroZero四种规格实例,均支持购买沙箱。 在购买AstroZero实例页面,设置对应参数,单击“立即购买”。 图1 购买沙箱 表1 购买沙箱参数说明 参数 说明 实例版本 待购买实例的版本,请选择“测试沙箱环境”。 实例名称 新建实例的名称,同一账号下实例不可重名,创建后不可修改。命名要求如下: 长度为4~64个字符。 必须以英文字母开头,只能英文字母、数字或下划线组成。 数量 输入购买沙箱的个数,一次性最多支持购买5个,可进行多次购买。 规格说明 AstroZero沙箱实例规格说明,详细介绍请参见规格说明。 购买时长 设置沙箱的购买时长,最短1个月,最长3年。 在购买Astro轻应用页面,确认支付方式,单击“去在线支付”。 图2 支付订单 支付成功后,单击“返回Astro轻应用控制台”,即可进入AstroZero服务控制台。 进入AstroZero沙箱环境。 创建功能调试沙箱实例预计需要几分钟,请耐心等待。创建成功后,控制台会显示已成功购买的沙箱环境实例,单击相应沙箱环境实例的“管理沙箱环境”,即可进入相应环境。
  • 前提条件 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实例时,请确保已参考设置应用中对接的ROMA Connect信息中操作,在AstroZero中设置ROMA Connect实例信息。