开发者中心 开发者中心
  • 简体中文
  • English
视频教程
敢为云网站
  • 6.0版本
  • 6.1 版本
视频教程
敢为云网站
  • 平台概述
  • 平台功能
  • 平台安装
  • 开发者指南
  • 项目实战
  • 附录
    • 常用协议说明
    • 接口说明
    • 数据库说明
    • 平台接入能力
    • 如何使用gRPC
    • 敢为公共库
    • 设备禁用配置
    • 内网平台获取外网平台数据
    • 工程调试
      • 常用调试工具
      • 园区数字平台交付指南
        • 产品描述
        • 安装部署
          • 安装步骤
            • 预期效果
            • 一键安装包组成
            • Yaml文件说明
            • 一键安装脚本使用方法(示例)
          • 配置流程
            • 预期效果
            • 前置条件
            • ROMA参数说明
            • IoTCenter配置
            • 北向接口配置
            • 物模型添加
            • 实时数据推送配置
        • 维护说明
        • 交付指南附录
    • Q&A

安装部署

# 安装部署

# 安装步骤

# 预期效果

在数字园区产品22.2中,华为FusionCube提供了一键安装包的机制,可通过FusionCube OPS系统一键完成数字园区管理平台定制版K8s版本的安装,在进行安装时,可自动安装包括IoTCenter 和数据库软件(MySQL或OpenGaussDB)两套软件。

# 一键安装包组成

安装包中有IoTCenter镜像和OpenGaussDB镜像,分为ARM和x86,共四个镜像,在image文件夹中。InstallTool包含安装和升级脚本,在resourceFile中有相应的yaml文件。

# Yaml文件说明

Yaml语言是专门用来写配置文件的。yaml文件是用来写k8s部署时需要的资源清单的。

在resourceFile文件夹中包含IoTCenter和OpenGaussDB两个镜像包的yaml文件,yaml.j2是原始的还未传参的yaml文件,执行一键安装命令后,文件会接收到传入的参数,然后在resourceFile文件夹中生成对应的含参的yaml文件。

注意

如果用MySQL镜像,会多出mysql-password.yaml和mysql-password-arm.yaml两个文件,它们分别对应两个不同架构CPU下传入的MySQL密码,在执行安装脚本时会自动判断架构,选择执行相应的yaml文件。

# 一键安装脚本使用方法(示例)

首先cd到install.sh 的目录,然后按照镜像版本和nfs储存地址或者本地储存配置需要传入的参数。可手动执行,也可通过DevOps系统自动执行该脚本。 命令示例

sh install.sh 
'repoURL=.****.com:5000/cube-repo-space|romaMqsAddr=71.77.**.**:39776;71.77.**.**:39776|nfsHostLoginUser=aaaa|hcso=false|iotAppId=aaaa|gateWayNumber=2|nfsVip=71.77.**.**|whitelist=abcx86.hicampuscube.com|romaConnectorAppIdWithTenant=aaaa__io.**.iot|nodeSelector=iotServer: iot|romaConnectorAppId=io.**.iot|iotAppSeret=aaaa|romaTenantName=aaaa|nfsRootPwd=aaaa|nfsPath=/var/hicampusdata/gwIoTCenter,/var/hicampusdata/gwiotdb|zabbixServer=71.77.**.**:31152,71.77.**.**:31162|namespace=iot|nfsHostLoginPwd=aaaa|imageTag=6.0.0.2|nfsIp=71.77.84.78,71.77.**.**|romaConnectorAppSecret=************,************.************'

安装脚本接收到传入的参数后将在resourceFile文件夹中生成对应的yaml文件,之后通过对环境的判断,自动选择需要执行的yaml文件开始部署,首先会创建node和命名空间,之后开始部署MySQL,之后部署IoTCenter。 升级脚本首先通过传入的参数只更新resourceFile中文件夹中的IoTCenter-deployment.yaml文件,最后通过kubectl apply -f 命令更新yaml文件,k8s通过新的deployment文件拉取新的镜像,完成更新。本包的脚本未涉及到数据库的版本更新和表的更新。

