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