创建设备隧道 - AddTunnel
功能介绍
用户可以通过该接口创建隧道(WebSocket协议),应用服务器和设备可以通过该隧道进行数据传输。
-
该API接口在基础版不支持。
-
该API调用后平台会向对应的MQTT/MQTTS设备下发隧道地址及密钥,同时给应用服务器也返回隧道地址及密钥,设备可以通过该地址及密钥创建WebSocket协议连接。
-
一个设备无法创建多个隧道。
-
具体应用可见“设备远程登录”功能,请参见设备远程登录。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权,具体权限要求请参见权限和授权项。
- 如果使用身份策略授权,需具备如下身份策略权限。
授权项
访问级别
资源类型(*为必须)
条件键
别名
依赖的授权项
iotda:tunnel:create
Write
-
-
g:EnterpriseProjectId
-
iotda:DeviceGroupId
-
-
-
URI
POST /v5/iot/{project_id}/tunnels
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| project_id | 是 | String | 参数说明:项目ID。获取方法请参见 获取项目ID。 |
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| Instance-Id | 否 | String | 参数说明:实例ID。物理多租下各实例的唯一标识,建议携带该参数,在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面,选择左侧导航栏“总览”页签查看当前实例的ID,具体获取方式请参考 查看实例详情。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| device_id | 是 | String | 参数说明:设备ID |
响应参数
状态码:201
| 参数 | 参数类型 | 描述 |
|---|---|---|
| tunnel_id | String | 隧道ID |
| tunnel_access_token | String | 鉴权信息 |
| expires_in | Integer | 鉴权信息的过期时间, 单位:秒 |
| tunnel_uri | String | websocket接入地址 |
请求示例
创建设备隧道,设备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 |
错误码
请参见错误码。