# 配置流程

# 预期效果

IoTCenter部署在华为的FusionCube一体机中,一般情况下EBG版本的IoTCenter会内置EBG插件和接口调用所用到的鉴权用户名,这时候可以直接在ROMA中测试是否能正常调用到IoTCenter的接口。

如果无法调用,可以按照对接检查项目进行检查是否存在预置的用户。在ROMA界面中自定义后端中有相关接口调用时使用的变量,可以核对用户名是否和预置的用户相同。

# 前置条件

注意

物联网平台和Roma均已完成部署,并可以正常使用。如果部署的ROMA平台没有对接IoTCenter平台的资产包,则需要导入资产包。

# ROMA参数说明

详情

# 连接参数

图中“消息集成MQS内网连接地址”为直接对接ROMA的KAFKA的连接地址,消息集成MQS Connector连接地址为通过iot_jar的java包对接ROMASDK实现上报的地址。

图中为敢为EBG项目资产中的连接参数,一个为租户名,一个为秘钥。

# 消息推送主题(Topic)

详情

ROMA查询消息时会选择消息类型,不同的消息类型对应着不同消息。

Topic名称 消息主题Topic 租户标识
终端属性数据变化通知 T_IOT_DEVICE_DATACHANGED GW__sctest1001(示例)
终端状态变化通知 T_IOT_DEVICE_ONLINESTATUS
终端事件变化通知 T_IOT_DEVICE_ALARM
终端指令下发结果通知 T_IOT_DEVICE_COMMANDRSP
人员信息同步 T_IOT_DEVICE_PERSON_PASS_EVENT_GW

比如查询设备注册消息,就选择终端属性变化通知的消息主题

# IoTCenter配置

详情

# 应用接入管理

通过EBG部署的环境,一般会在数据库内置一个应用,在【应用接入管理】页面显示如下图(接口对接时需要用到)

# 应用终端授权

在【应用终端授权】页面,将新添加的设备授权到huawei应用上,方便后续基于该应用对终端设备进行查询

# 应用接口授权

在【应用接口授权】页面,点击内置的应用名称huawei,查看接口是否授权到了该应用。要注意选择对应的接口版本,通常采用智慧园区版本。

# 平台管理

在【平台管理】页面,通常会内置一个EBG_Plate平台。 注:如果采用ROMASDK的方式(22.1版本对接方式)对接,这里无需修改。

注意

在EBG22.1及后续版本中,默认接口已由FusionCube OPS系统自动配置,若未找到相关接口,也可通过资产包导入的方式完成接口清单的初始化。

# 北向接口配置

# 添加配置
详情
  • 登录ROMA
  • 新增配置(或编辑配置)
  • 配置名称:IoTCenterApiAddr
  • 集成应用:敢为
  • 配置值:平台访问地址。

# 创建后端

# 鉴权
详情

后端名称:IOT_鉴权

集成应用:敢为集成

后端请求方法:post

后端请求路径:/io/sctest1001__io.ganwei.iot/south/device-management/v2/south/platform/signIn

后端安全认证:无认证

创建完成后,将自动跳转至编辑器,进行一下操作:

点击【编辑器】——【文件】——【新建函数后端】——选择【空白模板】

在【空白模板】处填写好鉴权脚本。

点击【保存】,再点击【测试】,在body处传参,点击测试,结果如下证明成功。

测试成功后,点击【部署】——【发布】,发布完成后,改API接口已创建完成。

# 批量查询终端基础信息
详情

后端名称:IOT批量查询终端基础信息

集成应用:敢为集成

后端请求方法:post

后端请求路径:

/io/sctest1001__io.ganwei.iot/iot/north/device-management/devicesList?GatewayId=&StartTime=。接口以ROMA资产包为准

后端安全认证:无认证

创建完成后,将自动跳转至编辑器,进行一下操作:

