
# 添加应用版本
边缘服务支持创建多个应用版本，方便您管理边缘应用。
#### 操作步骤
1. 访问智能设施云平台，进入左侧导航栏"边缘管理 \> 应用管理"菜单页。
2. 单击"应用管理"，在对应应用操作列单击详情进入应用详情页面。 
   图1应用详情   
   ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/zh-cn_image_0000002496207117.png "点击放大")
   
   
3. 单击左侧版本列表的"添加版本"按钮，添加边缘应用版本。 
   图2添加应用版本   
   ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/zh-cn_image_0000002496367117.png "点击放大")
   表1应用版本基本配置 
   | 参数名称  | 说明                                                                                                                                                                                                                                                                                                                                                                                                                       |
   |:---|:---|
   | 应用名称  | 自定义边缘应用的名称。                                                                                                                                                                                                                                                                                                                                                                                                              |
   | 功能用途  | 您可以根据实际情况选择： 数据处理：提供设备数据处理能力。 协议解析：提供设备接入能力。 本地子系统集成：提供IT子系统集成能力。 网关管理：扩展边缘节点的协议接入能力，当前支持Modbus，OPC-UA协议接入。 混合应用：包含数据处理、协议转换、子系统接入、网关管理、数据采集其中两个及以上功能的应用。 数据采集：提供OT数采能力。 |
   | SDK版本 | 集成边缘SDK的版本号。                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 应用版本  | 自定义您的应用版本号。后面支持多部署勾选后表示应用版本支持在一个边缘节点上部署多个实例。                                                                                                                                                                                                                                                                                                                                                                             |
   | 支持架构  | 选择应用可支持的架构。有x86_64、arm32、arm64的架构，支持多选。                                                                                                                                                                                                                                                                                                                                                                                  |
   | 业务模板  | 业务应用使用的配置模板也可以不关联模板。                                                                                                                                                                                                                                                                                                                                                                                                     |
      
   
   
4. 软件配置，输入容器镜像的地址，对应的就是镜像地址：统一在[容器镜像服务(SWR)](https://console.huaweicloud.com/swr/?region=cn-north-4#/app/warehouse/list)中管理。
   
   图3软件配置   
   ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/zh-cn_image_0000002463327686.png "点击放大")
   
   
5. 选择容器规格，根据您的需要选择。 
   图4容器规格配置
   ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/zh-cn_image_0000002496207149.png "点击放大")
   表2选择镜像输入方式 
   | 参数名称 | 说明                                                                                                      |
   |:---|:---|
   | 容器镜像 | 输入镜像地址：统一在[容器镜像服务(SWR)](https://console.huaweicloud.com/swr/?region=cn-north-4#/app/warehouse/list)中管理。 |
      
   表3AI加速卡配额指定参数说明 
   | 参数名称    | 说明                                                      |
   |:---|:---|
   | 不申请配额   | 应用无需使用AI加速卡                                             |
   | 申请GPU配额 | 应用需要Nvidia GPU，指定需要使用的GPU显存大小，应用部署时根据该配置分配资源。暂仅专业版节点支持。 |
   | 申请NPU配额 | 应用需要使用NPU，指定NPU的型号，及使用数量，应用部署时根据节点资源情况进行分配。             |
      
   
   
6. 高级配置，按照如下步骤进行配置。 
   图5高级配置   
   ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/zh-cn_image_0000002496367109.png "点击放大")
   1. 运行命令（只有容器化部署的方式可以配置）
      图6运行命令   
      ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/zh-cn_image_0000002463168086.png "点击放大")
      - 运行命令：输入可执行的命令，例如"/run/start"。
        - 若可执行命令有多个，多个命令之间用换行进行分隔，且末尾不能有空行。
         
      
      - 命令参数：输入控制容器运行命令参数，例如-port=8080。
        - 若参数有多个，多个参数以换行分隔，且末尾不能有空行。
         
      
      
      ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/public_sys-resources/note_3.0-zh-cn.png)
      启动命令和参数复杂时，建议编写启动脚本，打包到镜像中，如start.sh，启动命令设置为 ./shart.sh。
      若启动命令已经定义在dockerfile中，则该项可以不进行配置。
      
   
   2. 选项配置 打开勾选项并开启特权模式，容器将具有其宿主机几乎所有能力，包括一些内核特性和所有设备访问。容器在特性模式下运行会存在一些安全风险，默认关闭该选项。
      
   
   3. 环境变量
      图7环境变量   
      ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/zh-cn_image_0000002463168106.png "点击放大")
      容器运行环境中设定的一个变量。可以在部署应用时修改。
      单击![](https://support.huaweicloud.com/usermanual-ocsmartcampus/zh-cn_image_0000002463327702.png)添加环境变量，输入变量名称和变量值，添加环境变量。
      ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/public_sys-resources/note_3.0-zh-cn.png)
      不会对用户输入的环境变量进行加密。
      如果用户配置的环境变量涉及敏感信息，用户需要自行加密后再填入，并在应用中自己完成解密过程。
      平台服务不提供任何加解密工具，如果您需要设置加密密文，可以使用其他平台的加解密工具。
      
   
   4. 数据存储 卷是指容器运行过程中使用的存储卷。
      将主机某个目录挂载到容器中。主机目录是一种持久化存储，应用删除后hostPath里面的内容依然存在于边缘节点本地硬盘目录中，如果后续重新创建应用，挂载后依然可以读取到之前写入的内容。
      图8数据存储   
      ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/zh-cn_image_0000002496367097.png "点击放大")
      ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/public_sys-resources/note_3.0-zh-cn.png)
      - 请不要挂载在系统目录下，如"/"、"/var/run"等，会导致容器异常。建议挂载在空目录下，若目录不为空，请确保目录下无影响容器启动的文件，否则文件会被替换，导致容器启动异常，应用创建失败。
        
      
      - 挂载高危目录的情况下 ，建议使用低权限账号启动，否则可能会造成宿主机高危文件被破坏。
        
      
      - 本地卷的类型选择LOG/DB/CONFIG时，会给主机目录默认添加前缀："/var/IoTEdge/{log\|db\|config}"。若需要将容器目录直接挂载到主机某个目录，本地卷的类型需选择为"其他"。
      
      - 当挂载的目录磁盘满，会导致节点异常，无法使用，请及时清理。
        
   
   5. 外挂设备
      支持Linux外挂设备的挂载到容器中，如常见的串口、GPU、NPU设备。
      图9外挂设备   
      ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/zh-cn_image_0000002463168110.png "点击放大") 
   
   6. 健康检查
      健康检查是指容器运行过程中根据用户需要定时检查容器健康状况或是容器中负载的健康状况。
      - 应用存活探针：应用存活探针用于探测容器是否正常工作，不正常则重启实例。当前支持发送HTTP请求和执行命令检查，通过检测容器响应是否正常。
        
      
      - 应用业务探针：应用业务探针用于探测业务是否就绪，如果业务还未就绪，就不会将流量转发到当前实例。
        
       
      图10健康检查   
      ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/zh-cn_image_0000002463327714.png "点击放大")
      表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端口是否正常可以访问。如果可以，说明容器是正常的。                                                                                                                                                                                                                                                                                                        |
         
      图11HTTP请求检查   
      ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/zh-cn_image_0000002463327678.png "点击放大")
      图12执行命令检查   
      ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/zh-cn_image_0000002496367137.png "点击放大")
      图13TCP检查   
      ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/zh-cn_image_0000002496367121.png "点击放大") 
   
   
   
   
