华为云用户手册

  • tomcat 功能说明 针对机器上运行性的多个Tomcat进程,周期采集其运行数据。 插件运行后,将首先在“agent框架lib/tomcat/”路径下生成TomcatJmx_fat.jar,后续每次执行时,都会通过该jar包使用JMX接口采集tomcat进程相关信息。每次采集结束,每个tomcat进程分别生成一条消息,http_port可作为区分标志。 参数配置 用户在使用该插件进行采集之前,需要先手动修改tomcat安装目录下bin/catalina.sh,在文件中添加以下字段以支持JMX采集功能: CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=58880 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" 用户还需要为插件配置当前本机运行中的Tomcat对应的安装路径,可配置单个或多个,以”,”做分隔符。 tomcat_install_path #可以识别绝对路径以及环境变量。 如果采用环境变量来传递Tomcat安装路径,要求在~/.bashrc中添加export命令进行配置,如下图: 在配置生效后,可通过source ~/.bashrc或重启机器,再启动agent进行数据采集。 消息样例及含义说明 {      "plugin_id":"tomcat",     "metric":{ "node": " host-10-33-0-188", #单位: | 类型:string | 说明:主机名,消息来源标识 "timestamp": 1482161028000, #单位: | 类型:long long | 说明:UTC时间戳 "request_count":"0", #单位: | 类型:double | 说明:采集间隔内新增请求数 "request_errors_count":"0", #单位: | 类型:double | 说明:采集间隔内新增错误请求数 "thread_total":"47", #单位: | 类型:double | 说明:累计线程数 "http_port_id":"8080", #单位: | 类型:double | 说明:tomcat对外提供服务的端口号         } }
  • file_regexp 功能说明 逐行读取指定路径文件,将内容按分界符分解为指标名称和指标值,并按照过滤条件过滤,将过滤后的指标数据上报给HCW。 参数配置 配置样例: path:/tmp/sds_zabbix.result # 采集文件路径。 delimiter # 分隔符。 _filter_key_word:.*_cassandra # 指标值关键字, 支持正则, 为空则直接上报所有指标信息,非空则只上报匹配关键字的指标数据。 _filter_value_word:ok* # 指标值匹配关键字,支持正则,为空则不进行二次匹配,直接上报指标数据,非空则 匹配成功为1,匹配失败为0。 file_regexp为多实例插件,即file_regexp插件可以配置多组参数,但需要每组参数均不相同。 消息样例及含义说明 { "plugin_id":"file_regexp", #单位: | 类型:string | 说明:插件名 "metric":[{ "node": " host-10-22-0-170", #单位: | 类型:string | 说明:主机名,消息来源标识 "timestamp": "1518078026000", #单位: | 类型:string | 说明:字符类型时间戳 "name_id":"zj23_cassandra", #单位: | 类型:string | 说明:分隔后的指标名称(标签数据) "value_id":"ok", #单位: | 类型:string | 说明:分割后的指标值(标签数据) "value":"1", #单位: | 类型:string | 说明:指标上报值 }] }
  • scriptcollet 功能说明 执行脚本命令或者读取指定文件内容,并将结果上报给HCW。 参数配置 配置样例: type:script # 采集方式,可选填 script(采集脚本)或者 path(采集文件)。 ex_path:/opt/huawei/monitor/disk.sh # 脚本执行路径或者采集文件路径。 _filter_key_id:/opt/huawei/monitor/disk.sh # 多实例插件的key,此参数是为了支持多实例插件上报使用,只需要保证多个实例中该值均不同,建议与ex_path值保持一致。 scriptcollect为多实例插件,即scriptcollect插件可以配置多组参数,但需要每组参数均不相同。 消息样例及含义说明 { "plugin_id":"scriptcollect", #单位: | 类型:string | 说明:插件名 "metric":[{ "node": " host-10-22-0-170", #单位: | 类型:string | 说明:主机名,消息来源标识 "timestamp": "1518078026000", #单位: | 类型:string | 说明:字符类型时间戳 "key_id":"/opt/huawei/monitor/disk.sh", #单位: | 类型:string | 说明:对应模板配置的key值 "collect_value":"80", #单位: | 类型:string | 说明:执行脚本命令或者读取指定文件内容上报的值 }] }
  • 运维数据开发概述 监控服务提供对运维数据进行处理的能力,请参见表1。 表1 运维数据开发功能说明 功能 数据类型 说明 数据管理 Kafka 按照分布式事务日志架构的大规模发布/订阅消息队列,用于日志数据及spark和flink清洗后的数据存储的消息队列。 HDFS 分布式文件系统,用于离线日志接入原始数据存储。 Hive 可实现大规模分析的分布式容错 数据仓库 系统,用于离线日志接入处理后的数据存储。 MPPDB Shared Nothing架构的分布式并行结构化数据库集群,用于离线日志接入处理后的数据及实时日志接入汇聚后的数据的长期存储。 ClickHouse 面向联机分析处理的列式数据库,用于日志接入原始数据存储和汇聚后的数据存储及原始日志检索。 Druid 分布式的、支持实时多维OLAP分析、列式存储的数据处理系统,用于汇聚数据的短期存储及快速查询。 CSS CS S是一个基于Apache Lucene(TM)的开源搜索引擎,用于原始日志存储及日志检索。 Influxdb 专门处理高写入和查询负载的 时序数据库 ,用于存储大规模的时序数据并进行实时分析。 Prometheus 开源的系统监控和警报工具,用于主机监控。 OBS 对象存储,用于原始日志存储。 CES 将CES上收集的云服务内置监控指标数据采集到Kafka中。 离线开发 Batch Task 离线任务,用于处理离线接入的数据。 数据汇聚 Druid汇聚 用于将Druid的数据汇聚到MPPDB中。 MPPDB汇聚 用于将MPPDB的数据汇聚到MPPDB中。 ClickHouse汇聚 用于将ClickHouse的数据汇聚到MPPDB中。 Influxdb汇聚 用于将Influxdb的数据汇聚到MPPDB中。 数据开放 - 提供令牌管理功能,可以通过令牌完成数据源的鉴权,获取数据使用权限。 数据治理 - 提供指标、视图、标签等功能,方便使用数据。 父主题: 运维数据开发
  • 运维数据开发概述 监控服务提供对运维数据进行处理的能力,请参见表1。 表1 运维数据开发功能说明 功能 数据类型 说明 数据管理 Kafka 按照分布式事务日志架构的大规模发布/订阅消息队列,用于日志数据及spark和flink清洗后的数据存储的消息队列。 HDFS 分布式文件系统,用于离线日志接入原始数据存储。 Hive 可实现大规模分析的分布式容错数据仓库系统,用于离线日志接入处理后的数据存储。 MPPDB Shared Nothing架构的分布式并行结构化数据库集群,用于离线日志接入处理后的数据及实时日志接入汇聚后的数据的长期存储。 ClickHouse 面向联机分析处理的列式数据库,用于日志接入原始数据存储和汇聚后的数据存储及原始日志检索。 Druid 分布式的、支持实时多维OLAP分析、列式存储的数据处理系统,用于汇聚数据的短期存储及快速查询。 CSS CSS是一个基于Apache Lucene(TM)的开源搜索引擎,用于原始日志存储及日志检索。 Influxdb 专门处理高写入和查询负载的时序数据库,用于存储大规模的时序数据并进行实时分析。 Prometheus 开源的系统监控和警报工具,用于主机监控。 OBS 对象存储,用于原始日志存储。 CES 将CES上收集的云服务内置监控指标数据采集到Kafka中。 离线开发 Batch Task 离线任务,用于处理离线接入的数据。 数据汇聚 Druid汇聚 用于将Druid的数据汇聚到MPPDB中。 MPPDB汇聚 用于将MPPDB的数据汇聚到MPPDB中。 ClickHouse汇聚 用于将ClickHouse的数据汇聚到MPPDB中。 Influxdb汇聚 用于将Influxdb的数据汇聚到MPPDB中。 数据开放 - 提供令牌管理功能,可以通过令牌完成数据源的鉴权,获取数据使用权限。 数据治理 - 提供指标、视图、标签等功能,方便使用数据。 父主题: 运维数据开发
  • 修改个人华为账号的密码 适用于修改个人华为账号(包括购买AppStage的租户开通者的个人华为账号、通过邀请成员加入组织的个人华为账号)的密码。 鼠标光标移至右上角登录的用户名,弹出“账号信息”页面。 在“账号信息”页面,单击“修改密码”,进入华为账号的“帐号与安全”页面。 在“安全中心”区域单击“重置帐号密码”右侧“重置”。 在“重置帐号密码”页面,输入旧密码、新密码及再次输入新密码,单击“确定”。 密码需满足以下要求: 至少8个字符。 至少包含字母和数字,不能包含空格。 密码强度:勿使用其他账号的密码。 如果忘记旧密码,可通过如下操作找回密码: 单击“忘记旧密码”。 在“找回密码”页面,输入华为账号(注册账号的手机号或邮件地址)。 输入图形验证码,单击“下一步”。 单击“获取验证码”,输入相应的邮件验证码或手机验证码,再单击“下一步”。 设置新密码并确认新密码,单击“确定”。 密码需满足以下要求: 至少8个字符。 至少包含字母和数字,不能包含空格。 密码强度:勿使用其他账号的密码。 如果您有其他设备使用此账号,设置新密码后需重新登录,以确保正常使用华为服务。
  • 修改个人华为账号的密码 适用于修改个人华为账号(包括购买AppStage的租户开通者的个人华为账号、通过邀请成员加入组织的个人华为账号)的密码。 鼠标光标移至右上角登录的用户名,弹出“账号信息”页面。 在“账号信息”页面,单击“修改密码”,进入华为账号的“帐号与安全”页面。 在“安全中心”区域单击“重置帐号密码”右侧“重置”。 在“重置帐号密码”页面,输入旧密码、新密码及再次输入新密码,单击“确定”。 密码需满足以下要求: 至少8个字符。 至少包含字母和数字,不能包含空格。 密码强度:勿使用其他账号的密码。 如果忘记旧密码,可通过如下操作找回密码: 单击“忘记旧密码”。 在“找回密码”页面,输入华为账号(注册账号的手机号或邮件地址)。 输入图形验证码,单击“下一步”。 单击“获取验证码”,输入相应的邮件验证码或手机验证码,再单击“下一步”。 设置新密码并确认新密码,单击“确定”。 密码需满足以下要求: 至少8个字符。 至少包含字母和数字,不能包含空格。 密码强度:勿使用其他账号的密码。 如果您有其他设备使用此账号,设置新密码后需重新登录,以确保正常使用华为服务。
  • 合作伙伴如何发送邀请链接?线下邀请时效是多久? 合作伙伴可以先报备潜在客户,报备后,通过线上或线下方式给潜在客户发送关联邀请。 线上邀请方式通过给潜在客户在线发送邮件邀请其自动完成关联。线上邀请链接有效期为7天,请务必提醒客户在规定时间内完成注册。若客户未能及时注册,可重新向客户发起邀请。请提醒客户,使用您报备时填写的手机号码 注册华为账号 并开通华为云进行关联。 线下邀请方式可以通过邮件、短信、微信等方式给客户发送邀请链接及二维码。线下邀请链接及二维码无有效期限制,一直有效。 详细操作步骤,请参见客户拓展。 父主题: 关联与解除关联
  • 获取合作伙伴Token时状态码返回401 Unauthorized 如果调用 IAM 的“获取用户Token”接口获取合作伙伴Token时报如下屏显的401错误, { "error": { "message": "The username or password is wrong.", "code": 401, "title": "Unauthorized" } } 请首先检查请求参数中使用的账号和密码是否为华为云账号和密码。 企业注册华为账号并开通华为云,完成企业实名认证并完成标准解决方案提供商合作伙伴认证后,即可成为解决方案提供商合作伙伴。需要使用华为云账号登录伙伴中心获取到华为云账号的密码后,通过华为云账号和密码获取合作伙伴Token。 如果 获取Token 时,请求参数中使用的是华为云账号和密码,请确认账号或密码是否有误。 父主题: 接口调用
  • 抹零金额是如何产生的,抹零规则是什么? 华为云产品 定价精度为小数点后8位(单位:元),因此在计费过程中会产生小数点后8位的资源使用费用。伙伴中心在按需计费等模式中,结算出账时实际只扣费到最小货币单位分。即展示金额时,保留到小数点后2位,小数点后第3位到第8位部分金额则会被舍弃,这种舍弃部分的金额被称作抹零金额。 示例:1GB的云硬盘 定价 为0.00064000元/1小时,客户按需使用10GB大小的云硬盘,实际使用25874秒,则未出账的应付金额为(25874/3600)* 0.00064000*10=0.04599822元,出账后实际应付金额为0.04元,抹零金额为 0.00599822元。 父主题: 其他
  • 背景信息 开发者账号也可称为用户,其信息存储在AstroZero的标准对象User中。在AstroZero中,可以通过如下两种方式添加开发者账号: 添加IAM开发者:添加的IAM开发者账号,必须是从华为云IAM同步过来的。 添加 WeLink 开发者:将WeLink用户添加到AstroZero中,作为开发者账号,详情请参见添加WeLink用户为开发者账号。 本章节以添加IAM开发者为例,向您介绍如何在AstroZero中添加开发者账号。
  • 操作步骤 在“我的应用”中,单击“设备维修管理系统”,进入应用。 在“User”目录中,将鼠标放在“Script”上,单击界面上出现的“+”,在弹出菜单中选择“脚本”。 在弹窗中,选中“创建一个新脚本”,在“名称”文本框中输入“registerPortalUser”,单击“添加”。 在代码编辑器中,插入如下脚本代码。 import * as buffer from "buffer"; import * as crypto from "crypto"; import * as db from "db"; import * as context from 'context'; import * as http from 'http'; import * as permission from 'permission'; //定义入参结构,包括注册账号的用户名、密码和角色,为必填字段 @action.object({ type: "param" }) export class ActionInput { @action.param({ type: 'String', required: true, label: 'string' }) username: string; @action.param({ type: 'String', required: true, label: 'string' }) password: string; @action.param({ type: 'String', required: true, label: 'string' }) role: string; } //定义出参结构,出参包含1个参数,portaluser的记录id @action.object({ type: "param" }) export class ActionOutput { @action.param({ type: 'String' }) msg: string; } //使用数据对象PortalUser @useObject(['PortalUser']) @action.object({ type: "method" }) export class RegisterPortalUser { //定义接口类,接口的入参为ActionInput,出参为ActionOutput @action.method({ input: 'ActionInput', output: 'ActionOutput' }) public registerPortalUser(input: ActionInput): ActionOutput { let out = new ActionOutput(); //新建出参ActionOutput类型的实例,作pu为返回值 let error = new Error(); //新建错误类型的实例,用于在发生错误时保存错误信息 try { let s = db.object('PortalUser'); let saltedPassword = salt(input.password); let userMsg = { "usrName": input.username, "name": input.username, "userPassword": saltedPassword['saltedPassword'], "passwordSalt": saltedPassword['salt'], "userType": input.role }; let userId = s.insert(userMsg); if (userId) { out.msg = "注册成功!"; } else { error.name = "USERERROR"; error.message = "注册失败!"; throw error; } } catch (error) { if (error.name == "405230618") { error.message = "该用户名已注册!" } console.error(error.name, error.message); context.setError(error.name, error.message); } return out; } } function _salt(password: string, saltBuf: buffer.Buffer, encoding: buffer.Encoding = buffer.Encoding.Base64): string { const passwordBuf = buffer.from(password) const crypt = crypto.pbkdf2(passwordBuf, saltBuf, 1000, 32, crypto.Hashs.SHA1) return crypt.toString(encoding) } function salt(password: string, encoding: buffer.Encoding = buffer.Encoding.Base64): object { const saltBuf = crypto.randomBytes(6) const saltedPassword = _salt(password, saltBuf, encoding) return { salt: saltBuf.toString(encoding), saltedPassword: saltedPassword } } 单击编辑器上方的,保存脚本。 测试脚本能否正常执行。 单击编辑器上方的,执行脚本。 在界面底部输入测试数据,单击测试窗口右上角执行图标。 { "username": "test_cs", "password": "***", "role": "cs" } 执行成功,会在“输出”页签返回查询结果。 { "msg": "注册成功!" } 测试成功,单击编辑器上方的,启用发布脚本。
  • 在脚本中使用AI服务 推荐模型发布后,在图1中单击“使用”,可使用该推荐模型进行推荐。 系统支持使用服务编排或者脚本来调用推荐服务。 选择使用该推荐服务的应用,选择页签“在Script中使用”,单击“开发”。 图6 在脚本中使用 系统会自动为所选应用创建好调用该AI的脚本,代码示例如下: import * as aienable from 'aienable'; export class Input { @action.param({ type: "Any", required: false, description: "name" }) name: string; // name为已发布的预测/推荐服务名称 @action.param({ type: "Any", required: false, description: "input" }) dataInputs: JSON; } export class Output { @action.param({ type: "Any" }) result: JSON; } export class testAIEnable { @action.method({ input: "Input", output: "Output", description: "do a operation" }) run(input: Input): void { let client = aienable.newClient("recommendation_services") let result = client.recommend(input.name, input.dataInputs); console.log(result) } } 单击编辑器上方的,保存脚本。 单击编辑器上方的,运行脚本。 在页面底部“输入参数”页签输入请求参数,在图6中“输入参数详情”区域单击获取,给入参即相关字段配上测试值。 单击测试窗口右上角的,执行脚本。 其中,“recipients_id”为5配置的接收人对象字段值,该场景表示接受推荐内容的客户ID。以下输入参数中“fff7466a253c0e59499ea943462c10f9”和“677ea793bab5253b52c7f73f0e120b74”为有效的客户ID,“6775ba6a3e92020abc8e6cd6e19e867a”为无效的客户ID,即该客户ID不存在。 “N”表示给接收人推荐的产品数量。 { "name": "test_02", "dataInputs": { "recipients_id": [ "fff7466a253c0e59499ea943462c10f9", "677ea793bab5253b52c7f73f0e120b74", "6775ba6a3e92020abc8e6cd6e19e867a" ], "N": 3 } } 输出以下结果,表示调用推荐服务成功,给有效客户ID的推荐内容为5配置的产品ID。其中“rating”值为预测接收人购买该产品的概率。这里看出,当输入无效客户ID时,不会推荐相关内容。 { resCode: '0', resMsg: '成功', result: { 677ea793bab5253b52c7f73f0e120b74: [ { aienable__productId__CST: '5727b4e9463bfa0b43bf97397c4b7c44', rating: 0.9780523919210801 }, { aienable__productId__CST: '58e3dad74a022a8e41571be503143e5b', rating: 0.9343108103239535 }, { aienable__productId__CST: '58efb9b638561ce132216a9a612513e2', rating: 0.9228962093643385 } ], fff7466a253c0e59499ea943462c10f9: [ { aienable__productId__CST: '5727b4e9463bfa0b43bf97397c4b7c44', rating: 1 }, { aienable__productId__CST: '57f2bc497c1a3ebe41ba7a06d78ed159', rating: 0.979109618457509 }, { aienable__productId__CST: '574597aaf385996112490308e37399ce', rating: 0.9502617871072747 } ] } } 单击编辑页面上方的,启用脚本。
  • 在服务编排中使用AI服务 推荐模型发布后,在图1中单击“使用”,可使用该推荐模型进行推荐。 系统支持使用服务编排或者脚本来调用推荐服务。 选择使用该推荐服务的应用,保持默认所选页签“在Flow中使用”,单击“开发”。 图2 在服务编排中使用 系统会自动为所选应用创建好“AIExample”文件夹和归属于该文件夹的服务编排。 在弹出的服务编排编辑页面查看如下信息。 在页面右侧选择,在全局上下文页面查看到系统已自动创建如下变量。 图3 查看变量 表4 变量说明 变量名 类型 描述 dataInputs 任意 输入参数。 resCode 文本 返回码,如果返回“0”代表请求成功。 resMsg 文本 返回消息,如果成功状态,通常会返回“成功”,其他情况会返回具体的错误信息。 result 任意 调用推荐服务请求返回的推荐内容。 查看整个服务编排的入参、出参。 图4 查看入参出参 选择推荐服务图元,查看配置信息。 图5 图元配置 单击编辑器上方的,保存服务编排。 单击编辑器上方的,运行服务编排。 输入入参,入参可从图2中“输入参数详情”区域单击获取,给入参即相关字段配上测试值。 其中,“recipients_id”为5配置的接收人对象字段值,该场景表示接受推荐内容的客户ID。以下输入参数中“fff7466a253c0e59499ea943462c10f9”和“677ea793bab5253b52c7f73f0e120b74”为有效的客户ID,“6775ba6a3e92020abc8e6cd6e19e867a”为无效的客户ID,即该客户ID不存在。 “N”表示给接收人推荐的产品数量。 { "dataInputs": { "recipients_id": [ "fff7466a253c0e59499ea943462c10f9", "677ea793bab5253b52c7f73f0e120b74", "6775ba6a3e92020abc8e6cd6e19e867a" ], "N": 3 } } 输出以下结果,表示调用推荐服务成功,给有效客户ID的推荐内容为5配置的产品ID。其中,“rating”值为预测接收人购买该产品的概率。这里看出,当输入无效客户ID时,不会推荐相关内容。 { "interviewId": "002N000000pLvvBbbBke", "outputs": { "resCode": "0", "resMsg": "成功", "result": { "677ea793bab5253b52c7f73f0e120b74": [ { "aienable__productId__CST": "5727b4e9463bfa0b43bf97397c4b7c44", "rating": 0.9780523919210801 }, { "aienable__productId__CST": "58e3dad74a022a8e41571be503143e5b", "rating": 0.9343108103239535 }, { "aienable__productId__CST": "58efb9b638561ce132216a9a612513e2", "rating": 0.9228962093643385 } ], "fff7466a253c0e59499ea943462c10f9": [ { "aienable__productId__CST": "5727b4e9463bfa0b43bf97397c4b7c44", "rating": 1 }, { "aienable__productId__CST": "57f2bc497c1a3ebe41ba7a06d78ed159", "rating": 0.979109618457509 }, { "aienable__productId__CST": "574597aaf385996112490308e37399ce", "rating": 0.9502617871072747 } ] } } } 单击编辑器上方的,启用服务编排。
  • 基于规则 “用户任务”图元接收人类型设置为“基于规则”时,可以将全局上下文中的变量拖入到条件输入框中。当条件输入框中的变量或条件为true时,将会把任务分配给选择框中配置的用户。您可以通过以下方式,配置接收任务的用户: 当前用户:把任务分配给执行当前用户任务的用户。 上级经理:把任务分配给执行当前用户任务的用户的上级经理。 特定的用户:把任务分配给选择框中选择的用户。 队列:把任务分配给选择框中选择的工作队列中的所有用户。 用户属性:根据用户对象的某一字段,进行任务的分配。 变量:根据输入框中的用户ID或用户名,将任务分配给相应的用户。 图6 基于规则
  • 当前泳道 “用户任务”图元接收人类型设置为“当前泳道”,将泳道和工作队列绑定,则处于该泳道的用户任务图元,由该泳道对应工作队列中的成员去处理。工作队列中的成员可以是多个用户、业务用户、公共组中成员、角色或带有下属的角色中成员。配置过程如下: 参考管理队列中操作,创建一个工作队列,将处理任务的用户或业务用户加入工作队列中。 例如,创建派单员工作队列“Dispatcher”。 图2 创建工作队列 如图3所示,“用户任务”的接收人类型选择“当前泳道”,可以将任务分配给“当前泳道角色的任意成员”或“当前泳道中的上一个任务被分配的人员”。 图3 用户任务中设置当前泳道接收 如图4所示,单击左侧泳道区域,在“泳道配置”中设置派单员工作队列“Dispatcher”。 处于该泳道的用户任务图元,则由工作队列“Dispatcher”中的成员去处理。 图4 设置泳道
  • 名称和表达式 “用户任务”图元接收人类型设置为“名称和表达式”时,可以通过“表达式”、“用户”和“组”三种方式分配该任务的参与者。这时,泳道中的工作队列配置不起作用。 图5 名称和表达式 用户:在“取值”中,选择接收该任务的用户,不包括业务用户。 组:在“取值”中选择公共组,则该任务由公共组的成员去处理。公共组的成员可以是用户、业务用户、其他公共组的成员、角色或带有下属的角色中成员。如何创建工作组,请参见管理公共组。 表达式:当将“参与者”配置为“表达式”时,实际是一个变量。在“取值”中,可设置变量的值,变量值支持以下几种: 用户的用户名或用户ID,其中用户名前需要加“user:”前缀。 业务用户的用户名或业务用户ID,其中业务用户名前需要加“puser:”前缀。 公共组名称或者公共组ID,其中公共组名称前需要加“group:”前缀。 角色名称或者角色ID,其中角色名称前需要加“role:”前缀。 例如,分配任务接受者为用户名为“PortalUser1”的业务用户、用户名为“User1”的用户、用户ID为“10XX000000XXXXXXX”的用户、公共组名称为“group1”和角色名称为“role1”的合集,则取值为“"puser:PortalUser1,user:User1,10XX000000XXXXXXX,group:group1,role:role1"”。多个取值之间用英文逗号“,”分隔,取值外加英文双引号。
  • 用户和业务用户 在进行任务分配时,低代码平台提供了两种用户可以进行任务的分配,分别是用户和业务用户。 用户(User):是租户账号或子账号开发者,用来管理应用和业务用户。购买AstroZero的租户账号默认拥有所有权限,是管理员用户,可添加子账号并为其配置需要的权限。 业务用户(即PortalUser):是访问在AstroZero中开发的业务应用的用户账号,即业务应用的使用者。 用户可以在工作流中通过用户任务图元,在用户任务配置页面的“接收人”模块,通过以下三种方式将任务分配给用户或业务用户。 当前泳道 流程发起人的主管 名称和表达式 基于规则 图1 接收人类型
  • 操作步骤 登录AstroZero服务控制台。 在实例页面,单击“进入首页”,进入新版应用开发页面。 在左侧导航栏中,单击“资产”,进入资产页面。 将鼠标放在已创建的Native Service上,单击,选择“编辑”。 在NativeService配置页面,选择“导航”。 在“API设计”页签,单击“开始设计API”。 图1 开始设计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 定义模式对象 参考8~10,新增其他API方法。 编辑方法完成后,需要手动删除“/case”、“/case/{CaseId}”两个示例,删除示例模式对象。 单击“保存”,创建的自定义接口会出现在页面上。 在页面右上方,单击,可以查看自定义接口中的方法和模型对象。单击,可导出该原生服务下接口定义yaml文件。 单击,发布API。 发布后如果需要修改API,需要单击,取消发布后进行修改,修改后再保存并发布。 已发布的API可能在服务编排中已经使用,如果修改API导致不兼容,请同步修改引用该API的服务编排。
  • 如何在脚本、服务编排、工作流中加密数据? 用户使用AstroZero的脚本、服务编排、工作流等开发的内容是不会加密存储的。如果用户需要加密数据,请使用加密类型的系统参数。 参考如何创建系统参数中操作,新建加密类型的系统参数。 例如,新建加密参数appClientId,注意要勾选“是否加密”。 图5 新建appClientId系统参数 在脚本、服务编排和工作流中,使用上一步创建的系统参数。 脚本:脚本代码中引入系统参数的代码行中,引入系统库,并使用“sys.getParameter('appClientId')”引入系统参数。 import * as sys from 'sys'; ...... let cliendId = sys.getParameter('appClientId'); 图6 在脚本中引用参数appClientId 服务编排:在服务编排“全局上下文”中新增公式变量,表达式输入“SYSPA RAM ETER('appClientId')”,引入系统参数。 图7 在服务编排中引用参数appClientId 工作流:在工作流的“全局上下文”中,新增文本类型的变量,图元配置中设置该变量,值输入“SYSPARAMETER('appClientId')”,引入系统参数。 图8 在工作流中引用参数appClientId
  • 场景描述 新增、查询系统参数并进行修改。系统参数创建后,可以在其他地方以“{!parameter_name}”方式引用。例如,在如下两个场景使用系统参数: 将系统公用邮箱设置为系统参数。 将系统定时数据清理的执行时间,设置为系统参数。例如,系统执行数据清理任务时,会自动查询是否配置了系统参数“bingo.expiretask.execute.time”(AstroZero已预置该系统参数),查询到后,会按照配置的时间来启动数据清理。 本章节介绍的是在应用内配置系统参数,还可以在环境配置中创建系统参数,相关操作请参考配置系统参数。两者的区别是在应用中配置的系统参数,可在打包发布应用时,将系统参数一起发布出去。在环境配置中,设置的系统参数无法随应用发布出去。
  • 如何使用系统参数 系统参数创建完成后,可在脚本、服务编排和工作流等中使用。 脚本:脚本代码引入系统参数的代码行中,引入“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 在自定义连接器中引入系统参数
  • 配置其他资源 参考如何进入业务配置中心中操作,登录AstroZero业务配置中心。 在“应用配置”页签中,选择应用所在的类别(例如App),单击具体的应用。 在左侧导航栏中,根据需要配置所需的资源。 图2 业务配置中心中配置应用资源 在业务配置中心,还可以配置如下应用资源: 页面设置:查看该应用中所有高级页面。 定时任务:查看应用中的所有定时任务,可停用、启用定时任务。 主题:查看应用中标准页面的主题,可停用、启用主题。停用后,应用中标准页面引用的该主题会失效。 公共接口:查看应用中开放的公共接口。单击自定义接口列表中的操作名称,可查看接口详情。在接口详情中单击“编辑”,在“业务权限凭证列表”中选择需要添加的业务权限凭证,单击,将选择的业务权限凭证添加至右侧列表,单击“保存”,可给接口添加业务权限凭证。 业务权限凭证:查看应用中所有的业务权限凭证。 扩展权限集:查看应用中所有的扩展权限集,用于给用户分配扩展权限。 多语言:可查看应用中所有的多语言资源。 错误码:可查看应用中所有的错误码,包括自定义的错误码和系统错误码。单击自定义错误码名称,进入详情可,可修改该错误码状态码。 选项列表:查看应用中所有的选项列表。选项列表用于定义对象的字段可选用的值,类似于定义下拉列表的一组枚举值。 系统参数:可查看应用中所有的系统参数。对于打包时设置未受保护的系统参数,可在业务配置中心修改系统参数,包括修改系统参数值、值类型。修改系统参数取值后,引用该系统参数的地方都会更新成为修改后的值。 数据导入模板:您可通过定义数据导入模板,定义后单击下载模板,录入数据并保存模板,再单击上传该模板导入数据。
  • 前提条件 已获取到应用或BO的资产包或源码包,可根据如下实际场景选择“资产包(安装包、补丁包)”或“源码包”。 在其他开发环境中,安装源码包应用。安装后,会显示在新版开发环境首页的“应用”页面。 源码包是应用开发完成后,在应用列表中通过“导出应用”,导出的应用安装包。源码包中的所有组件都不受保护和限制,源码包只能在开发环境中安装。 图1 下载源码包 在其他开发环境、沙箱环境或运行环境中,安装资产包应用。在其他开发环境安装资产包后,应用会显示在新版开发环境首页的“资产”页面。 资产包(安装包、补丁包)是应用开发完成后,选择“安装包”或“补丁包”发布出来的应用包。在沙箱环境、运行环境安装的资产包中,组件资产都是受保护的。 图2 获取安装包、补丁包
  • 查看操作日志 参考如何进入业务配置中心中操作,登录AstroZero业务配置中心。 在左侧导航栏中,选择“操作日志”。 在操作日志页面,根据需要设置查询条件。 图1 设置查询条件 操作员:操作员名称,即AstroZero的用户。 操作时间:操作的时间,即系统记录日志的时间。 客户端IP:客户端IP地址和端口号,即用户登录AstroZero使用的客户端的IP地址和端口号。 操作行为:操作类型,包括登录、登出、注册用户。 结果:操作结果,系统记录的操作结果。 附件信息:附件类的信息。
  • 如何使用原生服务 原生服务在AstroZero内的使用场景包括但不限于: 在服务编排中调用 将原生服务集成到AstroZero中,供服务编排内部调用。 图1 在服务编排中调用 供外部系统通过Restful接口调用 通过下面的REST接口,调用原生服务,该调用方式只适用于外部接口。 https://AstroZero 域名 /native/NativeService1/0.1.0/health 其中,“AstroZero域名”请配置为AstroZero对外提供的默认域名,“/native/NativeService1/0.1.0/health”为该服务的公共接口的开放URL,可以在公共接口详情中查询获得。 图2 在开放接口中调用 在脚本中调用 原生服务集成到AstroZero上,且在AstroZero上自定义了公共接口后,可以在脚本中内部调用公共接口。 脚本部分示例如下: //其中"appcube.cn-north-4.huaweicloud.com"为对外提供的默认域名 let resp3 = httpClient.post("https://appcube.cn-north-4.huaweicloud.com"+ "/native/NativeService1/0.1.0/health", callOptions3); console.log(context.getHost()) console.log(resp3.body); if (resp3.body.resCode == "0" && resp.body.result) { console.log('auth success, currrent user is: ', resp3.body.result.name) } 其中,“appcube.cn-north-4.huaweicloud.com”为对外提供的开发态默认域名,“/native/NativeService1/0.1.0/health”为该服务的公共接口的开放URL,可以在公共接口详情中查询获得。该调用方式只适用于外部接口。 在页面中调用 在高级页面,可以在Widget代码中,调用原生服务的自定义公共接口。 在标准页面,可以在事件代码中,直接调用原生服务的自定义公共接口或通过定义服务模型,关联调用原生服务的服务编排,再在页面事件代码中,调用服务模型从而来调用原生服务。在标准页面上传组件中,还可以调用原生服务的自定义接口实现上传功能。标准页面中,上传组件功能介绍请参见上传。 在工作流中调用 在服务编排中调用原生服务后,向工作流设计页面的泳道中拖入“调用服务编排”图标。选择,在“服务编排配置”页面,选择需要调用的服务编排,配置输入输出参数。 图3 在工作流中调用 在触发器中调用 在服务编排中调用原生服务后,在触发器中可调用该服务编排,当满足触发器规则时,系统会执行该服务编排。
  • 什么是业务配置中心 业务配置中心与环境配置(管理中心)提供的能力不同,业务配置中心将配置过程进行精简,便于应用管理员快速管理权限、配置应用资源。例如,环境配置提供了用户管理功能,用户可新建和配置权限,权限项颗粒度较细,且很多权限项针对业务用户不会用到,如开发应用、开发页面、开发Astro Canvas项目权限项。业务配置中心提供的配置能力较简单化,例如角色权限中只提供一些业务用户会用到的权限项进行配置。 AstroZero业务配置中心,提供了如下能力: 用户可对安装在运行环境中的应用资源进行查看和配置,应用资源包括应用布局、应用菜单、应用中的流程配置、触发器、系统参数、选项列表等。 可管理业务用户,包括增、删、改、查业务用户以及给业务用户配置相应的权限。 可管理角色权限,包括创建、删除和管理角色,并设置角色所具备的权限。可以给一个业务用户分配多个角色权限,其权限为多个角色权限的合集。 可管理公司的组织机构,包括创建、删除和管理公司的组织机构。组织的管理员可以管理当前组织下的用户。一个业务用户可以被添加到多个组织中。 父主题: 业务配置中心
  • 操作场景 创建一个定时任务“OfferingOffline”,用于实现从2021-11-25开始,每天零点自动将过期商品下架。其中,将过期商品下架的功能由“OfferingOffline”脚本实现。在创建定时任务之前,需要先开发实现定时任务功能的Script脚本,Script脚本的开发可参考开发脚本。 除了在环境配置中创建定时任务,您还可以在应用开发时创建定时任务,详情请参见创建定时任务。两者的区别是在应用开发设计器中创建的定时任务,可在打包发布应用时,将定时任务一起打包发布出去。在环境配置中创建的定时任务,无法随应用发布出去。
  • 安全设置 参考如何进入业务配置中心中操作,登录AstroZero业务配置中心。 在左侧导航栏中,选择“安全设置”。 修改相应参数,单击“保存”。 图1 安全设置 密码长度(位):最小长度为2,最大长度为30。 是否允许弱口令密码:是否允许用户,设置弱口令密码。 不允许使用最近密码(次):用户修改密码时,不允许使用最近密码的次数。 首次登录是否强制修改密码:如果设置为是,则未修改过密码的用户下次登录时需要修改密码。 强制定期修改密码周期(天):用户密码设置后,多久强制用户再次修改密码。 连续输错密码启用图片验证码(次):用户密码连续输错几次,启用图片验证码。 连续使用错误密码锁定用户(次):用户密码连续输错几次,锁定用户。 锁定用户后自动解锁(分钟):用户账号被锁后,多久可自动解锁。 系统支持业务用户在个人设置中修改密码。
  • 使用场景 AstroZero提供了“客户端模式”和“授权码模式”两种授权模式,进行OAuth鉴权。 客户端模式 通过该模式获取的access-token,用于在调用API接口时进行鉴权,使用时需在请求消息头上设置“access-token”。 授权码模式 通过该模式获取的access-token,只能用于在获取用户信息时进行鉴权,使用时需在请求消息头上设置“Authorization: Bearer ***”。
共100000条