添加业务应用
添加您的自定义边缘应用。
操作步骤
- 访问IoT边缘,单击“管理控制台”进入IoT边缘控制台。
- 选择左侧导航栏“边缘节点 > 应用管理”进入页面,选择“业务应用”,单击“添加应用”。
图1 添加业务应用
表1 参数说明 参数名称
参数说明
应用ID
自定义应用ID。
应用名称
自定义边缘应用的名称。
功能用途
数据处理:提供设备数据处理能力;
协议解析:提供设备接入能力;
本地子系统集成:提供IT子系统集成能力。
- 添加完成后,单击“前往:应用版本配置”“。
图2 应用添加成功
- 软件部署配置。
- 选择部署方式,参考表2填写基本信息。
图3 软件部署配置
表2 部署配置 参数名称
说明
部署方式
容器化部署:在边缘节点上应用通过Docker容器运行。添加容器化部署的应用需先确保容器镜像已上传到容器镜像服务(SWR),且设置其类型为“公开”,例如图4所示。
安装包部署:在边缘节点是以进程形式运行。添加安装包部署的应用需先确保安装包已按照打包规范进行压缩打包,并上传到对象存储服务(OBS)。
容器镜像
部署方式为容器化部署时,参考表3填写。
手动输入
输入镜像地址:统一在容器镜像服务(SWR)中管理。
单击选择
选择镜像:选择需要部署的镜像,单击“确认”。- 我的镜像:展示了您在容器镜像服务中创建的所有镜像。
- 他人共享:展示了其他用户共享的镜像。
版本:选择需要部署的镜像版本。
安装包地址
部署方式为安装包部署时,填写您此前上传到对象存储服务OBS中的安装包地址。
- 选择容器规格,根据您的需要选择。
图4 容器规格配置
表3 选择镜像输入方式 参数名称
说明
手动输入
输入镜像地址:统一在容器镜像服务(SWR)中管理。
单击选择
选择镜像:选择需要部署的镜像,单击“确认”。- 我的镜像:展示了您在容器镜像服务中创建的所有镜像。
- 他人共享:展示了其他用户共享的镜像。
版本:选择需要部署的镜像版本。
表4 AI加速卡配额指定参数说明 参数名称
说明
不申请配额
应用无需使用AI加速卡
申请GPU配额
应用需要Nvidia GPU,指定需要使用的GPU显存大小,应用部署时根据该配置分配资源。暂仅专业版节点支持,在专业版基础版节点部署模块时该字段不生效。
申请NPU配额
应用需要使用NPU,指定NPU的型号,及使用数量,应用部署时根据节点资源情况进行分配。
- 高级配置,按照如下步骤进行配置。
图5 高级配置
- 运行命令(只有容器化部署的方式可以配置)
图6 运行命令
- 运行命令:输入可执行的命令,例如“/run/start”。
- 若可执行命令有多个,多个命令之间用换行进行分隔,且末尾不能有空行。
- 命令参数:输入控制容器运行命令参数,例如-port=8080。
- 若参数有多个,多个参数以换行分隔,且末尾不能有空行。
启动命令和参数复杂时,建议编写启动脚本,打包到镜像中,如start.sh,启动命令设置为 ./shart.sh。
若启动命令已经定义在dockerfile中,则该项可以不进行配置。
- 运行命令:输入可执行的命令,例如“/run/start”。
- 选项配置
打开勾选项,开启特权模式,容器将具有其宿主机几乎所有能力,包括一些内核特性和所有设备访问。容器在特性模式下运行会存在一些安全风险,默认关闭该选项。
- 环境变量
图7 环境变量
容器运行环境中设定的一个变量。可以在部署应用时修改。
单击添加环境变量,输入变量名称和变量值,添加环境变量。
IoTEdge平台不会对用户输入的环境变量进行加密。
如果用户配置的环境变量涉及敏感信息,用户需要自行加密后再填入,并在应用中自己完成解密过程。
IoTEdge平台服务不提供任何加解密工具,如果您需要设置加密密文,可以使用其他平台的加解密工具。
- 数据存储
卷是指容器运行过程中使用的存储卷。
将主机某个目录挂载到容器中。主机目录是一种持久化存储,应用删除后hostPath里面的内容依然存在于边缘节点本地硬盘目录中,如果后续重新创建应用,挂载后依然可以读取到之前写入的内容。
图8 数据存储
- 健康检查
健康检查是指容器运行过程中根据用户需要定时检查容器健康状况或是容器中负载的健康状况。图9 健康检查
表5 检查方式 参数名称
说明
HTTP请求检查
向容器发送HTTP GET请求,如果探针收到2xx或3xx,说明容器是健康的。
例如图10的配置,会在容器启动10秒(延迟时间)后,发送HTTP GET请求到“http://{实例IP}/health:8080”,如果在2秒(超时时间)内没有响应则视为检查失败;如果请求响应的状态码为2xx或3xx,则说明容器是健康的。
说明:这里无需填写主机地址,默认直接使用实例的IP(即往容器发送请求),除非您有特殊需求。
执行命令检查
探针执行容器中的命令并检查命令退出的状态码,如果状态码为0则说明健康。
例如图11的配置,会在容器启动10秒(延迟时间)后,在容器中执行“cat /tmp/healthy”命令,如果在2秒(超时时间)内没有响应,则视为检查失败;如果命令成功执行并返回0,则说明容器是健康的。
TCP检查
例如图12的配置 ,检查TCP端口是否正常可以访问。如果可以,说明容器是正常的。
- 运行命令(只有容器化部署的方式可以配置)
- 选择部署方式,参考表2填写基本信息。
- 第二步“运行配置”。
- 端点配置。
边缘节点上各模块之间的通讯采用MQTT作为消息总线,其中系统模块EdgeHub作为MQTT Broker提供模块间的数据流转功能。应用版本中的输入/输出端点,即为模块对接消息总线的设备数据入口和出口点,用于配置数据流转规则。
- 输入端点:模块从消息总线中接收设备数据的入口点。应用程序集成边缘SDK时需设置输入端点的监听/回调,以接收设备数据并进行处理。
- 输出端点:模块往消息总线中发送设备数据的出口点。应用程序集成边缘SDK时,从输出端点往消息总线发送设备数据。
只有配置了消息输入输出端点的应用实例化的模块才能够使用设备数据流转功能。
建议输入/输出端点配置成设备数据格式,即iotda_1.0或flat_json,用以关联接收到/发送的设备数据格式。
- 部署配置。
表6 部署配置 参数名称
说明
重启策略
根据您的需要选择。
- 总是重启:当应用实例退出时,无论是正常退出还是异常退出,系统都会重新拉起应用实例。
- 失败时重启:当应用实例异常退出时,系统会重新拉起应用实例,正常退出时,则不再拉起应用实例。
- 不重启:当应用实例退出时,无论是正常退出还是异常退出,系统都不再重新拉起应用实例。
网络类型
容器访问支持主机网络和端口映射两种方式。
- 主机网络
使用宿主机(边缘节点)的网络,即容器与主机间不做网络隔离,使用同一个IP。
- 端口映射
容器网络虚拟化隔离,容器拥有单独的虚拟网络,容器与外部通信需要与主机做端口映射。配置端口映射后,流向主机端口的流量会映射到对应的容器端口。例如容器端口80与主机端口8080映射,那主机8080端口的流量会流向容器的80端口。
- 端点配置。
- 第三步配置确认,参考表7 填写基本信息
图14 应用版本基本配置
表7 应用版本基本配置 参数名称
说明
应用ID
自定义边缘应用ID。
应用名称
自定义边缘应用的名称。
功能用途
您可以根据实际情况选择:
数据处理:提供设备数据处理能力。
协议解析:提供设备接入能力。
本地子系统集成:提供IT子系统集成能力。
网关管理:扩展边缘节点的协议接入能力,当前支持Modbus,OPC-UA协议接入。
混合应用:包含数据处理、协议转换、子系统接入、网关管理、数据采集其中两个及以上功能的应用。
数据采集:提供OT数采能力。
应用描述
输入对应用的描述信息,方便与其他应用进行区分。
SDK版本
集成边缘SDK的版本号。
版本
自定义您的应用版本号。可选择是否“立即发布”。
支持架构
选择应用可支持的架构。有x86_64、arm32、arm64的架构,支持多选。
支持多部署
应用版本支持在一个边缘节点上部署多个实例。
业务模板
业务应用使用的配置模板也可以不关联模板。
- 单击“确认添加”,完成应用的创建;单击"立即发布",完成应用创建并发布新版本。
图15 创建成功
- 单击“返回应用管理列表”。
您可以看到应用类型为“用户定义”,区别于系统预置的应用。
图16 应用管理列表