应用部署

编译好的业务应用,通过调用openAPI接口,先后经过下载、安装、启动环节,正是在边缘计算节点上运行。

应用下载

1. 请求消息

1.1 topic

  • topic:/v1/devices/DGRI20239999/app/command

Topic
/v1/devices/{DeviceSn}/app/command

消息发送方

物联网平台

消息接收方

网关设备

1.2 请求消息payload

数据域
数据类型
是否必选
描述

mid

stirng

消息ID,推荐使用uuid, 请求和应答匹配,用来匹配请求和应答消息和去重

msgTime

string

消息发送时间戳,RFC3339标准,例如:1985-04-12T23:20:50.52Z

zone

string

设备部署的区域,例如ZONE3

node

string

设备部署的节点,例如440000

requestId

string

微服务链路追踪用的标识

deviceSn

string

设备ESN码,用于唯一标识设备

deviceId

string

统一物联网平台分配的设备id,据说可能会重复,不能唯一标识设备

service

string

服务名称。这里固定为:app

cmd

string

具体操作方法,这里固定为:actionAppDownload

params

object

[可选]对象内容

params结构体说明

字段名
必选/可选
类型
参数描述

fileId

必选

String

app文件唯一id

fileName

必选

string

文件名称。

size

必选

number

文件大小。

digestAlgorithm

必选

string

校验和的计算方式。

digest

必选

string

校验和的值。

fileLink

必选

string

文件下载路径,取值为https。

fileType

必选

string

文件类型,可选值tar

请求示例

{
  "mid": "9edaadff-b6fa-468b-9a21-3f45494d62d9",
  "service": "app",
  "cmd": "actionConfigDownload",
  "zone": "设备部署区域",
  "node": "设备部署节点",
  "deviceSn": "DGRI20230718",
  "requestId": "189aeedf-4769-4e82-ae82-41c5da3969cc",
  "msgTime": "2023-09-11T14:08:48.042Z",
  "params": {
    "fileName": "edgex",
    "fileLink": "http://172.16.24.119:8080/edgex.bin",
    "fileId": "binFileId5test",
    "configId": "binId5test8",
    "size": 104857600,
    "digestAlgorithm": "md5",
    "digest": "735648e78db1e57c12b3819eba63e861",
    "fileType": "bin"
  }
}

2. 应答消息

2.1 Topic

Topic
/v1/devices/app/response

消息发送方

网关设备

消息接收方

物联网平台

2.2  应答消息payload

数据域
数据类型
是否必选
描述

mid

string

消息ID,用于消息去重。

replyId

string

表示响应的是哪条请求指令,为该指令的mid,用来匹配请求和应答

msgTime

string

消息发送时间戳,采用RFC3339标准,例如:1985-04-12T23:20:50.52Z。

zone

string

设备部署的区域,例如ZONE3

node

string

设备部署的节点,例如440000

requestId

string

微服务链路追踪用的标识

deviceSn

string

设备ESN码,用于唯一标识设备

deviceId

string

统一物联网平台分配的设备id,据说可能会重复,不能唯一标识设备

code

uint16

标识应答的返回码

批处理请求时,如果所有处理都成功,返回200

如果有部分失败,返回400。

取值如下:

•100:指令接收成功,等待执行完成。

•200:请求成功。

•400:请求消息错误,例如消息格式错误等。

•404:不支持该操作。

•429:请求太多。

•500:服务端内部错误,由应用定义。

body

object

(可选)对象内容。

body结构体说明

字段名
必选/可选
类型
参数描述

fileId

必选

String

文件唯一id,后边容器部署安装的时候,需要跟这个id关联

应答说明:

收到消息后马上对消息进行应答,此时code值取100

下载完成后再对该指令进行一次应答,此时code取值为200

应用部署

1. 请求消息

1.1 Topic

  • topic:/v1/devices/DGRI20239999/app/command

Topic
/v1/devices/{DeviceSn}/app/command

消息发送方

物联网平台

消息接收方

网关设备

1.2 请求消息Payload

数据域
数据类型
是否必选
描述

mid

stirng

消息ID,推荐使用uuid, 请求和应答匹配,用来匹配请求和应答消息和去重

msgTime

string

消息发送时间戳,RFC3339标准,例如:1985-04-12T23:20:50.52Z

zone

string

设备部署的区域,例如ZONE3

node

string

设备部署的节点,例如440000

requestId

string

微服务链路追踪用的标识

deviceSn

string

设备ESN码,用于唯一标识设备

deviceId

string

统一物联网平台分配的设备id,据说可能会重复,不能唯一标识设备

service

string

服务名称。这里固定为:app

cmd

string

具体操作方法,这里固定为:actionAppInstall

params

object

[可选]对象内容

Params结构体说明

字段
必选/可选
类型
描述

appId

必选

String

平台侧生成的微应用唯一id,用户关联往后相关的一系列操作

fileId

必选

String

应用文件唯一id

containerId

可选

String

app所安装的容器唯一id。直接安装在宿主机上时不需要。

containerName

可选

string

