更新时间:2022-04-13 GMT+08:00
分享

添加应用

添加您的自定义边缘应用。

操作步骤

  1. 访问IoT边缘,单击“立即使用”进入IoT边缘控制台。
  2. 选择左侧导航栏“IoT边缘 > 应用管理”进入页面,单击右上角“添加应用”
  3. 第一步“软件部署配置”。

    1. 选择部署方式,参考表1填写基本信息。
      图1 软件部署配置

      表1 部署配置

      参数名称

      说明

      部署方式

      容器化部署:在边缘节点是以Docker容器运行;添加容器化部署的应用需先确保容器镜像已上传到容器镜像服务(SWR),且设置其类型为“公开”,例如图2所示。

      安装包部署:在边缘节点是以进程形式运行;添加安装包部署的应用需先确保安装包已按照打包规范进行压缩打包,并上传到对象存储服务(OBS)

      容器镜像

      部署方式为容器化部署时,参考表2填写。

      安装包部署

      部署方式为安装包部署时,填写您此前上传到对象存储服务OBS中的安装包地址。

      表2 选择镜像输入方式

      参数名称

      说明

      手动输入

      输入镜像地址:统一在容器镜像服务(SWR)中管理。

      点击选择

      选择镜像:选择需要部署的镜像,单击“确认”
      • 我的镜像:展示了您在容器镜像服务中创建的所有镜像。
      • 他人共享:展示了其他用户共享的镜像。

      版本:选择需要部署的镜像版本。

    2. 选择容器规格,根据您的需要选择。
      图2 容器规格配置

    3. 高级配置,按照如下步骤进行配置。
      图3 高级配置
      1. 运行命令(只有容器化部署的方式可以配置)
        图4 运行命令
        • 运行命令:输入可执行的命令,例如“/run/start”。
          • 若可执行命令有多个,多个命令之间用空格进行分隔,例如:ls ps。
          • 若命令本身带空格,则需要加引号,例如:"sleep 100"。

            多命令时,运行命令建议用/bin/sh或其他的shell,其他全部命令作为参数来传入。

        • 命令参数:输入控制容器运行命令参数,例如-port=8080。

          若参数有多个,多个参数以换行分隔。

      2. 选项配置

        打开勾选项,容器将拥有访问主机设备的权限,可以访问主机上的设备(如GPU、FPGA)。

      3. 环境变量
        图5 环境变量

        容器运行环境中设定的一个变量。可以在部署应用时修改。

        单击添加环境变量,输入变量名称和变量值,添加环境变量。

        IoTEdge平台不会对用户输入的环境变量进行加密。

        如果用户配置的环境变量涉及敏感信息,用户需要自行加密后再填入,并在应用中自己完成解密过程。

        IoTEdge平台服务不提供任何加解密工具,如果您需要设置加密密文,可以使用其他平台的加解密工具。

      4. 数据存储

        卷是指容器运行过程中使用的存储卷。

        将主机某个目录挂载到容器中。主机目录是一种持久化存储,应用删除后hostPath里面的内容依然存在于边缘节点本地硬盘目录中,如果后续重新创建应用,挂载后依然可以读取到之前写入的内容。

        图6 数据存储
        • 请不要挂载在系统目录下,如“/”、“/var/run”等,会导致容器异常。建议挂载在空目录下,若目录不为空,请确保目录下无影响容器启动的文件,否则文件会被替换,导致容器启动异常,应用创建失败。

        • 挂载高危目录的情况下 ,建议使用低权限账号启动,否则可能会造成宿主机高危文件被破坏。

        • 本地卷的类型选择LOG/DB/CONFIG时,会给主机目录默认添加前缀:"/var/IoTEdge/{log|db|config}"。若需要将容器目录直接挂载到主机某个目录,本地卷的类型需选择为“其他”。
        • 当挂载的目录磁盘满,会导致节点异常,无法使用,请及时清理。
      5. 健康检查
        健康检查是指容器运行过程中根据用户需要定时检查容器健康状况或是容器中负载的健康状况。
        • 应用存活探针:应用存活探针用于探测容器是否正常工作,不正常则重启实例。当前支持发送HTTP请求和执行命令检查,通过检测容器响应是否正常。

        • 应用业务探针:应用业务探针用于探测业务是否就绪,如果业务还未就绪,就不会将流量转发到当前实例。

        图7 健康检查
        表3 检查方式

        参数名称

        说明

        HTTP请求检查

        向容器发送HTTP GET请求,如果探针收到2xx或3xx,说明容器是健康的。

        例如图8的配置,会在容器启动10秒(延迟时间)后,发送HTTP GET请求到“http://{实例IP}/healthz:8080”,如果在2秒(超时时间)内没有响应则视为检查失败;如果请求响应的状态码为2xx或3xx,则说明容器是健康的。

        说明:

        这里无需填写主机地址,默认直接使用实例的IP(即往容器发送请求),除非您有特殊需求。

        执行命令检查

        探针执行容器中的命令并检查命令退出的状态码,如果状态码为0则说明健康。

        例如图9的配置,会在容器启动10秒(延迟时间)后,在容器中执行“cat /tmp/healthy”命令,如果在2秒(超时时间)内没有响应,则视为检查失败;如果命令成功执行并返回0,则说明容器是健康的。

        图8 HTTP请求检查
        图9 执行命令检查

  4. 第二步“运行配置”。

    图10 端点和部署配置
    1. 端点配置。

      EdgeHub与其他模块之间的通讯采用MQTT做为消息总线,其中MQTT作为Broker可与各模块进行数据流转。

      • 输入端点:模块订阅的指定正则MQTT Topic的后缀,EdgeHub向该模块发送数据时则根据该模块配置的输入端点构造MQTT Topic并发送数据。
      • 输出端点:从模块端向EdgeHub发送数据时使用的MQTT Topic后缀;即EdgeHub接收该模块配置的输出端点对应的MQTT Topic的数据。

      只有配置了消息输入输出端点的应用实例化的模块才能够使用数据流转功能。

    2. 部署配置。
      表4 部署配置

      参数名称

      说明

      重启策略

      根据您的需要选择。

      • 总是重启:当应用实例退出时,无论是正常退出还是异常退出,系统都会重新拉起应用实例。
      • 失败时重启:当应用实例异常退出时,系统会重新拉起应用实例,正常退出时,则不再拉起应用实例。
      • 不重启:当应用实例退出时,无论是正常退出还是异常退出,系统都不再重新拉起应用实例。

      网络类型

      容器访问支持主机网络和端口映射两种方式。

      • 主机网络

        使用宿主机(边缘节点)的网络,即容器与主机间不做网络隔离,使用同一个IP。

      • 端口映射

        容器网络虚拟化隔离,容器拥有单独的虚拟网络,容器与外部通信需要与主机做端口映射。配置端口映射后,流向主机端口的流量会映射到对应的容器端口。例如容器端口80与主机端口8080映射,那主机8080端口的流量会流向容器的80端口。

  5. 第三步配置确认,参考表5 填写基本信息

    表5 应用版本基本配置

    参数名称

    说明

    应用名称

    自定义边缘应用的名称。

    功能用途

    您可以根据实际情况选择:

    数据处理:提供设备数据处理能力。

    协议解析:提供设备接入能力。

    本地子系统集成:提供IT子系统集成能力。

    网关管理:扩展边缘节点的协议接入能力,当前支持Modbus,OPC-UA协议接入。

    混合应用:包含数据处理、协议转换、子系统接入、网关管理、数据采集其中两个及以上功能的应用。

    数据采集:提供OT数采能力。

    应用描述

    输入对应用的描述信息,方便与其他应用进行区分。

    SDK版本

    集成边缘SDK的版本号。

    应用版本

    自定义您的应用版本号。可选择是否“立即发布”。

    支持架构

    选择应用可支持的架构。有x86_64、arm32、arm64的架构,支持多选。

    支持多部署

    应用版本是否支持在一个边缘节点上部署多个实例。

  6. 单击“确认添加”,完成应用的创建;单击"立即发布",完成应用创建并发布新版本。

    图11 创建成功

  7. 单击“返回应用管理列表”

    您可以看到应用类型为“用户定义”,区别于系统预置的应用。
    图12 应用管理列表

分享:

    相关文档

    相关产品

close