点击【编辑器】——【文件】——【新建函数后端】——选择【空白模板】

在【空白模板】处填写好鉴权脚本。

修改脚本中的【X-ClientId】请求头,’X-ClientId’:”实际项目中应用接入管理中注册的AppId”

点击【保存】,再点击【测试】,在body处传参,点击测试,结果如下证明成功。

其余接口同鉴权接口注册步骤一致。

# 配置定时鉴权任务
详情

任务名称:IOT_定时鉴权(干维保)

集成应用:敢为

数据类型:CALENDAR

调用周期:30分钟

API:鉴权

请求参数Body:

{
 <p>   "UserName":"XXXXXX",
 <p>   "Password":"XXXXXXXXXXXX"
}

创建完成后立即启动。

# Postman调用ROMA映射后IOT地址
详情
  1. 收集ROMA地址及域名地址。通常ROMA端口为443 ROMA地址:

域名地址:

  1. 在本地配置域名访问。

以windows为例,可打开C盘目录下

C:\Windows\System32\drivers\etc

下的hosts文件

配置如下:

IP+空格+域名

  1. Postman地址填写访问

# 物模型添加

在本方案中,物模型是非常重要的配置信息,是联系真实世界和虚拟世界的纽带。系统中包含两种物模型,一种是由IoTCenter进行直接管理的物模型,即IoTCenter产品信息、设备信息(含遥测、遥信、设置),一种是通过IoTCenter映射生成目标物模型,如EBG的物模型,或华为云IoTDA管理的物模型。

前者在添加产品和设备信息时自动被创建,而后者则可通过如下三种方式进行管理。

详情
# 通过接口添加物模型

按《数字园区解决方案资产清单》,可使用同步物模型接口实现向IoT添加物模型定义数据。

# 通过“平台信息管理”配置映射关系

从IoTCenter3.1.14.1版本便可以通过平台信息管理=》上报规则引擎来配置物模型映射关系,主要通过服务名称和对照编码来建立与物模型的映射关系,这种方式比较适合一些简单结构的物模型。

# 通过“模型配置管理”配置物模型

在22.2版本中,专门为此场景添加了模型配置功能,以便实现通过界面进行物模型的创建和维护。点击菜单页面的“应用平台管理”,在展开页面中点击模型配置管理,进入物模型的配置界面。

# 添加模型
详情

点击图标打开对话框添加物模型。

选中添加的物模型,点击图标打开对话框新增一个服务。

然后在服务中添加一个属性信息,属性信息对应产品中的遥测点

然后添加一个命令信息,在绑定产品的时候就会在产品中生成对应的命令。

# 模型绑定产品
详情

当物模型设置好之后,就可以进入产品信息管理界面对模型进行绑定,绑定之后就会在产品管理中生成对应的产品。

之后进入产品管理界面可以看到生成好的产品。

# 物模型同步产品信息

在新版物模型中增加了产品信息同步到物模型的功能,如果对产品的遥测和设置点等进行添加或删除操作,变动将会同步到物模型,避免造成上报消息缺失。 在产品信息管理页面,选择一个产品点击更新按钮,产品的信息向物模型同步。

# 实时数据推送配置

ROMA源自华为数字化转型集成实践,聚焦应用和数据连接,提供轻量化消息、数据、API等集成能力,简化企业上云,支持云上云下、跨区域集成,打通IT与OT,连接企业与生态伙伴,帮助企业实现数字化转型。

消息中间件是分布式系统中重要的组件,本质就是一个具有接受消息、存储消息、分发消息的队列,应用程序通过读写队列消息来通信。

分布式消息服务Kafka版是一个高吞吐、高可用的消息中间件服务,适用于构建实时数据管道、流式数据处理、第三方解耦、流量削峰去谷等场景,具有大规模、高可靠、高并发访问、可扩展且完全托管的特点,是分布式应用上云必不可少的重要组件。

# Roma配置说明

