
# 在指定节点上创建外部实体
#### 功能介绍
用户通过在指定边缘节点上设置外部实体的接入信息
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IoTEdge/doc?api=CreateExternalEntity)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
POST /v2/{project_id}/edge-nodes/{edge_node_id}/externals
表1路径参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                        |
|:---|:---|:---|:---|
| project_id   | 是    | String | 项目ID。获取方法请参见 [获取项目ID](https://support.huaweicloud.com/api-iotedge/iotedge_api_0032.html)。 |
| edge_node_id | 是    | String | 边缘节点ID                                                                                    |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。通过调用IAM服务 [获取IAM用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)接口获取，接口返回的响应消息头中"X-Subject-Token"就是需要获取的用户Token。简要的获取方法样例请参见 [Token认证](https://support.huaweicloud.com/api-iothub/iot_06_v5_0091.html#section0)。 |
   
表3请求Body参数 
| 参数                   | 是否必选 | 参数类型                                                                                                                | 描述                                                                                                                       |
|:---|:---|:---|:---|
| external_id          | 是    | String                                                                                                              | 外部实体Id，节点下唯一                                                                                                             |
| protocol             | 是    | String                                                                                                              | 连接外部实体的协议类型                                                                                                              |
| connection_type      | 是    | String                                                                                                              | 连接类型                                                                                                                     |
| mqtt_connection_info | 否    | [MqttConnectionInfo] object | mqtt连接信息                                                                                                                 |
| space_id             | 否    | String                                                                                                              | 资源空间ID。此参数为非必选参数，存在多资源空间的用户需要使用该接口时，建议携带该参数指定创建的外部实体归属到IoDA哪个资源空间下的边缘节点设备下，否则创建的外部实体将会归属到默认资源空间下对应的边缘节点下,对应于IoDA的app_id. |
   
 表4MqttConnectionInfo 
| 参数             | 是否必选 | 参数类型    | 描述                                                                                                                                          |
|:---|:---|:---|:---|
| server_address | 否    | String  | 采用client方式连接时，mqtt服务器地址                                                                                                                     |
| client_id      | 否    | String  | mqtt连接时，client_id                                                                                                                           |
| auth_type      | 否    | String  | 鉴权类型。支持密钥认证接入(SECRET)和证书认证接入(CERTIFICATES)两种方式。使用密钥认证接入方式(SECRET)填写user_name和user_name字段，使用证书认证接入方式(CERTIFICATES)填写privateKey和certificate字段 |
| private_key    | 否    | String  | 证书密钥                                                                                                                                        |
| certificate    | 否    | String  | 证书                                                                                                                                          |
| user_name      | 否    | String  | 用户名                                                                                                                                         |
| password       | 否    | String  | 密码                                                                                                                                          |
| qos            | 否    | Integer | 服务质量,默认为0,表示最多一次的传输,1表示至少一次,2表示仅一次.                                                                                                         |
   
#### 响应参数
**状态码：201**
表5响应Body参数 
| 参数               | 参数类型   | 描述                                                                                                                       |
|:---|:---|:---|
| node_id          | String | 节点ID                                                                                                                     |
| space_id         | String | 资源空间ID。此参数为非必选参数，存在多资源空间的用户需要使用该接口时，建议携带该参数指定创建的外部实体归属到IoDA哪个资源空间下的边缘节点设备下，否则创建的外部实体将会归属到默认资源空间下对应的边缘节点下,对应于IoDA的app_id. |
| external_id      | String | 外部实体ID                                                                                                                   |
| protocol         | String | 接入协议类型：MQTT，HTTP。                                                                                                        |
| connection_type  | String | 连接类型(client和server)                                                                                                      |
| create_time      | String | 创建时间                                                                                                                     |
| last_modify_time | String | 最后修改时间                                                                                                                   |
   
#### 请求示例
```
POST https://{endpoint}/v2/{project_id}/edge-nodes/{edge_node_id}/externals
{
  "external_id" : "test",
  "protocol" : "MQTT",
  "connection_type" : "CLIENT",
  "mqtt_connection_info" : {
    "server_address" : "ssl://127.0.0.1:88883",
    "client_id" : "client_id",
    "auth_type" : "SECRET",
    "private_key" : "MIIGsDCCBJigAwIBAgIIdrfb4YBBxtQwDQYJKoZIhvcNAQELBQAwgZIxCzAJBgNV",
    "certificate" : "MIIGsDCCBJigAwIBAgIIdrfb4YBBxtQwDQYJKoZIhvcNAQELBQAwgZIxCzAJBgNV",
    "user_name" : "user_name",
    "password" : "password",
    "qos" : 0
  },
  "space_id" : "jeQDJQZltU8iKgFFoW060F5SGZka"
}
```
#### 响应示例
**状态码：201**
Created
```
{
  "node_id" : "string",
  "space_id" : "jeQDJQZltU8iKgFFoW060F5SGZka",
  "external_id" : "string",
  "protocol" : "string",
  "connection_type" : "string",
  "create_time" : "string",
  "last_modify_time" : "string"
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 201 | Created               |
| 401 | Bad Request           |
| 500 | Internal Server Error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-iotedge/ErrorCode.html)。
