华为云用户手册

  • 操作步骤 进入购买Astro轻应用沙箱实例页面。 申请免费试用AstroZero或购买商用租户后,AstroZero服务控制台才会显示“购买沙箱”入口。 在购买AstroZero实例页面,设置对应参数,单击“立即购买”。 图1 购买沙箱 实例版本:当前仅支持功能调试沙箱。 实例名称:新建AstroZero实例的名称,同一账号下实例不可重名,创建后不可修改。 数量:购买的沙箱数量(一次性购买最大支持5个,可以进行多次购买)。 购买时长:设置沙箱的购买时长。 在购买Astro轻应用页面,确认支付方式,单击“去在线支付”。 图2 支付订单 支付成功后,单击“返回Astro轻应用控制台”,即可进入AstroZero服务控制台。 进入AstroZero沙箱环境。 创建功能调试沙箱实例预计需要几分钟,请耐心等待。创建成功后,控制台会显示已成功购买的沙箱环境实例,单击相应沙箱环境实例的“管理沙箱环境”,即可进入相应环境。
  • 操作步骤 “用户登录”服务编排开发的大致过程:先拖拽1个脚本图元,3个决策图元以及3个赋值图元,再分别配置各个图元属性,然后配置各个图元之间连线类型,最后保存启用。 在“我的应用”中,单击“设备维修管理系统”,进入应用。 在“User”目录中,将鼠标放在“Flow”上,单击界面上出现的“+”,在弹出菜单中选择“服务编排”。 选中“创建一个新的服务编排”,在“标签”和“名称”文本框中输入“login”,并设置类型为“Autolaunched Flow”,单击“添加”。 定义服务编排用到的变量。 单击,展开全局上下文,再单击“变量”后的,设置参数名称为“username”,如图2所示。 图2 新增变量 重复上一步,定义其他变量。 需要定义的变量如表1所示。 表1 服务编排变量说明 变量名称(唯一标识) 数据类型 username(上一步已创建) 文本 password 文本 msg 文本 userId 文本 loginMsg 文本 captcha 文本 profile 文本 单击“公式”后的,在左侧公式弹窗中,设置“名称”为“portalUserLogin”,“表达式”为“PORTALUSER LOG IN({!username})”,单击“保存”。 图3 添加公式变量“portalUserLogin” 参考上一步,创建公式变量“verifyCode”,需要定义的变量如表2所示。 表2 公式变量说明 名称 表达式 verifyCode VERIFYCODEWITHTYPE({!captcha},"login") 拖拽图元到服务编排画布,并配置图元的基本属性。 从图元区分别拖拽脚本(1个)、决策(3个)、赋值(3个)图元到画布中,排列,如图4所示。 图4 拖拽脚本(1个)、决策(3个)、赋值(3个)图元 选中“Script0”图元,在右侧基本信息中,设置“标签”为“查询用户”。 参考5.b,设置其他图元的“标签”属性,具体值如表3所示。 表3 图元基本属性 名称(变量唯一标识,不需要修改) 标签 Script0(上一步已设置) 查询用户 Decision0 判断账号密码 Decision1 判断是否包含验证码 Decision2 校验验证码 Assignment0 账号密码错误 Assignment1 执行登录 Assignment2 验证失败 图5 修改后图元 配置“查询用户”脚本图元。 单击,指定图元对应的脚本名称 (HW__login),并配置脚本的输入输出参数。 单击“全局上下文”,显示变量列表,从“变量”中,拖拽“username”、“password”、“captcha”到“输入参数”下对应的“源”输入框中。 在“输出参数”下,单击5次“新增行”,依次添加下拉选项中的输出参数字段,并从“变量”中拖拽相应的字段到“目标”输入框下,字段与变量对应关系如图6所示。 请直接从全局上下文拖拽“变量”到对应的输入输出参数下,请勿手动输入,手动输入的值系统可能不识别。 图6 拖拽脚本的输入输出参数 配置“判断账号密码”决策图元。 选择“判断账号密码”图元,在右侧单击图标,修改“默认”的“名称”为“loginFail”。 图7 修改“默认”结果名称 单击“新增”,增加一个可编辑的结果,修改结果为“loginSuccess”,在“可视”下单击“新增行”,并拖拽变量中的“msg”到“资源”下,设置“比较符”为“==”,“值”为“"登录成功!"”。 请直接从全局上下文拖拽变量“msg”到“资源”下,请勿手动输入,手动输入的值系统可能不识别。 "登录成功!"需要与“login”脚本中的输出参数一致。 图8 修改可编辑的结果 配置“判断是否包含验证码”决策图元。 选择“判断是否包含验证码”图元,在右侧单击图标,修改“默认”的“名称”为“hasVerifyCode”。 图9 修改“默认”结果名称 单击“新增”,增加一个可编辑的结果,修改结果为“noVerifyCode”,在“可视”下单击“新增行”,并拖拽变量中的“captcha”到“资源”下,设置“比较符”为“==”,“值”为“""”。 图10 修改可编辑的结果 配置“校验验证码”决策图元。 选择“校验验证码”图元,在右侧单击图标,修改“默认”的“名称”为“verifyCodeFail”。 图11 修改“默认”名称 单击“新增”,增加一个可编辑的结果,修改结果为“verifyCodeSuccess”,在右侧选择“公式”,并从全局上下文中,拖拽“verifyCode”到“公式”下。 图12 修改可编辑的结果 配置“账号密码错误”赋值图元。 选择“账号密码错误”图元,在右侧单击图标,单击“新增行”,从全局上下文的“系统变量”中,拖拽“$Flow.ResMsg”到“赋值”下,并设置“操作符”为“=”,拖拽“msg”到“值”;然后再拖拽“系统变量”下的“$Flow.ResCode”到“赋值”的“变量”下,设置“操作符”为“=”,设置“值”为“"1"”。 请直接从全局上下文拖拽变量到“赋值”下的对应位置,请勿手动输入,手动输入的值系统可能不识账。 图13 配置“账号密码错误”图元 配置“执行登录”赋值图元。 选择“执行登录”图元,在右侧单击图标,单击5次“新增行”。 从全局上下文,拖拽“msg”等字段到“赋值”的“变量”下,并设置“操作符”为“=”,然后再拖拽“值”下的各个值,具体字段对应关系,如图14所示。 图14 拖拽“执行登录”赋值的变量及值 请直接从全局上下文拖拽变量到“值”下的对应位置,请勿手动输入,手动输入的值系统可能不识别。 表4 变量与值对应关系 变量 操作符 值 loginMsg = portalUserLogin msg = msg profile = profile username = username userId = userId 配置“验证失败”赋值图元。 选择“验证失败”图元,在右侧单击图标,单击“新增行”,从全局上下文“系统变量”,拖拽“$Flow.ResMsg”、“$Flow.ResCode”到“赋值”下,并设置操作符为“=”,分别设置“值”为“"验证码错误!"”、“"1"”。 表5 赋值 变量 操作符 值 $Flow.ResMsg = "验证码错误!" $Flow.ResCode = "1" 图15 配置“验证失败”赋值图元 拖拽图元连线,并配置连线属性。 在画布上,把鼠标放在起点图元图元上,从“+”拖动鼠标,在起点图元和“查询用户”图元间增加连线;即将当前脚本设置为服务编排的起始节点。 依次在“查询用户”、“判断账号密码”、“判断是否包含验证码”、“执行登录”图元直接拖拽连线。 图16 拖拽连线 单击“判断账号密码”与“判断是否包含验证码”图元之间的连线,再右侧属性单击,在“连线”中修改“连线类型”为“loginSuccess”。 图17 选中连线 图18 修改连线类型 单击“判断是否包含验证码”与“执行登录”图元之间的连线,再右侧属性单击,在“连线”中修改“连线类型”为“noVerifyCode” 从“判断账号密码”图元上拖拽一条连线到“账号密码错误”图元。 从“判断是否包含验证码”图元上拖拽一条连线到“校验验证码”图元。 从“校验验证码”图元上拖拽一条连线到“验证失败”图元。 从“校验验证码”图元上拖拽一条连线到“执行登录”图元,并设置该连线的“连线类型”为“verifyCodeSuccess”。 连线拖拽完成,如图19所示。 图19 拖拽图元连线 定义服务编排的输入、输出参数,并保存服务编排。 鼠标在画布空白处点一下,单击右侧,设置服务编排的输入输出参数,如图20所示。 图20 拖拽服务编排的输入输出参数 单击服务编排页面上方的,保存服务编排。 系统会弹出窗口,显示编译结果。 测试服务编排能否正常执行。 单击服务编排编辑器上方的,执行服务编排。 在“Flow Run”界面中输入测试数据,单击“运行”。其中,“test_cs”、“{XXXXXXXX}”为用户注册脚本中测试数据。 { "username": "test_cs", "password": "{XXXXXXXX}", "captcha": "" } 执行成功,界面上会返回设备对象中的全部信息,样例如下: { "interviewId": "002N000000jjQ95dKbCK", "outputs": { "loginMsg": "null", "msg": "登录成功!", "profile": "cs", "userId": "10gg0XXXXXXXXXXXXX", "username": "test_cs" } } (可选)在服务编排编辑器单击“跟踪”,可以查看到上一步的执行日志,方便定位错误。 测试成功,单击服务编排编辑器上方的,启用发布服务编排。
  • 实现原理 图1 用户登录服务编排大致设想 如图1所示,用户登录服务编排业务逻辑实现过程如下: 通过调用“用户登录”脚本,查询登录账户密码,然后使用“决策”图元进行判断,判断当前登录的账号密码是否正确。 如果判断账户密码错误,直接执行“账户密码错误”,判断账户密码正确,则使用“决策”图元,继续判断是否有验证码。 如果判断当前登录没有验证码,则直接执行登录,判断当前有验证码,则继续判断验证码是否正确。 如果判断验证码正确,则执行登录操作,判断验证码错误,则执行验证失败。
  • 本节导读 应用开发完成后,需要根据业务流程,通过使用不同角色账号登录,进行应用业务测试。 业务测试主要分为管理业务用户、添加设备及设备管理和处理工单三部分。其中,前两部分是管理员权限进行的操作(这里管理员账号,均使用应用开发者账号进行)。处理工单部分,需要根据工单流程顺序,切换客服人员、派单人员、维修人员以及管理员号进行测试。 管理员用户:当前登录AstroZero开发应用使用的账号,用于新增业务用户、添加用户权限、添加设备信息、管理工单,监控设备。 业务用户:使用“设备维修管理系统”应用的用户,分别是客服人员、派单员及维修人员。 表1 业务测试详情 角色 测试页面 涉及功能 管理员用户 新增用户页面、平台管理用户页面、设备管理页面、工单管理页面、设备监控页面 新增业务用户,配置权限集、添加设备信息、管理工单,监控设备 业务用户 客服人员 App登录页面,工单列表(客服人员)页面 创建工单 派单员 App登录页面,工单列表(派单员)页面 派单、查看工单状态 维修人员 App登录页面,工单列表(维修人员)页面 接单、拒单、关单 父主题: 应用业务测试
  • 操作步骤 在经典版应用开发页面,单击左侧导航栏下方的,进入应用预览页面。 图1 查看应用 验证创建工单。 选择“工单列表(客服人员)”,然后在工单列表(客服人员)页面,单击“创建工单”,进入创建工单页面。 在“设备名称”下拉框中选择一个设备,检查“设备详情”区域显示了对应的设备详情。显示正确,则说明组件与模型的绑定,以及下拉框“数据改变”事件执行正确。 如果“设备名称”下,没有设备名,请先在“设备管理”页面,单击“新增行”进行添加。 检查是否正常提交工单。 填写工单信息, 单击“提交”。如果页面跳转到工单列表页面,且在查询结果中,显示新创建的工单,则说明提交按钮的“点击”事件执行正确。 如果页面跳转到工单列表页面,且在查询结果中显示新创建的工单,则说明验证成功。 图2 验证结果样例 验证派单功能。 单击“工单列表(派单员)”,进入“工单列表(派单员)”页面,查看页面是否显示上一步创建的工单,且每条记录后都有派单图标。 选择上一步新建的一条工单记录,并单击该记录的,弹出处理工单弹窗。 图3 状态为“待派单”工单记录 在处理工单弹窗中,设置下拉框“选择工程师”为当前租户账号,然后单击“确定”,返回“工单列表(派单员)”页面。 查看工单记录的“状态”、“当前处理人”是否已更新为“待接单”、当前租户名。如果已更新,说明派单流程正常。如未改变请检查“派单”按钮上事件代码以及“处理工单”弹窗中数据绑定及事件代码。 验证待接工单。 进入“工单列表(维修人员)”页面,检查系统显示派单员刚刚派的工单,如图4所示。 如未正常显示请检查当前页面标签组件的属性值绑定及页面事件代码。 图4 待处理工单 单击“处理”按钮,进入处理工单弹窗,“选择下一步操作”设置为“接单”,单击“提交”按钮。 处理完成后,返回“待处理工单”页面,查看“状态”是否已经更新为“处理中”。 如果有多条工单,“待处理”状态的工单,优先显示,“处理中”的工单可能会显示在页面的下面,工单状态改变后,可以拖动滚动条查找该工单。 如果在“选择下一步操作”中,选择了“拒单”,流程将返回“派单员”处,状态将变为“待派单”。 图5 处理工单-关单 图6 查看处理中的工单 单击“处理中”工单的“处理”按钮,选择“关单”,单击“提交”,返回页面后,查看该条工单的状态是否变成“关闭”,如果已关闭,则说明关单流程正常。 图7 关闭工单 参考以上步骤,验证工单管理页面。 在应用菜单中,选择“工单管理”页面,进入工单管理,查看页面工单列表中的工单信息。 进行“创建工单”、派单及删除工单操作,验证工单管理功能。
  • 操作步骤 进入“设备维修管理系统”应用。 在“Equipment”目录中,将鼠标放在“Script”上,单击界面上出现的“+”,在弹出菜单中选择“脚本”。 选中“创建一个新脚本”,在“名称”文本框中输入“deleteEquipment”,单击“添加”。 当编辑已有脚本时,为防止编辑时多人篡改,编辑前请单击进行锁定。 在代码编辑器中插入如下脚本代码。 脚本中红色内容请替换为实际的对象名、字段名。 //本脚本用于删除设备 import * as db from 'db';//导入处理object相关的标准库 import * as context from 'context';//导入上下文相关的标准库 //定义入参结构,入参包含1个参数:Equipment对象,为必填字段 @action.object({ type: "param" }) export class ActionInput { @action.param({ type: 'String', required: true, label: 'String' }) id: string; } //定义出参结构,出参包含1个参数,Equipment的记录id @action.object({ type: "param" }) export class ActionOutput { @action.param({ type: 'String' }) id: string; } //使用数据对象HW__Equipment__ CS T @useObject(['HW__Equipment__CST']) @action.object({ type: "method" }) export class DeleteEquipment { //定义接口类,接口的入参为ActionInput,出参为ActionOutput @action.method({ input: 'ActionInput', output: 'ActionOutput' }) public deleteEquipment(input: ActionInput): ActionOutput { let out = new ActionOutput(); //新建出参ActionOutput类型的实例,作为返回值 let error = new Error(); //新建错误类型的实例,用于在发生错误时保存错误信息 try { let id = input.id; let s = db.object('HW__Equipment__CST'); //获取HW__Equipment__CST这个Object的操作实例 //查询条件 let condition = { "conjunction": "AND", "conditions": [{ "field": "id", "operator": "eq", "value": id }] }; let isDeleted = s.deleteByCondition(condition); if (isDeleted) { out.id = id; } else { error.name = "EQERROR"; error.message = "删除设备失败!"; throw error; } } catch (error) { console.error(error.name, error.message); error.Error(error.name, error.message); } return out; } } 单击脚本编辑器上方的,保存脚本。
  • 操作步骤 在经典版应用开发页面,单击左侧导航栏下方的“配置”。 图1 应用配置入口 在“导航条”页签单击“菜单树”右侧的“+”,选择“添加页签”。 图2 添加页签 定义“新增用户”页签。在“添加页签”弹窗中,设置以下信息,然后单击“保存”。 页面类型:设置为“标准页面页签”。 标签:设置为“新增用户”。 名称:设置为“addUser”。 页面:设置为“HW__portalUserList”。 图3 添加“新增用户”页面 在应用左侧导航下,单击,进入应用预览页面。 图4 查看应用 在应用菜单上,单击“新增用户”,进入用户管理页面。 图5 新增用户 在用户管理页面,单击“新增用户”,在弹窗中设置用户名、密码及角色。 图6 添加新用户 创建完成后,在用户列表中,查看是否已存在刚刚添加的用户, 如果有,则说明页面及事件代码设置正确。如果页面有报错,请根据页面报错定位问题。
  • 操作步骤 进入之前创建的应用。 在“WorkOrder”目录中,鼠标放在“Page”上,单击界面上出现的“+”,在弹出菜单中选择“标准页面”。 在“标签”和“名称”文本框中输入“createWorkOrder”,单击“添加”。 当编辑已有标准页面时,为防止编辑时多人篡改,编辑前请单击进行锁定。 在标准页面的“设计视图”下,单击页面底部的“模型视图”页签,切换到“模型视图”。 图3 切换模型视图 定义模型“basicInfo”。 在模型视图页面,单击“新增模型”。 添加自定义模型,模型名称“basicInfo”,单击“下一步”。 单击“新增节点”,新增设备ID字段“HW__equipmentId__CST”,并设置字段类型“SingleSelect”,加粗斜体内容请替换为实际命名空间前缀。 依次增加表2中列出的字段名称,单击“下一步”,再单击“确定”。 图4 新增节点字段 加粗斜体内容请替换为实际命名空间前缀。 表2 新增basicInfo模型的节点字段 字段名称 字段类型 字段描述 HW__equipmentId__CST(上一步已添加) SingleSelect 设备ID HW__title__CST Text 工单标题 createdDate DateTime 创建时间 HW__type__CST SingleSelect 工单类型 HW__priority__CST SingleSelect 工单优先级 HW__description__CST TextArea 工单备注说明 HW__faultPhenomenon__CST Text 故障现象说明 HW__customer__CST Text 客户接口人 HW__recoveryTime__CST DateTime 客户要求故障恢复时间 HW__source__CST Text 工单来源 HW__arriveTime__CST DateTime 客户要求工程师到达现场时间 单击页面上方的,保存设置。 定义模型“equipmentList”。 在模型视图页面,单击“新增模型”。 添加自定义模型,模型名称“equipmentList”,单击“下一步”。 单击“下一步”,再单击“确定”。 单击页面上方的,保存设置。 定义模型“equipmentInfo”。 在模型视图页面,单击“新增模型”。 添加自定义模型,模型名称“equipmentInfo”,单击“下一步”。 单击“新增节点”,依次新增表3中列出的字段名称,单击“下一步”,再单击“确定”。 加粗斜体内容请替换为实际命名空间前缀。 表3 新增equipmentInfo模型的节点字段 字段名称 字段类型 字段描述 name Text 设备名称 HW__equipmentSN__CST Text 设备编码 HW__equipmentBrand__CST Text 设备品牌 HW__equipmentModel__CST Text 设备型号 HW__fullAddress__CST Text 设备完整地址 单击页面上方的,保存设置。 定义模型“equipmentOptions”。 在模型视图页面,单击“新增模型”。 添加服务模型,模型名称“equipmentOptions”,单击“下一步”。 设置服务类型为“API”,“项目”选择“设备维修管理系统”,公共接口为即“equipmentSelectListQuery”,即创建“查询设备列表”脚本中定义的脚本“equipmentSelectListQuery”对应的公共接口,单击“下一步”,再单击“确定”。 单击页面上方的,保存设置。 定义模型“setInstanceId”。 在模型视图页面,单击“新增模型”。 添加服务模型,模型名称“setInstanceId”,单击“下一步”。 设置服务类型为“API”,“项目”选择“设备维修管理系统”,公共接口为“createWorkOrder”,即“生成工单”脚本“createWorkOrder”对应的公共接口,单击“下一步”,再单击“确定”。 单击页面上方的,保存设置。 拖拽页面框架组件(“基本信息”、“设备信息”、“其他信息”以及“按钮”区域)。 单击页面底部的“设计视图”页签,切换到“设计视图”。 从基本组件列表区拖拽“容器”到右侧“页面内容”中,然后再拖拽一个“表单”到“容器”中,并在“元数据表单配置向导”弹窗中,单击“取消”。 拖拽一个“容器”到“表单”下方(表单之外),作为按钮区域的容器。 图5 拖拽按钮区域容器 选择“表单”,拖一个“折叠面板”组件到“表单”中,并页面右下角的组件树中,删除2个“折叠页”(在组件树中,选中后单击鼠标右键,再单击“删除”即可),删除后折叠面板包含1个折叠页。 图6 组件层级关系及删除多余折叠页 在“折叠面板”中,选中“折叠页签标题”,然后在右侧“属性”页签中进行以下设置: 在“样式”下的“背景”,将背景颜色修改为浅蓝色(#9BCCEF)。 选中“图标”,设置图标颜色为深蓝色。 选中“标签”的“文本内容”为“基本信息”。 您还可以根据需要,修改边距等其他样式,使其更美观。 单击鼠标右键,并单击“复制”,再单击2次“粘贴”,在折叠面板之后,添加2个同样的折叠面板。 图7 粘贴后的折叠面板 分别设置第二、第三个折叠面板的“折叠页签标题”为“设备信息”、“其他信息”。 图8 修改折叠页标题 单击界面上方的,保存页面。 组装“基本信息”区域。 在“基本信息”所在的折叠面板下,从左侧组件列表中,拖一个“表单”到“折叠页签内容”中,然后在“元数据表单配置向导”弹窗中,单击“取消”。 图9 拖入表单 选中“表单”,在右侧属性中,单击,在模型选择弹窗中选中“basicInfo”,单击“确定”,并在提示弹窗中,单击“绑定并生成表单”。 图10 表单数据绑定 在生成的表单中,删除如表4中的多余字段所在组件以及按钮。 表4 需要删除的组件名及组件 字段名 组件 HW__faultPhenomenon__CST 输入框 HW__customer__CST 输入框 HW__recoveryTime__CST 日期选择框 HW__arriveTime__CST 日期选择框 保存、取消 按钮 分别选择表单中的2个“分栏”,在“行布局”中单击,修改分栏为4列,并按图12所示调整字段组件的位置(选中组件,用鼠标即可拖拽组件到目的栏),调整完成后,删除多余空白分栏。 图11 调整分栏为4列 图12 调整后表单 选择表单中的各个组件,依次在右侧属性面板中修改各个组件标签,详细标签名如表5所示。 表5 修改表单组件名及组件对应字段 标签名 字段名 组件类型 设备名称 HW__equipmentId__CST 下拉框 工单标题 HW__title__CST 输入框 创建时间 createdDate 日期选择框 工单类型 HW__type__CST 下拉框 优先级 HW__priority__CST 下拉框 工单来源 HW__source__CST 输入框 备注 HW__description__CST 多行输入框 选中“设备名称”下拉框,在右侧属性页签,单击“属性值绑定”的“+”,“属性”设置为“选项”,然后再单击“模型字段”的设置图标,在弹窗中勾选“equipmentList”模型,对“设备名称”下拉框进行属性绑定。 图13 添加属性值绑定 选中“工单类型”下拉框,在右侧属性页签中,设置“维修”和“保养”2个选项。 图14 添加工单类型 选中“优先级”下拉框,在右侧属性页签中,设置“高”、“中”和“低”3个选项。 图15 添加优先级 单击界面上方的,保存页面。 组装“设备信息”区。 在“设备信息”所在的“折叠面板”中,拖入一个“表单”组件到“折叠页签内容”中,并在“元数据表单配置向导”弹窗中,单击“取消”。 选择“表单”,在右侧属性中,单击,在弹窗中选中“equipmentInfo”,单击“确定”,并在提示中单击“绑定并生成表单”。 图16 表单数据绑定 删除“name”输入框、“保存”、“取消”按钮以及按钮所在“容器”。 选择“分栏”,在“行布局”中单击,修改分栏组件为4列,并删除空白分栏,调整后如图17所示。 图17 调整后表单 修改各个输入框组件的标签名,并“公共”属性下,设置“只读”。 表6 组件名及对应字段 标签名 字段名 其他属性 设备编码 HW__equipmentSN__CST 只读 设备品牌 HW__equipmentBrand__CST 只读 设备型号 HW__equipmentModel__CST 只读 地址 HW__fullAddress__CST 只读 单击页面上方的,保存页面。 组装“其他信息”区域,组装完成后如图19所示。 图18 组件结构 图19 其他信息区域 在“其他信息”所在的“折叠面板”中,拖1个“表单”组件到“折叠页签内容”中,然后单击“取消”元数据表单配置向导弹窗。 设置表单样式:选中“表单”组件,在“样式”下“高级设置”中,设置表单样式“:root{margin-left:50px;}”。 在“表单”中,拖入1个“折叠面板”,并删除1个折叠页,保留2个折叠页。 修改第1个折叠页“折叠页签标题”的“标签”下的“文本内容”修改为“故障记录”。 在“故障记录”的“折叠页签内容”下,拖入1个分栏组件,设置为3列,并向第1列拖入“输入框”,并修改输入框的标签为“故障现象说明”。 修改第2个折叠页“折叠页签标题”的“标签”下的“文本内容”修改为“时间记录”。 在“时间记录”的“折叠页签内容”下,拖入1个分栏组件,并设置为3列,并分别向第1列和第2列拖入1个“日期选择框”,修改“标签”为“客户要求工程师到达现场时间”、“客户要求故障恢复时间”,然后修改“类型”为“日期时间”并设置“日期格式”为“yyyy-MM-dd HH:mm:ss”,向第3列拖入一个输入框,设置“标签”为“客户接口人”。 图20 设置日期格式 选择“故障现象说明”输入框,在右侧属性页签中,单击,为输入框绑定“basicInfo”下的“HW__faultPhenomenon__CST”字段。 参考上一步,为其他组件绑定数据字段,组件名及对应字段,如表7所示。 表7 组件名及对应字段 标签名 绑定的字段名 组件类型 客户要求工程师到达现场时间 HW__arriveTime__CST 日期选择框 客户要求故障恢复时间 HW__recoveryTime__CST 日期选择框 客户接口人 HW__customer__CST 输入框 组装“按钮”区域。 选择页面最下方“容器”,设置“水平对齐方式”为“中”,并拖入2个“按钮”组件。 图21 设置容器对齐方式 修改第1个“按钮”的“显示名称”为“提交”,“类型”为“主要按钮”。 修改第2个“按钮”的“显示名称”为“取消”。 单击页面上方的,保存页面。
  • 页面模型分析 页面模型负责与页面组件交互,获取生成工单需要的数据,页面模型需要先定义,然后再与页面组件进行绑定。 对于设备维修工单,需要录入的信息包括:工单基本信息、设备信息以及工单扩展信息。 打开创单页面,有如下处理逻辑: 在“基本信息”区域指定“设备名称”时,在“设备详情”区域自动显示设备信息。该能力需要开发(equipmentSelectListQuery)脚本实现。 填写完工单,单击“提交”按钮后,会创建一个工单实例。该能力通过调用BPM实现。 结合填单页面需求,以及前端组件对应关系,我们需要创建如下模型: 表1 模型分析 模型名称 作用 来源 详细定义 basicInfo 保存工单的基本信息,将与“基础信息”、“其他信息”区域中各个组件绑定 自定义模型 新增的字段名称请与下面字段名称保持一致,后续将绑定页面组件。包含的节点如下,这些节点与前台页面上的工单基本信息一一对应,加粗斜体部分要替换为自己账号对应的命名空间: HW__equipmentId__CST:设备ID,字段类型SingleSelect。 HW__title__CST:工单标题,字段类型Text。 createdDate:创建时间,字段类型DateTime。 HW__type__CST:工单类型,字段类型SingleSelect。 HW__priority__CST:工单优先级,字段类型SingleSelect。 HW__description__CST:工单备注说明,字段类型TextArea。 HW__faultPhenomenon__CST:故障现象说明,字段类型Text。 HW__customer__CST:客户接口人,字段类型Text。 HW__recoveryTime__CST:客户要求故障恢复时间,字段类型DateTime。 HW__source__CST:工单来源,字段类型Text。 HW__arriveTime__CST:客户要求工程师到达现场时间,字段类型DateTime。 equipmentInfo 获取设备详细信息,将与“设备信息”区域组件绑定 自定义模型 将绑定页面组件。包含的计算节点如下,这些节点与前台页面上的设备信息一一对应,加粗斜体部分要替换为自己账号对应的命名空间: name:设备名称,字段类型Text。 HW__equipmentSN__CST:设备编码,字段类型Text。 HW__equipmentBrand__CST:设备品牌,字段类型Text。 HW__equipmentModel__CST:设备型号,字段类型Text。 HW__fullAddress__CST:设备完整地址,字段类型Text。 须知: 这些节点名称需要与设备对象的字段名保持一致。 equipmentList 查询系统中的设备,设备名称下拉框的属性值绑定模型 自定义模型 与“设备名称”下拉框绑定,将从下拉框的值赋给当前下拉框值。 equipmentOptions 查询系统中的设备,设备下拉框的可选项 服务模型 与公共接口equipmentSelectListQuery关联。 setInstanceId 查询系统中的设备,设备下拉框的可选项 服务模型 与公共接口createWorkOrder关联。
  • 页面组件分析 “生成工单”页面的组装过程如下: 在页面中,拖入一个容器组件。 在容器组件中,拖入一个表单组件和容器组件。 将表单组件分割为3个区域:“基本信息”、“设备信息”、“其他信息”。 将2级容器作为“按钮”区域。 组装完成后,整个页面有4个区域,如图1所示。 图1 生成工单页面 其中,“基本信息”、“设备信息”是通过数据绑定页面模型直接创建的表单,“其他信息”及“按钮”区域是手动拖入的组件,然后再进行数据绑定,页面中详细组件分布如图2所示。 图2 页面组件分析
  • 操作步骤 使用华为账号,登录华为云网站,在顶部导航栏右侧单击“控制台”,进入华为云控制台。 图1 进入华为云控制台 在左侧导航栏上方,单击,选择服务实例所在的区域项目。 单击,在查找框中搜索“Astro轻应用”,单击查找到的结果,进入AstroZero服务控制台。 在总览页右上角,单击“旧版入口”,即可进入经典版开发环境。 免费试用版本无运行环境权限,请以实际界面为准。 AstroZero提供了新版和经典版两套开发环境,本入门以经典版开发环境为例进行介绍。新版开发环境的介绍,请参见初识新版设计器。
  • 验证 您可以用对象的页面布局Layout能力,检查对象的定义是否符合预期。 创建对象时,系统会自动为对象创建两个页面布局: 设备详情页面Equipment Detail:显示对象中单条记录的详细信息。如果手工创建字段时选中了“添加本字段到该页面布局”,设备详情页面包含name和添加的自定义字段。脚本创建的默认不添加,但是不影响后续的操作。 设备列表页面Equipment Records:显示对象中的记录列表。列表页面中默认只显示了name字段(设备名称)。因为后续章节的测试中,经常需要检查记录ID、设备编码和设备名称,所以将其他几个字段也添加到列表页面中。 修改设备对象的列表页面布局。 单击设备对象HW__Equipment__CST的“布局”页签。 单击“Equipment Records”,打开页面详情。 图8 对象布局 选中列表“表格”,如图9所示,再单击界面右侧“属性”页签中的。 如果当前页面已锁定,请先单击,解锁页面。 图9 绑定Records 单击Records后的编辑图标。 图10 编辑Records 选中要显示在页面上的字段,如图11所示,单击“下一步”,再单击“确定”。 图11 为Records添加字段 在图10对话框中,单击选中“Records”,再单击“确定”。 单击编辑器上方的,保存设置。 预览、测试对象。 单击页面上的,进入预览页面。 单击“添加”,再输入任意测试数据,单击“保存”。 系统返回页面,并显示新插入的数据,则表示对象创建成功。
  • 操作步骤 在“我的应用”中,单击“设备维修管理系统”,进入应用。 在“WorkOrder”中,在鼠标放在“Page”上,单击界面上出现的“+”,在弹出菜单中选择“标准页面”。 在“标签”和“名称”文本框中输入“workOrderList”,单击“添加”。 当编辑已有标准页面时,为防止编辑时多人篡改,编辑前请单击进行锁定。 定义模型“queryWorkOrder”。 在“模型视图”中,单击“新增模型”。 添加服务模型,模型名称“queryWorkOrder”,单击“下一步”。 “选择服务类型”为“公共接口”,“项目”为“设备维修管理系统”,“选择服务”为“queryWorkOrder”,单击“下一步”,再单击“确定”。 单击页面上方的,保存模型。 定义模型“workOrderInstance”。 在“模型视图”中,单击“新增模型”。 来源选择“自定义”,模型名称“workOrderInstance”,单击“下一步”。 单击模型名后的“新增节点”,新增表1所示的节点,然后单击“下一步”,再单击“确定”。 以下字段要与“工单对象”中的字段一致,其中加粗斜体内容部分要替换为当前账号对应的命名空间前缀。 表1 新增节点 字段名称 字段类型 字段描述 id Text 记录ID HW__workOrderId__CST Text 工单Id HW__priority__CST Text 优先级 HW__title__CST Text 工单标题 HW__status__CST Text 状态 HW__assignedFme__CST Text 当前处理人 createdDate 日期/时间 创单时间 HW__createdBy__CST Text 创建人 单击页面上方的,保存模型。 单击“设计视图”,从“模型视图”切换到“设计视图”。 拖拽页面标题。 从基本组件列表区拖拽一个“标题”组件到“页面内容”中。 在右侧“属性”页签中,将“标题内容”修改为“现场工单列表”。 单击页面上方的,保存页面标题。 从组件列表区拖拽一个“表格”组件到“标题”的下方。 绑定表格数据模型,并设置查询结果区域。 在“设计视图”中,选中“表格”,单击右侧“属性”页签,如图2所示。 图2 为表格绑定数据模型 在“选择模型”对话框中,选中“workOrderInstance”模型,单击“确定”。绑定模型后,系统自动将模型的所有字段添加为查询结果列。 单击上图中每个字段后的,修改列标题等字段属性。 以“工单ID”为例,其属性配置如图3所示,各个字段及修改后的列名如表2所示。 图3 设置“工单ID”列的属性 表2 修改各字段的显示属性 字段名 列标题 备注 id 记录ID 启用“隐藏”属性,即设置为true HW__workOrderId__CST 工单Id - HW__priority__CST 优先级 - HW__title__CST 工单标题 - HW__status__CST 状态 - HW__assignedFme__CST 当前处理人 - createdDate 创单时间 - HW__createdBy__CST 创建人 - 单击页面上方的,保存设置。 添加“创建工单”按钮。 选中“表格”,单击右侧“属性”页签中“表格区块”中“工具栏”后的“添加”按钮。 图4 增加查询条件区域 删除工具栏中多余的按钮,只保留“新增行”。 修改“新增行”的“显示名称”为“创建工单”。 单击页面上方的,保存设置。 创建查询条件区域。 单击“模型视图”,切换到模型视图,在表格模型“table_0_condition”后,单击编辑图标。 表格组件拖入后,页面将自动生成一个表格模型。“table_0_condition”即是在前面拖入的表格对应的表格模型,模型名可能跟拖入顺序及个数有关,一般情况下模型名称为“table_0_condition”,如果名称不一致,请根据实际情况修改。 图5 编辑表格模型 在表格模型“table_0_condition”中,单击“新增节点”,添加一个“queryInfo”节点,“数据类型”为“Any”,然后在“queryInfo”下,再单击“新增节点”添加3个子节点“createdBy”、“ title”、“status”。 图6 创建完成后的模型节点 单击页面上方的,保存设置。 单击“设计视图”,切换到设计视图,从左侧组件列表中,拖一个“表单”组件到“表格容器”的最上部(表格容器内部最上部),在“元数据表单配置向导”弹窗中,单击“取消”。 图7 向表格容器拖入表单 选中表单,在属性中“数据绑定”下,单击,为表单绑定“table_0_condition”中的“queryInfo”节点,并在提示弹窗中,单击“绑定并生成表单”,单击“确定”。 在表单中,分别选中并删除“createdBy”、“重置”按钮。 调整“title”、“status”、“保存”为1行,并删除多余分栏及容器,调整后,如图8所示。 图8 调整后表单 修改表单中输入框属性。 修改“title”的“标签”为“工单标题”。 修改“status”的“标签”修改为“状态”。 选中“保存”按钮,修改“显示名称”为“搜索”,设置单击“事件”页签,再单击,删除“提交表单”事件,然后单击“点击”后的“+”,进入事件编排页面,在“自定义动作”中,输入以下事件代码,单击“创建”。 图9 修改按钮事件代码 脚本中红色内容请替换为实际的对象名、字段名、页面名、组件ID。其中“table_0_condition”为当前表格组件的ID号,中间数字默认为“0”,如果有多次修改或创建该ID号会变化,选中表格后,在组件树上可以查看实际组件ID。 let pageInfo = $model.ref('table_0_condition').getData().pageInfo; let queryInfo = $model.ref('table_0_condition').getData().queryInfo; if (!queryInfo) { queryInfo = {}; } let queryData = { "title": queryInfo.title, "status": queryInfo.status, "createdBy": queryInfo.createdBy, "start": 0, "limit": pageInfo.pageSize }; $model.ref('queryWorkOrder').setData({ inputParam: queryData }); $model.ref('queryWorkOrder').run().then(function (data) { $model.ref('workOrderInstance').setData(data.workOrderList); pageInfo.total = parseInt(data.total); $model.ref('table_0_condition').setData({ "pageInfo": pageInfo }); }).catch(function (error) { console.log('error is', error); }); 选中“搜索”按钮所在的栏,在右侧“样式”下的“布局”中,设置上方外边距为“30”,使“搜索”按钮上下居中显示。 图10 设置搜索按钮布局样式(位置) 查询条件区域创建后,如图11所示。 图11 查询区域 单击页面上方的,保存设置。 添加页面事件代码。 在“设计视图”中选中最外层的“页面”,在右侧“事件”页签中,单击“加载”后的“+”,进入编辑动作页面。 在“自定义动作”中,输入如下脚本代码。 let pageInfo = $model.ref('table_0_condition').getData().pageInfo; let queryData = { "start": (pageInfo.curPage - 1) * pageInfo.pageSize, "limit": pageInfo.pageSize }; $model.ref('queryWorkOrder').setData({ inputParam: queryData }); $model.ref('queryWorkOrder').run().then(function (data) { $model.ref('workOrderInstance').setData(data.workOrderList); pageInfo.total = parseInt(data.total); $model.ref('table_0_condition').setData({ "pageInfo": pageInfo }); }).catch(function (error) { console.log('error is', error); }); 单击页面上方的,并退出事件编排。 添加“创建工单”按钮跳转事件,跳转事件功能是将页面跳转到“生成工单”页面。 选中“创建工单”按钮,在右侧“事件”页签中,单击“新增行”后的,进入事件编排页面。 在“自定义动作”中,输入以下事件代码,单击“保存”。 //打开创建工单页面,需要根据实际页面名称修改 context.$page.load('/besBaas/page#/HW__createWorkOrder') 单击页面上方的,并退出事件编排。
  • 发布须知 应用包编译类型 在AstroZero经典版应用设计器中,支持编译资产包和源码包两种的应用包。 资产包:资产包中组件默认是设置为受保护状态,可以用在运行环境中安装后,进行预览,运行使用。也可以分享给其他租户安装,在其他租户的开发环境安装后,将显示在“库”页签下,资产包安装后仅能浏览不支持修改。 源码包:源码包中的组件不受保护和限制。源码包可以分享给其他租户,其他租户安装在开发环境中后,可以进行二次开发,安装后将显示在“项目”页签下,详细操作请参见在其他租户环境安装应用包,另外,运行环境中不能安装源码包。 发布方式 AstroZero应用(资产包)发布有多种发布方式:我的仓库、Welink、华为OneMobile、微信、下载小程序,详细介绍请参考发布App。 本示例中,主要介绍把应用发布到“我的仓库”,并通过“我的仓库”再部署到运行环境。 编译类型为“源码包”时,只有发布到“我的仓库”一种发布方式。
  • 包年/包月资源 对于包年/包月计费模式的资源,用户在购买时会一次性付费,服务将在到期后自动停止使用。 如果在计费周期内不再使用包年/包月资源,您可以执行退订操作,系统将根据资源是否属于五天无理由退订、是否使用代金券和折扣券等条件返还一定金额到您的账户。详细的退订规则,请参见云服务退订规则概览。 如果您已开启“自动续费”功能,为避免继续产生费用,请在自动续费扣款日(默认为到期前7日)之前关闭自动续费。
  • 计费周期 包年/包月AstroCanvas资源的计费周期是根据您购买的时长来确定的(以UTC+8时间为准)。一个计费周期的起点是您开通或续费资源的时间(精确到秒),终点则是到期日的23:59:59。 例如,如果您在2023/03/08 15:50:04购买了一台时长为一个月的AstroCanvas,那么其计费周期为:2023/03/08 15:50:04 ~ 2023/04/08 23:59:59。
  • 变更配置后对计费的影响 当前包年AstroCanvas套餐的规格不能满足您的业务需要时,可以在控制台发起变更规格操作,变更时系统将按照如下规则为您计算变更费用: 套餐版本升级:新套餐版本价格高于老套餐版本价格,此时您需要支付新老版本的差价。 升级版本费用 = 升级后版本价格 * 剩余周期 - 未升级版本价格 * 剩余周期 剩余周期计算示例: 2023/11/1客户购买了3年的AstroCanvas,有效期截止到2026/11/1,客户在2024/5/1发生变更,则剩余周期=2024年剩余周期+2025年剩余周期+2026年剩余周期=244/365+1+305/365=2.50(年)。
  • 适用计费项 AstroCanvas提供了“Astro大屏应用基础版”、“Astro大屏应用专业版”和“Astro大屏应用企业版(即将发布)”三种实例套餐,请根据需要选择按月购买或按年购买。 Astro大屏应用基础版:基于平台预置模板、基础组件,快速开发专业水准大屏。 Astro大屏应用专业版:基于平台高阶组件、自定义组件能力,高度还原设计稿大屏。 Astro大屏应用企业版(即将发布):适用于3D场景开发。 表1 适用计费项 计费项 计费说明 实例版本 AstroCanvas提供了“Astro大屏应用基础版”、“Astro大屏应用专业版”和“Astro大屏应用企业版(即将发布)”三个实例版本。各实例版本由空间数、页面数、存储容量、数据接入和项目管理等组成,如表2所示。 表2 AstroCanvas套餐规格清单 版本类型 基础版 专业版 企业版(即将发布) 空间数 2个 5个 100个 页面数 20页 40页 500页 存储容量 5G 10G 100G 加密分享 支持 支持 支持 数据接入 支持 支持 支持 项目管理 支持 支持 支持 图表组件 支持 支持 支持 地图组件 支持 支持 支持 自定义组件 不支持 支持 支持 地图服务接入 不支持 不支持 支持 三维场景编辑 不支持 不支持 支持
  • 到期后影响 图1描述了包年/包月AstroCanvas资源各个阶段的状态。购买后,在计费周期内资源正常运行,此阶段为有效期;资源到期而未续费时,将陆续进入宽限期和保留期。 图1 包年/包月AstroCanvas资源生命周期 到期预警 包年/包月AstroCanvas套餐在到期前第7天内,系统将向用户推送到期预警消息。预警消息将通过邮件、短信和站内信的方式通知到华为账号的创建者。 到期后影响 当您包年/包月AstroCanvas套餐到期未续费时,首先会进入宽限期,宽限期内您可以正常使用已购买和开通的AstroCanvas。 如果在宽限期内仍未续费AstroCanvas套餐,那么就会进入保留期,资源状态变为“已冻结”,您将无法对处于保留期的AstroCanvas执行任何操作。 保留期到期后,若仍未续费,那么AstroCanvas套餐的相关功能会进入停用状态。
  • 适用场景 包年/包月计费模式需要用户预先支付一定时长的费用,适用于长期、稳定的业务需求。以下是一些适用于包年/包月计费模式的业务场景: 稳定业务需求:对于长期运行且资源需求相对稳定的业务,如企业官网、在线商城、博客等,包年/包月计费模式能提供较高的成本效益。 长期项目:对于周期较长的项目,如科研项目、大型活动策划等,包年/包月计费模式可以确保在整个项目周期内资源的稳定使用。 业务高峰预测:如果能预测到业务高峰期,如电商促销季、节假日等,可提前购买包年/包月资源以应对高峰期的需求,避免资源紧张。 数据安全要求高:对于对数据安全性要求较高的业务,包年/包月计费模式可确保资源的持续使用,降低因资源欠费而导致的数据安全风险。
  • 欠费说明 用户在使用AstroCanvas时,账户的可用额度小于待结算的账单,即被判定为账户欠费。 AstroCanvas当前仅支持包年/包月购买,对于包年/包月的AstroCanvas,用户已预先支付了资源费用,因此在账户出现欠费的情况下,已有的AstroCanvas实例仍可正常使用。但是,对于涉及费用的操作,如新购AstroCanvas、升级AstroCanvas规格等操作,用户将无法正常进行。
  • 操作步骤 参考如何登录零代码工作台中操作,登录AstroZero零代码工作台。 在全部应用中,单击对应的应用,进入应用开发页面。 在应用开发页面,选择左侧某一页面,单击“新建”。 图2 选择新建 单击“分享”,设置分享规则。 图3 设置分享规则 单击扫一扫分享后的,使用个人微信扫描二维码,即可进入Astro轻应用登录页面。 图4 Astro轻应用登录页面 通过微信手机号或账号密码,登录分享的应用。 方式一:微信手机号快速验证登录 单击图4中的“微信手机号码快速验证”,进入Astro轻应用申请页面。 确认手机号正确无误后,单击“允许”。 图5 进入Astro轻应用申请页面 若当前手机号关联了多个用户,请选择本次登录的用户,单击“确定”。 图6 选择本地登录用户 方式二:账号密码验证登录 单击图4中的“账号密码验证登录”,进入账号密码验证登录页面。 输入租户名、用户名和密码,单击“确定”。 图7 账号密码验证登录页面
  • 自动部署模板本地调测操作步骤 安装Terraform,使用环境变量的方式为Terraform配置认证信息,详情可参考Terraform快速入门,如果使用的是windows,可用如下命令设置环境变量: set HW_REGION_NAME=cn-north-4 set HW_AC CES S_KEY=your ak set HW_SECRET_KEY=your sk 打开cmd命令行窗口,进入模板目录,执行如下命令,并根据提示输入相应的配置信息。 terraform init terraform plan terraform apply 进入华为云控制台,查看创建出来的云服务信息。 本示例创建的云资源需要商家支付相应的费用,当商家不需要这些资源的时候,请执行“terraform destroy”及时删除这些资源。
  • 接口调用场景 创建实例:客户购买商品并付款成功。 云商店将调用创建实例接口通知商家根据订单号创建实例。 商家系统收到该请求信息,需调用云商店查询订单接口,获取本次订购的相关信息,执行新购对应动作。 更新实例:客户试用转正、续费、退续费。 云商店将调用更新实例接口,通知商家系统对相应资源变更过期时间,商家本地系统需执行相应动作,并将执行结果返回给云商店。 更新实例状态:用户资源实例因到期、违规等情况下会对用户的实例进行冻结,同时在用户续费后,或资源解除违规后会对用户的实例进行解锁。 云商店将调用更新实例状态接口,通知商家系统对相应资源执行冻结、解冻操作,并将执行结果返回给云商店。 用户订单到期后,有 15天的资源冻结期,冻结期内资源不可使用,但可以对此订单续费以解冻继续使用,故商家需对在线开通License商品设置15天的冻结期,并在冻结期内保留用户数据。 释放实例:用户释放购买产品的实例时(到期不续费、退订等场景)。 云商店将调用释放实例接口,通知商家系统对相应资源执行释放操作,并将执行结果返回云商店。
  • 接入流程 工业软件云License联营商品接入云商店的流程如下图所示: 图1 工业软件云License联营商品接入云商店流程 流程说明如下: 申请入驻云商店,成为商家。 云商店运营人员审核公司的资质信息。 根据工业软件云平台的商品接入规范进行应用改造。 准备生产接口服务器,根据本文开发生产接口。 在卖家中心申请访问密钥。 将开发好的生产接口地址绑定访问密钥、并调测成功保存。 调测云商店查询订单、字符串/文件流上传接口。 在卖家中心发布应用资产。 工业软件云平台运营在海顿平台测试应用资产。 云商店运营审核应用资产上架。 在卖家中心申请联营认证。 云商店运营审核联营认证。 在卖家中心申请发布在线开通License联营商品。 云商店运营审核联营商品上架。 运营审核通过后商品上架成功,并在卖家中心自助管理生产接口通知消息。 父主题: 联营License客户端软件对接指南
  • License相关 在进行License验证时,需要收集用户设备指纹信息,包括MAC地址、硬盘序列号、主板序列号和CPU序列号。 设备指纹字符串拼接时,各参数之间以“|”号分割,获取不到时就为空。获取到的MAC地址和硬盘序列号有多个时,以英文“,”号分隔。字符串拼接完成后,转换为大写。字符串拼接如下: string='${macAddr}|${diskId}|${boardId}|${cpuId}'.toUpperCase(); 设备指纹示例:04:7C:16:5E:E3:5D|001B_444A_488B_5CEC.||BFEBFBFF00090672 Sdk::GetLicenseStringRequest Sdk::GetLicenseFileRequest Sdk::LicenseVerifyNotify 父主题: 管理在云
  • 操作步骤 登录已成功入驻云商店的华为云帐号,单击云商店首页页眉导航处的“卖家中心”,进入卖家中心页面。 单击左侧导航栏的“资产中心”,进入资产中心页面。 单击右上角的“新增资产”后,出现页面弹窗“选择资产类型”,点击选择资产类别为“应用资产”、资产类型为“软件包”后,单击“确定”,进入新增资产页面。 在新增资产页面,先上传软件包,再根据页面提示,填写资产信息、版本信息、部署信息。 该软件包用于License商品交付流程,商家上传的软件需具备License管控能力,避免用户重复使用或转发他人使用。 在“选择模板”栏,点击“新增模板”或“选择已有模板”添加 资源编排 模板。 填写完成后,单击“确认”按钮,进行自动部署模板自测和安全扫描。 自动部署在线测试请参考《自动部署模板在线测试》。 部署成功且安全扫描通过后,点击“提交运营审核”并确认提交,进入资产审核状态。 请确认自动部署测试成功和安全扫描成功后再提交自测审核,否则云商店运营将不通过该资产上架申请。 新增资产和修改资产都需要经过云商店运营审核,审核通过后才可使用,审核SLA为3个工作日。 在资产中心页面,点击选择“申请列表”页签,可查看资产审核状态。 审核完成后,则可发布软件包部署交付方式的License商品,如何发布请参考《发布License类商品操作指导》。
  • 概念介绍 ISCDesk ISCDesk(Industrial Software Cloud Desktop),工业软件 云桌面 工具管理客户端,提供工具软件的一键下载、安装、打开和卸载功能。 ISV ISV(Independent Software Vendor),独立软件开发商,是具有区域和行业属性的软件类合作伙伴。此处指云商店商家,是指经过有效申请并经过华为同意,通过云商店向用户销售及提供基于云计算,大数据业务的软件,镜像以及服务的企业。
  • ServiceStage控制台功能依赖的角色或策略 如果 IAM 用户需要在ServiceStage控制台拥有相应功能的查看或使用权限,请确认已经对该用户所在的用户组设置了ServiceStage Administrator、ServiceStage FullAccess或ServiceStage ReadOnlyAccess权限,再参考表6增加依赖服务的角色或策略。 表6 ServiceStage控制台依赖服务的角色或策略 控制台功能 依赖服务 需配置角色/策略 总览 告警 运维监控 应用运维管理 AOM IAM用户设置了ServiceStage Administrator权限后,需要增加AOM FullAccess权限后才能访问总览、告警、运维监控中的数据图表。 支持设置了IAM ReadOnlyAccess和ServiceStage FullAccess或ServiceStage ReadOnlyAccess权限的IAM用户直接访问总览、告警、运维监控中的数据图表。 性能管理 应用性能管理 APM 如果需要使用Java探针,需要设置AOM FullAccess和 APM FullAccess权限。 组件管理 弹性伸缩组 AS 如果需要使用AS资源用于虚拟机环境下部署组件,需要设置AutoScaling FullAccess权限。 云容器引擎 CCE 如果需要使用CCE资源用于容器环境下部署组件,需要设置CCE FullAccess权限。 弹性云服务器 ECS 如果需要使用ECS资源用于虚拟机环境下部署组件,需要设置ECS ReadOnlyAccess权限。 对象存储服务 OBS 如果部署的组件来源于存储在OBS的软件包,需要设置OBS ReadOnlyAccess权限。 微服务引擎 微服务引擎 CSE 如果需要为微服务组件绑定CSE用于服务注册、服务治理、配置管理,需要设置CSE FullAccess权限。 分布式缓存 分布式缓存服务 DCS 如果需要为容器环境下部署的组件绑定DCS用于在应用运行时读取环境变量来获取分布式缓存的相关信息,需要设置DCS ReadOnlyAccess权限。 数据存储 云硬盘服务 EVS 如果容器环境下部署的组件需要使用云硬盘存储方式存储数据,需要设置EVS ReadOnlyAccess权限。 弹性文件服务 SFS 如果容器环境下部署的组件需要使用极速文件存储方式存储数据,需要设置SFS Turbo ReadOnlyAccess权限。 对象存储服务 OBS 如果容器环境下部署的组件需要使用对象存储方式存储数据,需要设置OBS ReadOnlyAccess权限。 云数据库 云数据库 RDS 如果需要为容器环境下部署的组件绑定RDS用于应用数据持久化存储,需要设置RDS ReadOnlyAccess权限。 组件VPC内网访问 组件 域名 访问 弹性负载均衡 ELB 如果需要为组件设置VPC内网访问或域名访问以使用组件提供的服务,需要设置ELB ReadOnlyAccess权限。 组件公网访问 NAT网关 NAT 如果需要为组件设置通过NAT网关公网访问以使用组件提供的服务,需要设置NAT ReadOnlyAccess权限。 弹性公网IP EIP 如果需要为组件设置通过EIP公网访问以使用组件提供的服务,需要设置EIP ReadOnlyAccess权限。 弹性负载均衡 ELB 如果需要为组件设置通过ELB公网访问以使用组件提供的服务,需要设置ELB ReadOnlyAccess权限。 组件日志 云日志 服务 LTS 如果需要通过对接LTS,查看、搜索、导出组件运行LTS日志记录用于排查和解决组件运行中出现的问题,需要设置LTS FullAccess权限。 阈值告警 消息通知 服务 SMN 如果需要将容器环境下部署组件产生的阈值告警消息由消息通知服务SMN发送通知给用户,需要设置SMN ReadOnlyAccess权限。 镜像仓库 容器镜像仓库 SWR 如果容器环境下部署的组件来源于存储在SWR的镜像包,需要设置SWR FullAccess权限。 标签管理 标签管理服务 TMS 如果需要使用TMS对组件等管理对象设置标签用于管理和选择,需要设置TMS ReadOnlyAccess权限。 环境管理 虚拟私有云 VPC VPC用于创建环境时,将用于组件部署和运行的计算、网络、中间件等基础资源隔离在同一个虚拟网络环境中。需要设置VPC ReadOnlyAccess权限。
  • 细粒度权限 SWR未支持细粒度权限,相关权限需要另外授权。 创建“计费模式”为“包月/包年”的微服务引擎专享版时: 创建订单不支付,创建该引擎的用户需拥有“BSS Operator”权限,即费用中心(BSS)操作员,拥有账号中心和资源中心的所有菜单项执行任意操作的权限,在费用中心有相关的只读权限。 创建订单并支付,创建该引擎的用户需拥有“BSS Administrator”权限,即费用中心(BSS)管理员,拥有该服务下的所有权限。 使用自定义细粒度策略,请使用管理员用户登录IAM控制台,按需选择ServiceStage、CSE的细粒度权限进行授权操作。 CSE细粒度权限依赖说明请参见表4。 ServiceStage细粒度权限依赖说明请参见表5。 表4 CSE细粒度权限依赖说明 权限名称 权限描述 权限依赖 应用场景 cse:engine:list 列出所有引擎 无 查看引擎列表。 cse:engine:get 查看引擎信息 cse:engine:list 查看引擎详情,仅微服务引擎专享版支持。 cse:engine:modify 修改引擎 cse:engine:list cse:engine:get 修改引擎的操作包括:开启/关闭公网访问操作、开启/关闭安全认证操作、引擎失败任务重试操作,仅微服务引擎专享版支持。 cse:engine:upgrade 升级引擎 cse:engine:list cse:engine:get 升级引擎的操作包括:引擎版本升级操作,仅微服务引擎专享版支持。 cse:engine:delete 删除引擎 cse:engine:list cse:engine:get vpc:ports:get vpc:ports:delete 删除引擎,仅微服务引擎专享版支持。 cse:engine:create 创建引擎 cse:engine:get cse:engine:list ecs:cloudServerFlavors:get vpc:vpcs:get vpc:vpcs:list vpc:subnets:get vpc:ports:get vpc:ports:create 创建引擎的操作包括:创建引擎操作,引擎备份/恢复任务创建操作,仅微服务引擎专享版支持。 cse:config:modify 服务配置管理修改 cse:engine:list cse:engine:get cse:config:get 全局配置功能与治理功能涉及的配置修改。 cse:config:get 服务配置管理查看 cse:engine:list cse:engine:get 查看服务的配置。 cse:governance:modify 服务治理中心修改 cse:engine:list cse:engine:get cse:config:get cse:config:modify cse:registry:get cse:registry:modify cse:governance:get 创建与修改服务治理。 cse:governance:get 服务治理中心查看 cse:engine:list cse:engine:get cse:config:get cse:registry:get 查看服务治理功能。 cse:registry:modify 服务注册管理修改 cse:engine:list cse:engine:get cse:registry:get 服务修改。 cse:dashboard:modify dashboard管理修改 cse:engine:list cse:engine:get cse:registry:get cse:dashboard:get cse:registry:modify 仪表盘修改。 cse:dashboard:get dashboard管理查看 cse:engine:list cse:engine:get cse:registry:get 仪表盘查看。 cse:registry:get 服务注册管理查看 cse:engine:list cse:engine:get 服务目录查看。 仪表盘不需要授权,但是依赖registry权限,因为仪表盘区分服务需要使用服务目录功能。 表5 ServiceStage细粒度权限依赖说明 权限名称 权限描述 权限依赖 应用场景 servicestage:app:get 查询应用信息 servicestage:app:list 查询应用信息。 servicestage:app:create 创建应用 servicestage:app:get servicestage:app:list servicestage:assembling:get servicestage:assembling:list servicestage:assembling:create 创建应用。 servicestage:app:modify 更新应用 servicestage:app:get servicestage:app:list servicestage:assembling:get servicestage:assembling:list servicestage:assembling:modify 更新应用。 servicestage:app:delete 删除应用 servicestage:app:get servicestage:app:list servicestage:assembling:delete 删除应用。 servicestage:app:list 查看环境和应用列表 无 查看环境和应用列表。 servicestage:environment:create 创建环境 servicestage:app:get servicestage:app:list 创建环境。 servicestage:environment:modify 更新环境 servicestage:app:get servicestage:app:list 更新环境。 servicestage:environment:delete 删除环境 servicestage:app:get servicestage:app:list 删除环境。 servicestage:pipeline:get 查看流水线信息 servicestage:pipeline:list servicestage:assembling:get servicestage:assembling:list 查看流水线信息。 servicestage:pipeline:create 创建流水线 servicestage:pipeline:list servicestage:pipeline:get servicestage:assembling:create servicestage:assembling:get servicestage:assembling:list 创建流水线。 servicestage:pipeline:modify 修改流水线 servicestage:pipeline:get servicestage:pipeline:list servicestage:assembling:modify servicestage:assembling:get servicestage:assembling:list 修改流水线。 servicestage:pipeline:delete 删除流水线 servicestage:pipeline:get servicestage:pipeline:list servicestage:assembling:get servicestage:assembling:list servicestage:assembling:delete 删除流水线。 servicestage:pipeline:list 查看流水线列表 servicestage:assembling:get servicestage:assembling:list 查看流水线列表 servicestage:pipeline:execute 执行流水线 servicestage:pipeline:get servicestage:pipeline:list servicestage:assembling:modify servicestage:assembling:get servicestage:assembling:list servicestage:app:get servicestage:app:list servicestage:app:modify 执行流水线。 servicestage:assembling:get 查看构建信息 servicestage:assembling:list 查看构建信息。 servicestage:assembling:create 创建构建 servicestage:assembling:get servicestage:assembling:list 创建构建。 servicestage:assembling:modify 修改构建 servicestage:assembling:get servicestage:assembling:list 修改构建。 servicestage:assembling:delete 删除构建 servicestage:assembling:get servicestage:assembling:list 删除构建。 servicestage:assembling:list 查看构建列表 无 查看构建列表。
共100000条