容器名称。字符串形式,区分大小写,仅支持数字、字母、下划线和横线,首字符需为数字或者大小写字母,长度范围是2~64。直接安装到宿主机时不需要该字段

appLocated

必选

string

安装类型。枚举类型,取值如下:

  • docker:Docker容器

  • linux-lxc:LXC容器

  • host:直接安装在宿主机

appName

可选

string

APP的安装包名称。

appVersion

必须

string

APP安装包的HASH值。

请求示例

{
  "mid": "b2c50a2a-6b3a-4d63-bb5d-ab84887901a8",
  "service": "app",
  "cmd": "actionConfigUpgrade",
  "zone": "设备部署区域",
  "node": "设备部署节点",
  "deviceSn": "DGRI20239999",
  "requestId": "6061245e-1c57-4576-b413-1e2ff68a7b44",
  "msgTime": "2023-09-011T13:26:50.268Z",
  "params": {
    "fileId": "binFileId5test",
    "configName": "edgex",
    "configLocated": "host",
    "configId": "binId5test8",
    "path": "/root/app"
  }
}

2. 应答消息

2.1 Topic

Topic
/v1/devices/app/response

消息发送方

网关设备

消息接收方

物联网平台

2.2 应答消息payload

参数说明

数据域
数据类型
是否必选
描述

mid

string

消息ID,用于消息去重。

replyId

string

表示响应的是哪条请求指令,为该指令的mid,用来匹配请求和应答

msgTime

string

消息发送时间戳,采用RFC3339标准,例如:1985-04-12T23:20:50.52Z。

zone

string

设备部署的区域,例如ZONE3

node

string

设备部署的节点,例如440000

requestId

string

微服务链路追踪用的标识

deviceSn

string

设备ESN码,用于唯一标识设备

deviceId

string

统一物联网平台分配的设备id,据说可能会重复,不能唯一标识设备

code

uint16

标识应答的返回码

批处理请求时,如果所有处理都成功,返回200

如果有部分失败,返回400。

取值如下:

•100:指令接收成功,等待执行完成。

•200:请求成功。

•400:请求消息错误,例如消息格式错误等。

•404:不支持该操作。

•429:请求太多。

•500:服务端内部错误,由应用定义。

body

object

(可选)对象内容。

body结构体说明

字段名
必选/可选
类型
参数描述

appId

必选

String

平台侧生成的微应用唯一id,用户关联往后相关的一系列操作

应用启动

1. 请求消息

1.1 Topic

Topic
/v1/devices/{DeviceSn}/app/command

消息发送方

物联网平台

消息接收方

网关设备

1.2 请求消息Payload

数据域
数据类型
是否必选
描述

mid

stirng

消息ID,推荐使用uuid, 请求和应答匹配,用来匹配请求和应答消息和去重

msgTime

string

消息发送时间戳,RFC3339标准,例如:1985-04-12T23:20:50.52Z

zone

string

设备部署的区域,例如ZONE3

node

string

设备部署的节点,例如440000

requestId

string

微服务链路追踪用的标识

deviceSn

string

设备ESN码,用于唯一标识设备

deviceId

string

统一物联网平台分配的设备id,据说可能会重复,不能唯一标识设备

service

string

服务名称。这里固定为:app

cmd

string

具体操作方法,这里固定为:actionAppStart

params

object

[可选]对象内容

Params结构体说明

字段
必选/可选
类型
描述

appId

必选

String

平台侧生成的微应用唯一id,用户关联往后相关的一系列操作

containerId

可选

string

app所安装的容器唯一id。直接安装在宿主机上时不需要。

containerName

可选

string

容器名称。字符串形式,区分大小写,仅支持数字、字母、下划线和横线,首字符需为数字或者大小写字母,长度范围是2~64。

containerHyperv

可选

string

容器类型。枚举类型,取值linux-lxc

appName

可选

string

APP的安装包名称。


2. 应答消息

2.1 Topic

Topic
/v1/devices/app/response

消息发送方

网关设备

消息接收方

物联网平台

2.2 应答消息payload

参数说明

数据域
数据类型
是否必选
描述

mid

string

消息ID,用于消息去重。

replyId

string

表示响应的是哪条请求指令,为该指令的mid,用来匹配请求和应答

msgTime

string

消息发送时间戳,采用RFC3339标准,例如:1985-04-12T23:20:50.52Z。

zone

string

设备部署的区域,例如ZONE3

node

string

设备部署的节点,例如440000

requestId

string

微服务链路追踪用的标识

deviceSn

string

设备ESN码,用于唯一标识设备

deviceId

string

统一物联网平台分配的设备id,据说可能会重复,不能唯一标识设备

code

uint16

标识应答的返回码

批处理请求时,如果所有处理都成功,返回200

如果有部分失败,返回400。

取值如下:

•100:指令接收成功,等待执行完成。

•200:请求成功。

•400:请求消息错误,例如消息格式错误等。

•404:不支持该操作。

•429:请求太多。

•500:服务端内部错误,由应用定义。

body

object

(可选)对象内容。

body结构体说明

字段名
必选/可选
类型
参数描述

appId

必选

String

平台侧生成的微应用唯一id,用户关联往后相关的一系列操作

最后更新于