云服务器内容精选
-
请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用 IAM 服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 表4 请求Body参数 参数 是否必选 参数类型 描述 device_secret 否 String 边缘节点设备密钥,如果不输入则平台随机生成 verify_code 否 String 边缘节点注册使用的验证码,如果不输入则平台随机生成。
-
URI POST /v2/{project_id}/edge-nodes/{edge_node_id}/reinstall 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID。获取方法请参见 获取项目ID。 edge_node_id 是 String 边缘节点ID 表2 Query参数 参数 是否必选 参数类型 描述 enable_tpm 否 Boolean 是否启用TPM
-
本地自治 IoT边缘通过架构设计使其能够在网络受限时仍然实现边缘节点自治,具体体现在以下四个方面: 边缘节点持续运行:即使边缘节点无法连接到云端服务,也可以保证已部署的数据采集、数据处理和数据推送等边缘模块持续运行。 边缘模块自我恢复:在网络断开的情况下,如果边缘节点上的任何模块发生异常退出,系统可以自动重新启动它,确保服务的稳定性。 离线数据边侧缓存:当节点无法将数据上报到云端时,节点会将数据缓存在本地。数据不会因为暂时的网络问题而丢失,在网络恢复后重新尝试上报。 自动恢复离线操作:当网络恢复后,边缘节点会自动连接到IoT边缘服务。节点离线期间进行的所有管理操作,将在节点恢复在线后下发执行。管理操作包含但不仅限于:部署、升级或删除应用模块;管理数据流转规则;管理数据采集配置;管理离线缓存配置;管理日志采集开关。 以上这些架构设计使边缘节点能够在网络不稳定的环境中保持运行,并在网络恢复后,自动同步离线期间的管理操作,从而实现在网络断开时的本地自治。 父主题: 管理边缘节点
-
接入模式介绍 IoT边缘应用部署完成后,边缘节点即作为云端 物联网平台 在设备侧的延伸。边缘节点可以为设备就近提供计算和管理服务,其优势有低时延业务本地管理、与云端断链时可在本地控制和执行规则等。设备接入边缘节点,通过边缘节点将数据上传到云端物联网平台。边缘节点提供两种模式接入设备: 透传网关模式:边缘节点支持通用MQTT协议接入,MQTT协议的设备或网关可以直连云端物联网平台,也可以通过边缘节点连接云端物联网平台。这种模式下,边缘节点作为透传网关,将设备或网关上报的数据透传至云端物联网平台。 图1 模式介绍 边缘节点当前支持两种模式接入设备: 接入模式 适用设备类型 场景描述 透传网关模式 针对采用MQ TTS 协议直接接入边缘节点的设备。 设备通过集成IoT Device SDK、IoT Device SDK Tiny或者实现原生MQTTS协议,将数据发送给边缘节点,边缘节点直接透传给云端物联网平台。 针对未实现TCP/IP协议栈,无法直接同物联网平台通信,希望利用网关连接边缘节点的设备。 设备作为网关子设备,网关直连边缘节点,边缘节点透传网关数据至云端物联网平台 网关通过集成IoT Device SDK、IoT Device SDK Tiny接入边缘节点。 设备通过近场通信协议接入网关,确保设备和网关支持协议相同。 IoTEdge透传IoTDA报文,支持能力如下“表1 IoTEdge支持透传IoTDA报文能力详情”所示。其中,对于表中“4.6 网关新增子设备请求”添加的设备,只能在IoTDA控制台查看设备信息,无法在IoTEdge控制台管理设备信息。 表1 IoTEdge支持透传IoTDA报文能力详情 报文类型 是否支持 1 设备命令 支持 1.1 平台命令下发 支持 2 设备消息 支持 2.1 设备消息上报 支持 2.2 平台消息下发 支持 3 设备属性 支持 3.1 设备属性上报 支持 3.2 网关批量设备属性上报 支持 3.3 平台设置设备属性 支持 3.4 平台查询设备属性 支持 3.5 设备侧获取平台的设备影子数据 支持 4 网关与子设备管理 支持 4.1 平台通知网关子设备新增 支持 4.2 平台通知网关子设备删除 支持 4.3 网关同步子设备列表 支持 4.4 网关更新子设备状态 支持 4.5 网关更新子设备状态响应 支持 4.6 网关新增子设备请求 支持 4.7 网关新增子设备请求响应 支持 4.8 网关删除子设备请求 支持 4.9 网关删除子设备请求响应 支持 5 软固件升级 不支持 5.1 平台下发获取版本信息通知 不支持 5.2 设备上报软固件版本 不支持 5.3 平台下发升级通知 不支持 5.4 设备上报升级状态 不支持 6 文件上传/下载管理 不支持 6.1 设备上报获取文件上传URL请求 不支持 6.2 平台下发文件上传临时URL 不支持 6.3 设备上报文件上传结果 不支持 6.4 设备上报获取文件下载URL请求 不支持 6.5 平台下发文件下载临时URL 不支持 6.6 设备上报文件下载结果 不支持 7 设备时间同步 不支持 7.1 设备时间同步请求 不支持 7.2 设备时间同步响应 不支持 8 设备信息上报 不支持 8.1 设备信息上报 不支持 9 设备日志收集 不支持 9.1 平台下发日志收集通知 不支持 9.2 设备上报日志内容 不支持 10 远程配置 不支持 10.1 平台下发配置通知 不支持 10.2 设备上报配置响应 不支持 父主题: 设备接入边缘节点
-
在边缘节点安装Docker后,如何设置Docker Cgroup Driver? 在边缘节点安装Docker后,Docker Cgroup Driver必须设置为cgroupfs,一般Docker默认的就是cgroupfs,如需重新设置参考如下操作步骤: 可以使用docker info查看Cgroup Driver配置,如果不是cgroupfs,需要修改Docker的Cgroup Driver为cgroupfs。 ...Logging Driver: json-fileCgroup Driver: cgroupfsHugetlb Pagesize: 2MB, 1GB (default is 2MB)Plugins: Volume: local Network: bridge host macvlan null overlay... 使用vim /etc/docker/daemon.json编辑Docker的配置文件,如果不存在就创建。 在配置文件中添加如下内容: { "exec-opts": ["native.cgroupdriver=cgroupfs"]} 如果上面一行还有内容,需要在上面一行加上英文逗号。 重新加载配置文件并重启Docker:systemctl daemon-reload && systemctl restart docker。 父主题: 边缘节点
-
手动放开防火墙端口 登录边缘节点后台,手动开放端口如下: MS:需放通8090,用于占空网关边缘服务 命令配置参考如下: [root@localhost /]# firewall-cmd --zone=public --add-port=8090/tcp --permanent 添加需重载生效: [root@localhost /]# firewall-cmd --reload 查看已经放通的端口: [root@localhost /]# firewall -cmd --zone=public --list-ports8090/tcp 父主题: 边缘节点安装部署
-
请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 ief-instance-id 否 String 铂金版实例ID,专业版实例为空值 Content-Type 是 String 消息体的类型(格式),默认取值为“application/json” 表3 请求Body参数 参数 是否必选 参数类型 描述 add_node_ids 否 Array of strings 新增绑定的节点ID列表 remove_node_ids 否 Array of strings 新增解绑的节点ID列表
-
响应示例 状态码: 200 成功 { "id" : "e4f9c0d6-e1d7-41d5-a108-f38aa8372ffd", "name" : "test1", "description" : "", "created_at" : "2022-06-07 08:21:05.794205 +0000 UTC", "updated_at" : "2022-06-07 08:21:05.794217 +0000 UTC", "project_id" : "xxx", "iam_role" : "", "memory" : 8595, "cpu" : 5, "gpu_num" : 0, "nodes" : [ { "id" : "024e05a8-89bf-46d8-b298-700a2af69605", "project_id" : "xxx", "name" : "test1", "description" : "", "created_at" : "2022-08-05 02:14:52.351802 +0000 UTC", "updated_at" : "2022-10-31 19:19:37.104359 +0000 UTC", "state" : "RUNNING", "master_addr" : "xxx/xxx", "arch" : "x86_64", "enable_gpu" : false, "gpu_info" : [ ], "gpu_num" : 0, "memory" : 990, "os_version" : "3.10.0-1062.12.1.el7.x86_64", "os_name" : "CentOS Linux 7 (Core)", "device_infos" : null, "os_type" : "linux", "pause_docker_image" : "", "host_name" : "test1", "cpu" : 1, "log_configs" : [ { "level" : "on", "rotate_num" : 5, "component" : "app", "rotate_period" : "yearly", "type" : "LTS", "id" : "", "size" : 50 }, { "level" : "info", "rotate_num" : 5, "component" : "system", "rotate_period" : "yearly", "type" : "LTS", "id" : "", "size" : 50 }, { "level" : "", "rotate_num" : 5, "component" : "app", "rotate_period" : "daily", "type" : "local", "id" : "", "size" : 50 }, { "level" : "info", "rotate_num" : 5, "component" : "system", "rotate_period" : "daily", "type" : "local", "id" : "", "size" : 50 } ], "host_ips" : [ "192.168.0.x" ], "edged_version" : "2.1.0", "deployment_num" : 1, "device_num" : 2, "upgrade_history" : [ { "to_version" : "2.55.8", "upgrade_time" : 1659694662, "id" : 0, "result" : "install_success", "from_version" : "", "dur_time" : 0 }, { "to_version" : "2.55.9", "upgrade_time" : 1660642318, "id" : 1, "result" : "upgrade_success", "from_version" : "2.55.8", "dur_time" : 30 }, { "to_version" : "2.56.0", "upgrade_time" : 1662019732, "id" : 2, "result" : "upgrade_success", "from_version" : "2.55.9", "dur_time" : 29 }, { "to_version" : "2.56.0", "upgrade_time" : 1663125401, "id" : 3, "result" : "upgrade_failed_rollback_success", "from_version" : "2.56.0", "dur_time" : 3 } ], "ief_node_version" : "2.3.0", "upgrade_flag" : false, "comment" : "", "ca" : "", "relation" : "", "certificate" : "", "private_key" : "", "attributes" : null, "package" : "", "tags" : null, "product_id" : "", "mqtt_mode" : "internal", "mqtt_internal" : "", "mqtt_external" : "", "enable_npu" : false, "npu_type" : "", "docker_enable" : null, "npu_num" : 0, "npu_info" : [ ], "node_type" : "", "ntp_configs" : null, "nics" : null, "error_reason" : "", "container_runtime_version" : "", "purchase_id" : "", "state_details" : { "register_stat" : "", "purchase_stat" : "", "purchase_error" : "" }, "cert_remaining_valid_time" : 0 }, { "id" : "de5d81fe-a58e-4ec4-be9d-f3906d7fe356", "project_id" : "xxx", "name" : "cjq-test-1008", "description" : "", "created_at" : "2022-10-07 23:19:18.147956 +0000 UTC", "updated_at" : "2022-10-27 23:20:09.631153 +0000 UTC", "state" : "RUNNING", "master_addr" : "xxx", "arch" : "x86_64", "enable_gpu" : false, "gpu_info" : [ ], "gpu_num" : 0, "memory" : 7805, "os_version" : "3.10.0-862.14.1.5.h408.eulerosv2r7.x86_64", "os_name" : "EulerOS 2.0 (SP5)", "device_infos" : null, "os_type" : "linux", "pause_docker_image" : "", "host_name" : "ecs-81ba", "cpu" : 4, "log_configs" : null, "host_ips" : [ "192.168.0.161" ], "edged_version" : "2.1.0", "deployment_num" : 1, "device_num" : 0, "upgrade_history" : [ { "to_version" : "2.53.4", "upgrade_time" : 1665215216, "id" : 0, "result" : "install_success", "from_version" : "", "dur_time" : 0 }, { "to_version" : "2.56.5", "upgrade_time" : 1666839798, "id" : 1, "result" : "upgrade_success", "from_version" : "2.56.4", "dur_time" : 22 }, { "to_version" : "2.56.6", "upgrade_time" : 1666872187, "id" : 2, "result" : "upgrade_success", "from_version" : "2.56.5", "dur_time" : 23 } ], "ief_node_version" : "2.56.6", "upgrade_flag" : false, "comment" : "", "ca" : "", "relation" : "", "certificate" : "", "private_key" : "", "attributes" : null, "package" : "", "tags" : null, "product_id" : "", "mqtt_mode" : "internal", "mqtt_internal" : "", "mqtt_external" : "", "enable_npu" : false, "npu_type" : "", "docker_enable" : null, "npu_num" : 0, "npu_info" : [ ], "node_type" : "", "ntp_configs" : null, "nics" : null, "error_reason" : "", "container_runtime_version" : "", "purchase_id" : "", "state_details" : { "register_stat" : "", "purchase_stat" : "", "purchase_error" : "" }, "cert_remaining_valid_time" : 0 } ], "deployments" : [ ], "attributes" : [ ], "failed_node_add" : null, "failed_node_del" : null, "success_node_add" : null, "success_node_del" : null}
-
响应示例 状态码: 201 创建成功 { "id" : "243931b3-2651-4147-becc-d4215c8c2296", "name" : "app-cert", "description" : "", "created_at" : "2020-09-22T17:55:41.577635881Z", "node_id" : "9ebd8efb-9fdd-44a1-abda-9cdbc287a867", "type" : "application", "serial_num" : "", "ca" : "", "certificate" : "", "private_key" : "", "package" : ""}
-
响应参数 状态码: 201 表4 响应Body参数 参数 参数类型 描述 id String 证书id name String 证书名称 description String 证书的描述 created_at String 证书的创建时间 node_id String 节点id type String 证书类型,包含: system:创建节点时会默认创建一套系统证书 application:应用证书 device:设备证书 serial_num String 证书序列号 ca String 根证书 certificate String 证书 private_key String 私钥 package String 将证书文件certificate/ca/private_key打成.tar.gz包后用base64编码的字符串。 使用时请使用base64解码成.tar.gz包。