7. 运行配置。 
   图14端点和部署配置   
   ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/zh-cn_image_0000002463168066.png "点击放大")
   1. 端点配置。 边缘节点上各模块之间的通讯采用MQTT作为消息总线，其中系统模块EdgeHub作为MQTT Broker提供模块间的数据流转功能。应用版本中的输入/输出端点，即为模块对接消息总线的设备数据入口和出口点，用于配置数据流转规则。
      - 输入端点：模块从消息总线中接收设备数据的入口点。应用程序集成边缘SDK时需设置输入端点的监听/回调，以接收设备数据并进行处理。
      
      - 输出端点：模块往消息总线中发送设备数据的出口点。应用程序集成边缘SDK时，从输出端点往消息总线发送设备数据。
      
      
      ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/public_sys-resources/note_3.0-zh-cn.png)
      只有配置了消息输入输出端点的应用实例化的模块才能够使用设备数据流转功能。
      建议输入/输出端点配置成设备数据格式，即iotda_1.0或flat_json，用以关联接收到/发送的设备数据格式。
      
   
   2. 部署配置。
      表5部署配置 
      | 参数名称 | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
      |:---|:---|
      | 重启策略 | 根据您的需要选择。 - 总是重启：当应用实例退出时，无论是正常退出还是异常退出，系统都会重新拉起应用实例。  - 失败时重启：当应用实例异常退出时，系统会重新拉起应用实例，正常退出时，则不再拉起应用实例。  - 不重启：当应用实例退出时，无论是正常退出还是异常退出，系统都不再重新拉起应用实例。   |
      | 网络类型 | 容器访问支持主机网络和端口映射两种方式。 - **主机网络** 使用宿主机（边缘节点）的网络，即容器与主机间不做网络隔离，使用同一个IP。   - **端口映射** 容器网络虚拟化隔离，容器拥有单独的虚拟网络，容器与外部通信需要与主机做端口映射。配置端口映射后，流向主机端口的流量会映射到对应的容器端口。例如容器端口80与主机端口8080映射，那主机8080端口的流量会流向容器的80端口。                                     |
         
      
    
   
   
8. 配置确认，确认当前填写完成的应用配置信息。 
   图15配置确认   
   ![](https://support.huaweicloud.com/usermanual-ocsmartcampus/zh-cn_image_0000002496207141.png "点击放大")
   
   
9. 单击"确认添加"，完成应用的创建；单击"立即发布"，完成应用创建并发布新版本。
 
