更新时间:2024-05-29 GMT+08:00

创建设备隧道

功能介绍

用户可以通过该接口创建隧道(WebSocket协议),应用服务器和设备可以通过该隧道进行数据传输。

  • 该API接口在基础版不支持。

  • 该API调用后平台会向对应的MQTT/MQTTS设备下发隧道地址及密钥,同时给应用服务器也返回隧道地址及密钥,设备可以通过该地址及密钥创建WebSocket协议连接。

  • 一个设备无法创建多个隧道。

  • 具体应用可见“设备远程登录”功能,请参见设备远程登录

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

URI

POST /v5/iot/{project_id}/tunnels

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数说明:项目ID。获取方法请参见 获取项目ID

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数说明:用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证

Instance-Id

String

参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考 查看实例详情

表3 请求Body参数

参数

是否必选

参数类型

描述

device_id

String

参数说明:设备ID

响应参数

状态码: 201

表4 响应Body参数

参数

参数类型

描述

tunnel_id

String

隧道ID

tunnel_access_token

String

鉴权信息

expires_in

Integer

鉴权信息的过期时间, 单位:秒

最小值:0

最大值:86400000

tunnel_uri

String

websocket接入地址

最小长度:1

最大长度:2048

请求示例

创建设备隧道,设备id为b64b7a625b84c1334befb648b_test。

POST https://{endpoint}/v5/iot/{project_id}/tunnels

{
  "device_id" : "b64b7a625b84c1334befb648b_test"
}

响应示例

状态码: 201

创建设备隧道成功

{
  "tunnel_id" : "d144a524-1997-4b99-94bf-f27128da8a34",
  "tunnel_access_token" : "MIIDkgYJKoZIhvcNAQcCoIIDgzCCXXXXX",
  "expires_in" : 86400,
  "tunnel_uri" : "wss://tunnel.st1.iotda-app.cn-XXX.myhuaweicloud.com/v5/iot/tunnels/XXX/source-connect"
}

状态码

状态码

描述

201

创建设备隧道成功

400

输入参数不正确

401

Unauthorized

403

鉴权认证失败

500

Internal Server Error

错误码

请参见错误码