华为云用户手册

  • 入参 POST http://{Endpoint}/rdm_{appID}_app/services/dynamic/api/batchGet { "params": { "ids": [ "XXXXXXXXXX", "XXXXXXXXXX" ] } } 其中,{Endpoint}表示数据建模引擎所在域名或IP地址,{appID}表示应用ID。
  • 入参示例 POST http://dme.cn-north-4.huaweicloud.com/rdm_01a2b2c4764d4e00f123g345fd9baa9f_app/services/dynamic/api/batchGet "params": { "ids": [ "455304697733976064", "455304645330341888" ] } }
  • 出参示例 { "result": "SUCCESS", "data": [ { "id": "455304645330341888", "creator": "test1 3c03e719256a427eb9277b64fcXXXXXX", "modifier": "test1 3c03e719256a427eb9277b64fcXXXXXX", "createTime": "2023-01-13T01:38:07.000+00:00", "lastUpdateTime": "2023-01-13T01:38:07.000+00:00", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "People", "tenant": { "id": "-1", "creator": "xdmAdmin", "modifier": "xdmAdmin", "createTime": "2022-08-03T11:27:44.000+00:00", "lastUpdateTime": "2022-08-03T11:27:44.000+00:00", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "Tenant", "tenant": null, "className": "Tenant", "name": "basicTenant", "description": "默认租户", "kiaguid": null, "securityLevel": "internal", "code": "basicTenant", "disableFlag": false, "dataSource": null }, "className": "People", "name": "李四", "description": null, "kiaguid": null, "securityLevel": "internal", "sex": "男", "age": 20 }, { "id": "455304697733976064", "creator": "test1 3c03e719256a427eb9277b64fcXXXXXX", "modifier": "test1 3c03e719256a427eb9277b64fcXXXXXX", "createTime": "2023-01-13T01:38:19.000+00:00", "lastUpdateTime": "2023-01-13T01:38:19.000+00:00", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "People", "tenant": { "id": "-1", "creator": "xdmAdmin", "modifier": "xdmAdmin", "createTime": "2022-08-03T11:27:44.000+00:00", "lastUpdateTime": "2022-08-03T11:27:44.000+00:00", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "Tenant", "tenant": null, "className": "Tenant", "name": "basicTenant", "description": "默认租户", "kiaguid": null, "securityLevel": "internal", "code": "basicTenant", "disableFlag": false, "dataSource": null }, "className": "People", "name": "李兰", "description": null, "kiaguid": null, "securityLevel": "internal", "sex": "女", "age": 18 } ], "errors": [] }
  • 操作步骤 进入HarddiskTracing_GetDetailList服务详情页切换至“服务开发”页签,可以看到系统已根据步骤1:服务定义中编排的自动生成高效的服务查询脚本。 图1 服务开发 单击“运行”,弹出输入请求参数窗口。 在“PurchaserSN_BarCode”、“PurchaserSN_Item_SN”输入框中输入值,单击“验证环境运行”或“生产环境运行”。 (可选)修改出参名称。 如果对出参展示名称不满意,可在脚本编辑框中进行修改后再次运行。
  • 步骤2:挂载文件系统 执行如下命令,在云服务器上挂载SFS Turbo文件系统。 mount -t nfs -o vers=3,nolock 云服务器弹性公网IP地址:/ /mnt/sfs_turbo 执行如下命令,赋予执行权限。 chmod +x /etc/rc.d/rc.local 执行如下命令,打开并编辑rc.local配置文件。 vim /etc/rc.d/rc.local 按“i”切换至编辑模式,并在最后一行添加如下命令。 mount -t nfs -o vers=3,nolock 云服务器弹性公网IP地址:/ /mnt/sfs_turbo 按“Esc”,输入“:wq”,保存文件返回。
  • 步骤3:安装JDK 下载JDK 1.8版本的源码包,您可前往Java SE 下载页面选择需要的版本。 建议先将JDK源码包下载到本地,再上传至云服务器,否则会出现解压错误。具体操作请参见上传文件到云服务器方式概览。 执行如下命令,新建JDK安装目录。 例如,JDK安装目录为“/opt/cloud/tenant-service”。 mkdir /opt/cloud/tenant-service 执行如下命令,将JDK源码包解压到指定位置。 例如,将JDK源码包解压到“/opt/cloud/tenant-service”路径下。 tar -xvf jdk-8u221-linux-x64.tar.gz -C /opt/cloud/tenant-service 执行如下命令,打开profile文件。 vim /etc/profile 按“i”切换至编辑模式,根据您实际使用的JDK版本,在底部添加以下内容。 #set java environment JAVA_HOME=/opt/cloud/tenant-service/jdk/jdk-18.0.x(您的JDK版本) JRE_HOME=$JAVA_HOME PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JRE_HOME/lib/tools.jar export JAVA_HOME JRE_HOME PATH CLASSPATH 按“Esc”,输入“:wq”,保存文件并返回。 执行如下命令,读取环境变量。 source /etc/profile 执行如下命令,查看JDK是否已经安装成功。 java -version 返回如下回显信息,则表示安装成功。 [root@ecs-c525-web ~]# java -version java version "18.0.3" 2022-01-18 LTS Java(TM) SE Runtime Environment (build 18.0.3+8-LTS-86) Java HotSpot(TM) 64-Bit Server VM (build 18.0.3+8-LTS-86, mixed mode, sharing)
  • URI URI格式: GET http://{Endpoint}/rdm_{appID}_app/services/rdm/basic/api/file/images?fileId={FileID} 参数说明: 表1 URI参数说明 参数 是否必填 参数类型 描述 Endpoint 是 String 承载REST服务端点的服务器域名或IP地址。 appID 是 String 应用ID。 fileId 是 String 已上传文件的ID。 该参数会以“?fileId={FileID}”格式拼接在URI后面,其中“FileID”表示需要预览文件(图片)的ID。
  • 资源环境示例 本方案部署iDME应用所需的CloudPond资源环境组成及版本说明如下: 表1 部署资源 资源 版本 CPU(核数) 内存(G) 数据盘(G) 数量 iDME运行态实例 - 4 8 200 2 分布式消息服务 Kafka 2.3.0 4 8 200 3 云数据库 RDS for PostgreSQL 12.11 32 128 800 2 分布式缓存服务 Redis 5.0.14 4 16 200 2 文档数据库服务 DDS for MongoDB 社区版4.0.28(自建集群) 4 8 1000 3 弹性文件系统 SFS-Turbo(电子仓库) - - - 2000 - 云搜索服务 CSS 7.9.3 8 16 1000 3
  • 应用场景 工业数字模型驱动引擎(Industrial Digital Model Engine,简称iDME)的应用部署依赖于运行节点,其中数据交互依赖的中间件包括:云数据库、MongoDB、Redis、CSS、Kafka以及文件存储系统。因此,在部署iDME应用前需要确保中间件服务已完成部署,并且部署iDME应用的节点能够正常访问中间件服务。本解决方案能帮助用户快速在华为云上通过智能边缘小站(CloudPond)完成iDME应用部署。
  • 故障处理 在CloudPond使用iDME时,可能会出现一些故障问题。本文介绍一些常见故障问题的排查及定位。 表1 现象描述 现象 处理措施 在调用接口时,发现异常(如后端无响应但进程还在)。 方式一:执行systemctl reload dme.service命令,重启iDME服务。 方式二:先执行Kill命令结束iDME进程,再通过启动startxdm.bash脚本,启动iDME服务。 在监测时,发现JVM异常(如OOM(Out of Memory)等)。 云服务器运行正常,且存在进程,但进程不可用。 执行systemctl reload dme.service命令,重启iDME服务。 云服务器宕机了。 执行reboot命令,重启云服务器。 执行systemctl reload dme.service命令,重启iDME服务。 如通过以上操作均无法解决您的问题,可将日志信息、发生问题时的操作内容、操作接口和参数、报错信息等信息反馈至华为云技术支撑人员。 父主题: 基于智能边缘小站手动部署iDME应用
  • 入参示例 POST http://dme.cn-north-4.huaweicloud.com/rdm_01a2b2c4764d4e00f123g345fd9baa9f_app/services/dynamic/api/People/find/20/1 { "params": { "sorts": [ { "sort": "DESC", "orderBy": "name" }, { "sort": "DESC", "orderBy": "age" } ], "filter": { "joiner": "and", "conditions": [ { "conditionName": "sex", "operator": "=", "conditionValues": [ "男" ] } ] }, "isNeedTotal": true } }
  • 入参 POST http://{Endpoint}/rdm_{appID}_app/services/dynamic/api/{entityName}/find/pageSize/curPage { "params": { "sorts": [ { "sort": "DESC", "orderBy": "属性名称" } ], "filter": { ...... }, "isNeedTotal": true } } {Endpoint}表示数据建模引擎所在域名或IP地址,{appID}表示应用ID,{entityName}表示实体的英文名称。 在URL上填写待查询的页码(curPage)和每页可显示的数据量(pageSize)。 在JSON代码中的设置sorts字段和filter字段。 sorts:填写需要按哪个字段进行排序,可填写模型自身属性、参考对象的属性、扩展属性及分类属性,也可为空。 filter:填写过滤条件,可为空。
  • 出参示例 { "result": "SUCCESS", "data": [ { "id": "455304645330341888", "creator": "test1 3c03e719256a427eb9277b64fcXXXXXX", "createTime": "2023-01-13T01:38:07.000+00:00", "modifier": "test1 3c03e719256a427eb9277b64fcXXXXXX", "lastUpdateTime": "2023-01-13T01:38:07.000+00:00", "rdmVersion": 1, "rdmExtensionType": "People", "rdmDeleteFlag": 0, "tenant": { "id": "-1", "clazz": "Tenant" }, "className": "People", "name": "李四", "description": null, "kiaguid": null, "securityLevel": "internal", "sex": "男", "age": 20 }, { "id": "455304534248394752", "creator": "test1 3c03e719256a427eb9277b64fcXXXXXX", "createTime": "2023-01-13T01:37:40.000+00:00", "modifier": "test1 3c03e719256a427eb9277b64fcXXXXXX", "lastUpdateTime": "2023-01-13T01:37:40.000+00:00", "rdmVersion": 1, "rdmExtensionType": "People", "rdmDeleteFlag": 0, "tenant": { "id": "-1", "clazz": "Tenant" }, "className": "People", "name": "张三", "description": null, "kiaguid": null, "securityLevel": "internal", "sex": "男", "age": 18 } ], "errors": [], "pageInfo": { "curPage": 1, "pageSize": 20, "totalRows": 2, "totalPages": 1 } }
  • 入参示例 根据源端RelationRight的ID为454580805678902222的关系实例,查询目标端类型为RelationRight的所有目标实体实例。 { "params":{ "sourceId": 454580805678902222, "targetType":"RelationRight", "latestOnly":false } }
  • 出参示例 { "result": "SUCCESS", "data": [ { "id": "454580805678904444", "creator": "xdm_pub_validation f9828b63ee074aa69a2b3fb30aXXXXXX", "createTime": "2023-01-12T11:55:47.918+0000", "modifier": "xdm_pub_validation f9828b63ee074aa69a2b3fb30aXXXXXX", "lastUpdateTime": "2023-01-12T11:55:47.918+0000", "rdmExtensionType": "RelationRight", "tenant": { "id": "-1", "creator": "xdmAdmin", "createTime": "2022-09-22T04:10:48.543+0000", "modifier": "xdmAdmin", "lastUpdateTime": "2022-09-22T04:10:48.543+0000", "rdmExtensionType": "Tenant", "tenant": null, "className": "Tenant", "name": "basicTenant", "description": "默认租户", "code": "basicTenant", "disableFlag": false, "dataSource": "DefaultDataSource" }, "className": "RelationRight", "name": null, "description": null } ], "errors": [], "pageInfo": { "curPage": 1, "pageSize": 20, "totalRows": 1, "totalPages": 1 } }
  • 入参 { "params":{ "sourceId": XXXX, "targetType":"XXXX", "latestOnly":false } } sourceId:源/目标数据模型的ID。 targetType:目标数据模型的类型。 latestOnly:目标对象是否仅返回源对象关联的最新版本目标对象,默认为false。(仅对M-V模型有效,即返回所有版本)
  • 示例场景 假设有一个源端为RelationLeft,目标端为RelationRight的关系实体(RelationTest)。其中, RelationLeft有两个关系实例,唯一编码为454580805678901111和454580805678902222。 RelationRight有两个关系实例,唯一编码为454580805678903333和454580805678904444。 并创建了如下唯一编码的关系实例: 1313:源端为454580805678901111,目标端为454580805678903333。 2424:源端为454580805678902222,目标端为454580805678904444。 1414:源端为454580805678901111,目标端为454580805678904444。
  • 入参 { "params":{ "objectId":XXXX, "role":"target", "latestOnly":false } } objectId:对象ID。 role:角色,源数据模型或目标数据模型。 latestOnly:目标对象是否仅返回源对象关联的最新版本目标对象,默认为false。(仅对M-V有效,即返回所有版本)
  • 出参示例 { "result": "SUCCESS", "data": [ { "id": "454580805678901111", "creator": "xdm_pub_validation f9828b63ee074aa69a2b3fb30aXXXXXX", "createTime": "2023-01-12T11:55:22.797+0000", "modifier": "xdm_pub_validation f9828b63ee074aa69a2b3fb30aXXXXXX", "lastUpdateTime": "2023-01-12T11:55:22.797+0000", "rdmExtensionType": "RelationLeft", "tenant": { "id": "-1", "creator": "xdmAdmin", "createTime": "2022-09-22T04:10:48.543+0000", "modifier": "xdmAdmin", "lastUpdateTime": "2022-09-22T04:10:48.543+0000", "rdmExtensionType": "Tenant", "tenant": null, "className": "Tenant", "name": "basicTenant", "description": "默认租户", "code": "basicTenant", "disableFlag": false, "dataSource": "DefaultDataSource" }, "className": "RelationLeft", "name": null, "description": null } ], "errors": [], "pageInfo": { "curPage": 1, "pageSize": 20, "totalRows": 1, "totalPages": 1 } }
  • 示例场景 假设有一个源端为RelationLeft,目标端为RelationRight的关系实体(RelationTest)。其中, RelationLeft有两个关系实例,唯一编码为454580805678901111和454580805678902222。 RelationRight有两个关系实例,唯一编码为454580805678903333和454580805678904444。 并创建了如下唯一编码的关系实例: 1313:源端为454580805678901111,目标端为454580805678903333。 2424:源端为454580805678902222,目标端为454580805678904444。 1414:源端为454580805678901111,目标端为454580805678904444。
  • 入参示例 根据目标端RelationRight的ID为454580805678903333的关系实例,查询符合条件的源端关系实例。 { "params":{ "objectId":454580805678903333, "role":"target", "latestOnly":false } }
  • 嵌套and、or和in { "params": { "sort": "desc", "orderBy": "name", "filter": { "joiner": "and", "conditions": [ { "conditionName": "name", "operator": "=", "conditionValues": [ "wyc" ] }, { "joiner": "or", "conditions": [ { "conditionName": "creator", "operator": "=", "conditionValues": [ "wyc" ] }, { "conditionName": "modifier", "operator": "CONTAINS", "conditionValues": [ "wyc", "wxf" ] } ] } ] } } } 如上示例可得出如下SQL查询语句: (name=wyc) and ( (creator=wyc) or (modifier in (wyc, wxf) ) ) order by name desc 其中,“jioner”用于控制相同层次的“conditions”间的关系。
  • 参考对象 假设TestQuery的参考对象是SimpleEntity(别名为ref),SimpleEntity的别名为ref,有Long类型的ID字段和String类型的Name字段。用户希望对SimpleEntity过滤ID,其示例代码如下所示: { "params": { "filter": { "joiner": "and", "conditions": [ { "conditionName": "ref.id", "operator": "=", "conditionValues": [ "406889137980243968" ] } ] } } } 如需过滤其他属性,基于新增过滤条件即可。
  • 扩展属性 扩展属性的固定前缀为“extAttrs”,格式有“extAttrs.扩展属性名”和“extAttrs.扩展属性名.value”两种。其中,“extAttrs.扩展属性名.value”适用于自定义精度的扩展属性。 { "params": { "filter": { "joiner": "and", "conditions": [ { "conditionName": "extAttrs.extAttrName1", "operator": "=", "conditionValues": [ "406889137980243968" ] }, { "conditionName": "extAttrs.extAttrName2.value", "operator": "=", "conditionValues": [ "12.133" ] } ] } } }
  • 扩展类型+扩展属性/分类属性 扩展类型+扩展属性/分类属性的固定前缀为“clsAttrs”,格式有“clsAttrs.分类名.分类内属性名”和“clsAttrs.分类名.分类内属性名.value”两种。其中,“clsAttrs.分类名.分类内属性名.value”适用于自定义精度的扩展类型+扩展属性/分类属性。如需查询此类属性,需额外增加一个过滤条件(rdmExtensionType),用于指明具体的扩展类型。 以“services/dynamic/api/Test0928001/find/20/1”的URI为例: { "params": { "sort": "DESC", "orderBy": "lastUpdateTime", "filter": { "joiner": "and", "conditions": [ { "conditionName": "clsAttrs.A0001.Testz", "operator": "like", "conditionValues": [ "WWW" ] }, { "conditionName": "rdmExtensionType", "operator": "=", "conditionValues": [ "Test0928001" ] } ] }, "isNeedTotal": false } }
  • 多字段排序 多字段排序一般使用“sorts”字段表示,其结构如下: { "sorts": [ { "sort": "DESC", "orderBy": "description" }, { "sort": "ASC", "orderBy": "name" } ] } 使用“sorts”字段后,将按照其列表顺序进行排序。如上所示,对象会先按照“description”进行倒序排序,再按照“name”进行正序排序。 以“services/api/SZAPITEST202211280329/find/20/1”的URI为例,使用如下接口进行多字段排序。 Find接口: { "params": { "sorts": [ { "sort": "DESC", "orderBy": "description" }, { "sort": "ASC", "orderBy": "name" } ], "filter": { "joiner": "and", "conditions": [ { "conditionName": "description", "operator": "=", "conditionValues": [ "a" ] }, { "conditionName": "rdmDeleteFlag", "operator": "=", "conditionValues": [ "0" ] } ] } } } Query接口: { "params": { "sorts": [ { "sort": "DESC", "orderBy": "description" }, { "sort": "ASC", "orderBy": "name" } ], "filter": { "joiner": "and", "conditions": [ { "conditionName": "description", "operator": "=", "conditionValues": [ "a" ] }, { "conditionName": "rdmDeleteFlag", "operator": "=", "conditionValues": [ "0" ] } ] } } } Select接口: { "params": { "selectedField": [ { "name": "name", "nameAs": "nameAsName" }, { "name": "description", "nameAs": "nameAsDescription" }, { "name": "creator" }, { "name": "id" } ], "sorts": [ { "sort": "DESC", "orderBy": "name" }, { "sort": "asc", "orderBy": "id" } ], "filter": { "joiner": "and", "conditions": [ { "conditionName": "description", "operator": "=", "conditionValues": [ "a" ] } ] } } }
  • 单个条件 示例1: { "params": { "sort": "desc", "orderBy": "name", "filter": { "conditionName": "name", "operator": "=", "conditionValues": [ "wyc" ] } } } 示例2: { "params": { "sort": "desc", "orderBy": "name", "filter": { "joiner": "and", // and或者or "conditions": [ { "conditionName": "name", "operator": "=", "conditionValues": [ "wyc" ] } ] } } }
  • 分类属性 分类属性的固定前缀为“clsAttrs”,格式有“clsAttrs.分类名.分类内属性名”和“clsAttrs.分类名.分类内属性名.value”两种。其中,“clsAttrs.分类名.分类内属性名.value”适用于自定义精度的分类属性。 { "params": { "filter": { "joiner": "and", "conditions": [ { "conditionName": "clsAttrs.clsAttrName.attrName1", "operator": "=", "conditionValues": [ "123" ] }, { "conditionName": "clsAttrs.clsAttrName.attrName2.value", "operator": "=", "conditionValues": [ "12.123" ] } ] } } }
  • ISNULL和NOTNULL传参 { "params": { "sort": "desc", "orderBy": "name", "filter": { "joiner": "and", // 或者or "conditions": [ { "conditionName": "name", "operator": "ISNULL", // 或者NOTNULL "conditionValues": [ // conditionValues可不写 "wyc" ] } ] } } }
  • 出参示例 { "result": "SUCCESS", "data": [ { "id": "455304697733976064", "creator": "test1 3c03e719256a427eb9277b64fcXXXXXX", "modifier": "test1 3c03e719256a427eb9277b64fcXXXXXX", "createTime": "2023-01-13T01:38:19.000+00:00", "lastUpdateTime": "2023-01-13T01:38:19.000+00:00", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "People", "tenant": { "id": "-1", "creator": "xdmAdmin", "modifier": "xdmAdmin", "createTime": "2022-08-03T11:27:44.000+00:00", "lastUpdateTime": "2022-08-03T11:27:44.000+00:00", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "Tenant", "tenant": null, "className": "Tenant", "name": "basicTenant", "description": "默认租户", "kiaguid": null, "securityLevel": "internal", "code": "basicTenant", "disableFlag": false, "dataSource": null }, "className": "People", "name": "李兰", "description": null, "kiaguid": null, "securityLevel": "internal", "sex": "女", "age": 18 } ], "errors": [] }
共100000条