对接ROMA平台目前有两种方式,第一种方式为通过jar包的方式对接,第二种方式为对接ROMA的Kafka地址。

# 22.1及以前版本

22.1版本的IoTCenter为6.0.0,只支持通过jar包的方式对接ROMA平台。其中对接参数配置在容器中的/opt/ganwei/iot_jar/config/config.properties中。

22.1版本只支持mysql数据库。

# 22.2及后续版本

22.2版本的IoTCenter为6.0.1,可以通过jar包和Kafka两种方式对接。一般在项目上默认使用的是Roma SDK对接。在22.2版本中,在使用jar对接的时候配置文件config.properties 中的秘钥已启用了加密,在文件中会看到很长的一串密码。

22.2版本支持mysql和高斯数据库,默认使用高斯数据库,在22.2版本建议使用Kafka对接。

# 对接Roma SDK

进入IoTCenter容器,输入

cat /opt/ganwei/iot_jar/config/config.properties

打开config.properties文件检查配置文件。

# 配置说明
详情

需要重点关注如下4个参数:

  1. huawei.ump.producer.url 为Roma 服务端MQS地址地址需要检查其连通性。

  2. huawei.ump.producer.appId为Roma 应用id

  3. huawei.ump.producer.appSecret为RomaSDK 连接密钥,22.1版本为明文,22.2版本为图中所示采用使用敢为平台加密工具-【使用高级AES加密】生成的字符串,详见《安装部署文档-使用高级AES加密字符串》。以上三项如果采用Cube流水线部署,将会被自动配置,若手工部署,则需手工导入配置,以上三项都可以在ROMA平台中拿到。

  4. iot.environment.variable为iot环境变量, DEBUG为调试模式、可连接测试或调试环境的Roma,PROC为生产环境、可连接Roma线上运行环境。

# 问题排查
详情

若是在应用过程中遇到roma平台无法接收上报数据的问题,排查思路如下:

  • 1、 检查ip是否正确、网络是否打通。可使用curl -kv https://xxx:xx来验证是否可访问。如:curl -kv https://71.77.xx.xx:44380
  • 2、 检查appId和appSecret(根据ebg版本判断密钥是否需加密)是否正确。
  • 3、 检查是否为调试模式DEBUG,理论上默认为调试模式,需手动修改为生产模式PROC。
  • 4、 前面检查都没问题的话,基本可判定是roma那边的问题,反馈给roma处理。 2.2.7.3. 对接Roma Kafka(只适用于22.2后续版本) 目前在IoTCenter Ebg版本中默认集成的版本为Roma SDK,从22.2开始,Roma产品也可以通过Kafka进行直接对接,实际使用时启用直接对接ROMA的kafka的方法是通过修改IoTCenter界面中的应用平台管理中的平台管理中内置的EBG_Plate平台来实现的。 通过修改平台参数,将默认的kafka地址修改成roma的kafka地址、用户名及密码。

下翻到最后,有kafka的用户名和密码选项,将其修改成roma的kafka信息即可。

填入的参数为:

ROMA平台应用找到sctest1001__敢为IOT 应用点击进入

22.2版本ROMA平台开启了SSL证书认证,需要对SSL证书进行转换

1、先在ROMA平台内下载证书文件

2、进入到任意linux环境中进行转换

转换命令:

keytool -importkeystore -srckeystore client.truststore.jks -destkeystore server12.p12 -srcstoretype jks -deststoretype pkcs12

统一密码:dms@kafka(密码不能对外公开,涉及华为安全规范)

执行:

openssl pkcs12 -in server12.p12 -out client.crt -nokeys (密码见上)

执行成功 3、文件拷贝至映射dll文件内地址:

/var/hicampusdata/gwIoTCenter/dllToCopy/dll/

4、添加转换证书参数

是否加载证书填IsCertificate: 1 Kafka证书地址 CertAddress:dll/证书文件名

上次更新: 12/12/2023, 7:27:04 PM

← 产品描述 维护说明→

目录
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式