交付附录
# 交付附录
# K8s常见操作
# 容器查看
kubectl get pod -n iot -o wide
# 进入容器
kubectl exec -it 容器名称 bash -n iot
# 重启容器
kubectl delete pod 容器名称 -n iot
或者
kubectl scale deployment iotcenter-euler-v1 --replicas=0 -niot
kubectl scale deployment iotcenter-euler-v1 --replicas=1 -niot
# 文件拷贝
cp命令识别的是容器登录时的路径,不能加绝对路径 拷贝文件到容器
kubectl cp 文件名 容器名:文件名 -n iot
拷贝文件到当前机器
kubectl cp -n iot 容器名:文件名 文件名
# 查看端口映射
kubectl get svc -n iot
# 强制删除pod
在dashboard界面删除容器,发现无法删除。使用命令查看发现该pod一直处于terminating的状态 Kubernetes强制删除一直处于Terminating状态的pod。
- 使用命令获取pod的名字
kubectl get pod -n NAMESPACE |grep Terminating
- 使用kubectl中的强制删除命令
kubectl delete pod podName -n NAMESPACE --force --grace-period=0
# 其他命令
- 查询deploy文件
kubectl get deploy -niot
- 查询cm 文件
kubectl get cm -niot
- 查询pv 文件
kubectl get pv -niot
- 查询pvc 文件
kubectl get pvc -niot
- 查询Service 文件
kubectl get Service -niot
- 更新yaml 文件
kubectl apply -f opengauss-deployment.yaml
- 导入镜像
docker load < xxxx.tar
或
docker load -i xxxx.tar
- 修改镜像tag:
docker tag id号 mydockerhub.com:5000/cube-repo-space/xxxx:6.0.1
- 查看pod 错误日志
kubectl describe pod pod_name -n iot
或
kubectl describe pod pod_name --namespace iot
- 指定namespace,如果存在多个namespace
kubectl describe pods/iotcenter-euler-v1-85ddfdcccd-ktgs9 --namespace iot
# 接口脚本
# 数字园区解决方案资产清单
# ROMA自定义后端接口脚本
通常情况下,只需修改脚本中的URL即可,如图所示:
# 敢为标准北向接口配置
# 登录ROMA平台
详情
收集项目ROMA账户信息,登录ROMA平台进行接口配置。(账户信息华为提供) 第一步:登录ROMA平台
第二步:点击【查看控制平台】
第三步:点击【服务集成APIC】
第四步:点击【自定义后端】
# 接口调用配置管理
# 登录ROMA平台
详情
在配置接口前需配置接口后端地址信息。 第一步:进入【自定义后端】页面,点击配置管理。
第二步:点击【添加配置】
- 进入配置管理页面,点击添加配置。
- 配置名称:IoTCenterApiAddr 与接口脚本中对应
- 所属集成应用:敢为应用(sctest1001_敢为IOT)
- 配置类型:默认
- 配置值:https://xx.xx.xxx.xx:30380 (IOT平台地址)
配置完成后点击【确认】
# 接口配置
注意
如下接口仅供参考,具体以北向接口文档为准。
# IOT鉴权
详情
# 接口信息
请求方法 | POST |
---|---|
请求地址 | io/sctest1001__io.ganwei.iot/south/device-management/v2/south/platform/signIn |
传输协议 | HTTP&HTTPS |
接口方式 | Restful |
# 创建API接口
第一步:点击【创建后端】
第二步:配置鉴权API接口信息
- 后端名称:IOT鉴权 可自定义命名
- 集成应用:敢为应用(sctest1001_敢为IOT)
- 后端请求方法:POST
- 后端请求路径(可自定义): /io/sctest1001__io.ganwei.iot/south/device-management/v2/south/platform/signIn
- 后端安全认证:(无认证)
第三步:填写完成后,点击右下角的【立即创建】,跳转至下一页面 选择【新建函数后端】,选择空白模板,弹出确认框,点击【确认】。
第四步:将鉴权脚本复制——》粘贴至编写框中。
第五步:点击右上角导航条处【保存】,再点击【测试】。(测试接口是否可正常使用)
Body传参如下:
{
"UserName": "yQBNv**********",
"Password": "**********~$^"
}
响应示例:
{
"code":"0",
"message":"Login success."
}
第六步:测试结果正常后,点击右上角【部署】,再点击【发布】
第七步:返回服务集成APIC,点击【API管理】,验证接口是否发布成功。(发布成功后API管理中会生成对应的接口。)
# 配置定时任务
详情
点击【APIC管理】,点击下拉列表,查找【API定时任务】
第一步:【创建API定时任务】
第二步:配置定时任务
任务名称:IOT鉴权(敢为定时任务) 集成应用:sctest1001_敢为IOT 开启时间:自定义 (必须比当前时间晚,不然创建后无法启动) 触发器类型:CALENDAR 调用周期:30分钟 失败重试次数:2 API:点击选择API,选择对应的API接口 Body:(传参)
{
"UserName": "**********",
"Password": "**********~$^"
}
以上配置完成后点击【确认】
第三步:启动定时任务
第四步:验证定时任务中是否正常调用接口,点击任务,查看调用日志。
# IOT批量查询终端基础信息
详情
# 接口信息
请求方法 | POST |
---|---|
请求地址 | /io/sctest1001__io.ganwei.iot/south/device-management/v2/deviceList |
传输协议 | HTTP&HTTPS |
接口方式 | Restful |
# 创建API接口
第一步:点击【创建后端】
第二步:配置鉴权API接口信息
- 后端名称:IOT批量查询终端基础信息 可自定义命名
- 集成应用:敢为应用(sctest1001_敢为IOT)
- 后端请求方法:POST
- 后端请求路径(可自定义):/io/sctest1001__io.ganwei.iot/south/device-management/v2/deviceList
- 后端安全认证:(无认证)
第三步:填写完成后,点击右下角的【立即创建】,跳转至下一页面 选择【新建函数后端】,选择空白模板,弹出确认框,点击【确认】。将鉴权脚本复制——》粘贴至编写框中。
第四步:点击右上角导航条处【保存】,再点击【测试】。(测试接口是否可正常使用)
Body传参如下:
{
"pageNo": 1,
"pageSize": 100
}
响应示例:
{
"data":{
"pageNo":1,
"pageSize":100,
"totalCount":8,
"totalPage":1,
"list":[
{
"terminalId":68,
"terminalNo":"10014",
"gatewayId":null,
"createTime":"2022-09-25T22:35:10",
"lastModifiedTime":"2022-09-26T11:18:38",
"productId":2,
"terminalName":"门禁",
"terminalTypes":[
"门禁系统"
],
"terminalTypeIds":[
10
],
"longitude":0,
"latitude":0,
"areaName":"",
"buildName":"",
"unitName":"****",
"address":"",
"extendInfo":null,
"remark":"",
"terminalStatus":"HaveAlarm",
"eventTime":"2022-09-26T16:22:02"
},
{
"terminalId":59,
"terminalNo":"10006",
"gatewayId":null,
"createTime":"2022-09-19T18:55:36",
"lastModifiedTime":"2022-09-26T13:38:54",
"productId":1,
"terminalName":"SPM9511_510100B0010010",
"terminalTypes":[
"能耗电表"
],
"terminalTypeIds":[
8
],
"longitude":0,
"latitude":0,
"areaName":"",
"buildName":"",
"unitName":"",
"address":"",
"extendInfo":null,
"remark":"",
"terminalStatus":"CommunicationOK",
"eventTime":"2022-09-26T16:22:02"
}
]
},
"code":200,
"message":"操作成功",
"succeeded":true
}
第五步:测试结果正常后,点击右上角【部署】,再点击【发布】
第六步:返回服务集成APIC,点击【API管理】,验证接口是否发布成功。(发布成功后API管理中会生成对应的接口。)
注意
创建API接口 自定义后端接口创建及配置与上述“IOT批量查询终端基础信息” 配置相同。
# IOT查询单个终端基础信息
# 接口信息
请求方法 | POST |
---|---|
请求地址 | /io/sctest1001__io.ganwei.iot/south/device-management/v2/device |
传输协议 | HTTP&HTTPS |
接口方式 | Restful |
# IOT查询终端分类数据
# 接口信息
请求方法 | POST |
---|---|
请求地址 | /io/sctest1001__io.ganwei.iot/south/device-management/v2/device/types |
传输协议 | HTTP&HTTPS |
接口方式 | Restful |
# IOT批量查询终端属性数据
# 接口信息
请求方法 | POST |
---|---|
请求地址 | /io/sctest1001__io.ganwei.iot/south/device-management/v2/device/propertys |
传输协议 | HTTP&HTTPS |
接口方式 | Restful |
# IOT查询设备属性历史值
# 接口信息
请求方法 | POST |
---|---|
请求地址 | /io/sctest1001__io.ganwei.iot/south/device-management/v2/device/property/history |
传输协议 | HTTP&HTTPS |
接口方式 | Restful |
# IOT查询终端实时事件信息
# 接口信息
请求方法 | POST |
---|---|
请求地址 | /io/sctest1001__io.ganwei.iot/south/device-management/v2/device/events |
传输协议 | HTTP&HTTPS |
接口方式 | Restful |
# IOT查询终端历史事件信息
# 接口信息
请求方法 | POST |
---|---|
请求地址 | /io/sctest1001__io.ganwei.iot/south/device-management/v2/device/events/history |
传输协议 | HTTP&HTTPS |
接口方式 | Restful |
# IOT终端指令下发
# 接口信息
请求方法 | POST |
---|---|
请求地址 | /io/sctest1001__io.ganwei.iot/south/device-management/v2/device/property/command |
传输协议 | HTTP&HTTPS |
接口方式 | Restful |
# IOT终端属性指定日期内是否存在历史记录
接口信息
请求方法 | POST |
---|---|
请求地址 | /io/sctest1001__io.ganwei.iot/south/device-management/v2/device/property/historyCount |
传输协议 | HTTP&HTTPS |
接口方式 | Restful |
# Postman调用
详情
# 请求参数
名称 | 是否必选 | 类型 | 位置 | 说明 |
---|---|---|---|---|
X-HW-ID | 是 | String | Header | Postman调用认证需要,由ROMA提供,集成实例用户信息(通过ROMA接口需用到) |
X-HW-APPKEY | 是 | String | Header | Postman调用认证需要,由ROMA提供,集成实例用户信息(通过ROMA接口需用到) |
gatewayId | 否 | String | body | 网关标识 |
terminalId | 否 | Int | body | 终端标识 |
terminalName | 否 | String | body | 终端名称 |
terminalTypeIds | 否 | int | body | 终端类型Id |
terminalStatus | 否 | String | body | 查询终端的状态。 NoCommunication:离线 CommunicationOK:正常 HaveAlarm:报警 HaveSetParm:正在设置中 Initial:正在初始化 CheFang:撤防 |
beginTime | 否 | String | body | 查询注册终端信息时间在beginTime之后的记录。平台时间格式:yyyy-MM-ddTHH:mm:ss。 |
endTime | 否 | String | body | 查询注册终端信息时间在endTime之前的记录。 平台时间格式:yyyy-MM-ddTHH:mm:ss。 |
sort | 否 | String | body | 指定返回记录的排序。缺省值:DESC。 ASC:按注册终端的时间升序排列 DESC:按注册终端的时间降序排列。 |
areaName | 否 | String | body | 查询指定区域下的终端,可模糊查询 |
buildName | 否 | String | body | 查询指定建筑中的终端,可模糊查询 |
unitName | 否 | String | body | 查询指定单位的终端,可模糊查询 |
pageNo | 否 | Int | body | 查询的页码,第一页为1,缺省值为1 |
pageSize | 否 | Int | body |
# 响应参数
名称 | 是否必选 | 类型 | 说明 |
---|---|---|---|
code | 是 | String | 接口请求结果,表示接口是否调用成功,对实际功能调用成功与否不做描述。 成功:200失败:-1 |
message | 是 | String | 接口请求结果描述。 |
data | 是 | Object | 查询结果集合 |
succeeded | 是 | Bool | 接口请求是否成功。成功:true 失败:false |
Page
名称 | 是否必选 | 类型 | 说明 |
---|---|---|---|
pageNo | 是 | Int | 查询的页码 |
pageSize | 是 | Int | 查询每页信息的数量。 |
totalCount | 是 | Int | 查询的记录数量。 |
totalPage | 是 | Int | 查询的总页数。 |
list | 是 | List | 终端分页列表信息。 |
Device
名称 | 是否必选 | 是否可改 | 类型 | 说明 |
---|---|---|---|---|
terminalId | 是 | 否 | Int | 终端ID,用于唯一标识一个终端 |
terminalNo | 是 | 否 | Int | 设备ID |
gatewayId | 是 | 是 | String | 网关ID,用于标识一个测站。 |
createTime | 是 | 否 | String | 创建终端的时间,时间格式:yyyy-MM-dd HH:mm:sss,如2019-09-27 17:54:10。 |
lastModifiedTime | 是 | 是 | String | 最后修改终端的时间。 |
terminalName | 是 | 是 | String | 终端名称。 |
terminalTypes | 是 | 是 | String | 终端类型v |
terminalTypeIds | 是 | 是 | String | 终端类型Idv |
longitude | 否 | 是 | String | 经度 |
latitude | 否 | 是 | String | 纬度 |
areaName | 否 | 是 | String | 所属区域名称。 |
buildName | 否 | 是 | String | 所在建筑名称。 |
unitName | 否 | 是 | String | 所属单位名称。 |
address | 否 | 是 | String | 终端的位置信息。 |
extendInfo | 否 | 是 | String | 终端的扩展信息。 |
remark | 否 | 是 | String | 终端的描述信息。 |
terminalStatus | 否 | 否 | String | 终端的状态,共三类 NoCommunication:离线 CommunicationOK:正常 HaveAlarm:报警 |
eventTime | 否 | 是 | DateTime | 当前时间 |
# HTTP请求示例
{
"pageNo": 1,
"pageSize": 100
}
# HTTP响应示例
{
"data":{
"pageNo":1,
"pageSize":100,
"totalCount":8,
"totalPage":1,
"list":[
{
"terminalId":68,
"terminalNo":"10014",
"gatewayId":null,
"createTime":"2022-09-25T22:35:10",
"lastModifiedTime":"2022-09-26T11:18:38",
"productId":2,
"terminalName":"门禁",
"terminalTypes":[
"门禁系统"
],
"terminalTypeIds":[
10
],
"longitude":0,
"latitude":0,
"areaName":"",
"buildName":"",
"unitName":"海康",
"address":"",
"extendInfo":null,
"remark":"",
"terminalStatus":"HaveAlarm",
"eventTime":"2022-09-26T16:22:02"
},
{
"terminalId":59,
"terminalNo":"10006",
"gatewayId":null,
"createTime":"2022-09-19T18:55:36",
"lastModifiedTime":"2022-09-26T13:38:54",
"productId":1,
"terminalName":"SPM9511_510100B0010010",
"terminalTypes":[
"能耗电表"
],
"terminalTypeIds":[
8
],
"longitude":0,
"latitude":0,
"areaName":"",
"buildName":"",
"unitName":"",
"address":"",
"extendInfo":null,
"remark":"",
"terminalStatus":"CommunicationOK",
"eventTime":"2022-09-26T16:22:02"
}
]
},
"code":200,
"message":"操作成功",
"succeeded":true
}
注意
其他接口同理,Header无需再传AuthorizationToken及X-ClientId。都已通过ROMA集成内部调用。
# 通信矩阵
# 密码存储文件
注意
用于MySQL、GaussDB数据库的备份和恢复