
# 注册边缘节点 - CreateEdgeNode
#### 功能介绍
该API用于注册一个边缘节点。接口调用成功后，您可以将响应消息体中node.package字段使用base64解码成tar.gz文件，并在控制台下载边缘核心软件，然后纳管边缘节点。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IEF/doc?api=CreateEdgeNode)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-ief/ief_02_1003.html)。
#### URI
POST /v2/{project_id}/edgemgr/nodes
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述   |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID |
#### 请求参数
表2请求Header参数 
| 参数              | 是否必选 | 参数类型   | 描述                                                        |
|:---|:---|:---|:---|
| Content-Type    | 是    | String | 消息体的类型（格式），默认取值为"application/json"。                       |
| X-Auth-Token    | 是    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
| ief-instance-id | 否    | String | 企业版实例ID，专业版实例为空值。                                         |
   
表3请求Body参数 
| 参数   | 是否必选 | 参数类型                                                 | 描述     |
|:---|:---|:---|:---|
| node | 是    | [EdgeNode] object | 边缘节点参数 |
   
 表4EdgeNode 
| 参数            | 是否必选 | 参数类型                                                                 | 描述                                                                    |
|:---|:---|:---|:---|
| name          | 是    | String                                                               | 边缘节点名称，只允许中文字符、英文字母、数字、下划线、中划线，最大长度64 Name为必填字段，且本账号中唯一。              |
| description   | 否    | String                                                               | 边缘节点描述，最大长度255，不允许\^ \~ # $ % \& \* \< \> ( ) \[ \] { } ' " \\        |
| enable_gpu    | 否    | Boolean                                                              | 边缘节点是否开启GPU，默认为false                                                  |
| log_configs   | 否    | Array of [LogConfigs] objects   | 边缘节点日志配置，当用户未配置日志相关字段时，将默认打开日志上传到云端功能。                                |
| device_infos  | 否    | Array of [DeviceInfos] objects | 关联设备信息                                                                |
| enable_npu    | 否    | Boolean                                                              | 边缘节点是否开启NPU，true表示开启，false表示不开启，默认为false                              |
| npu_type      | 否    | String                                                               | NPU类型，支持D310、D310B，支持填写： - D310：D310类型 - D310B：D310B类型 - 不填表示为D310类型。 |
| attributes    | 否    | Array of [Attributes] objects   | 边缘节点属性，关联属性个数最多为32个                                                   |
| enable_docker | 否    | Boolean                                                              | 边缘节点启用Docker，默认为true                                                  |
| tags          | 否    | Array of [NodeResTag] objects   | 边缘节点标签，标签个数最多为20个                                                     |
| mqtt_config   | 否    | [MqttConfigs] object           | MQTT配置。                                                               |
   
 表5LogConfigs 
| 参数            | 是否必选 | 参数类型    | 描述                                                                                            |
|:---|:---|:---|:---|
| id            | 否    | String  | 数据库保存的主键，不需要关注此字段。                                                                            |
| size          | 否    | Integer | 应用日志文件大小限制，单位MB，默认50，取值范围10-1000。                                                             |
| level         | 否    | String  | - 当type为LTS时，应用级日志可配置为On或Off；系统级日志可配置为Off/Error/Warning/Info/Debug； - 当type为local时，无需配置level。 |
| rotate_num    | 否    | Integer | 应用日志rotate个数，默认5，取值范围1-10。                                                                    |
| rotate_period | 否    | String  | 应用日志rotate周期，可选项： - daily - monthly - weekly - yearly                                         |
| type          | 是    | String  | - LTS：将日志发送到AOM - local：本地日志                                                                  |
| component     | 是    | String  | - app：部署到边缘节点上的应用的日志 - system：边缘节点上系统的日志                                                      |
   
 表6DeviceInfos 
| 参数         | 是否必选 | 参数类型             | 描述                                                                |
|:---|:---|:---|:---|
| relation   | 是    | String           | 设备和节点关系的名称，只允许中文字符、英文字母、数字、下划线、中划线，最大长度64                         |
| comment    | 否    | String           | 设备和节点关系的描述，最大长度64，不允许\^ \~ # $ % \& \* \< \> ( ) \[ \] { } ' " \\ |
| device_ids | 是    | Array of strings | 设备ID列表                                                            |
   
 表7Attributes 
| 参数    | 是否必选 | 参数类型   | 描述                                               |
|:---|:---|:---|:---|
| key   | 否    | String | 节点属性的key值，长度取值范围为1\~128， 仅允许大小写英文字母、数字、下划线、中划线   |
| value | 否    | String | 节点属性的value值，长度取值范围为1\~256， 仅允许大小写英文字母、数字、下划线、中划线 |
   
 表8NodeResTag 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                   |
|:---|:---|:---|:---|
| key   | 否    | String | 键。最大长度36个unicode字符。 不能为空，只能包含大小写字母，数字，中划线"-"，下划线"_"。                                                 |
| value | 否    | String | 值。每个值最大长度43个unicode字符，删除时如果value有值按照key/value删除，如果value没值，则按照key删除。 不能为空，只能包含大小写字母，数字，中划线"-"，下划线"_"。 |
   
 表9MqttConfigs 
| 参数          | 是否必选 | 参数类型                                                   | 描述                                       |
|:---|:---|:---|:---|
| enable_mqtt | 是    | Boolean                                                | 是否启用MQTT                                 |
| mqtts       | 是    | Array of [Mqtt] objects | MQTT配置 当enable_mqtt取值为false时，mqtts需要为空数组 |
   
 表10Mqtt 
| 参数        | 是否必选 | 参数类型    | 描述                           |
|:---|:---|:---|:---|
| bind_addr | 是    | String  | MQTT监听地址，根据type取值确定。         |
| port      | 是    | Integer | 端口号。                         |
| type      | 是    | String  | 类型。枚举值： - nic：网卡类型 - ip：IP类型 |
   
#### 响应参数
**状态码：201**
表11响应Body参数 
| 参数   | 参数类型                                                          | 描述     |
|:---|:---|:---|
| node | [EdgeNodeResp] object | 边缘节点参数 |
   
 表12EdgeNodeResp 
| 参数                        | 参数类型                                                                        | 描述                                                                                              |
|:---|:---|:---|
| id                        | String                                                                      | 边缘节点ID                                                                                          |
| name                      | String                                                                      | 边缘节点名称，只允许中文字符、英文字母、数字、下划线、中划线，最大长度64 Name为必填字段，且本账号中唯一。                                        |
| description               | String                                                                      | 边缘节点描述，最大长度255，不允许\^ \~ # $ % \& \* \< \> ( ) \[ \] { } ' " \\                                  |
| created_at                | String                                                                      | 创建时间                                                                                            |
| updated_at                | String                                                                      | 更新时间                                                                                            |
| project_id                | String                                                                      | 项目ID                                                                                            |
| private_key               | String                                                                      | 私钥                                                                                              |
| certificate               | String                                                                      | 证书                                                                                              |
| ca                        | String                                                                      | 根证书                                                                                             |
| state                     | String                                                                      | 边缘节点状态 - UNCONNECTED（未注册） - RUNNING（运行中） - FAIL（故障） - STOPPED（停用） - UPGRADING（升级中） - FREEZE（冻结） |
| package                   | String                                                                      | 将证书文件certificate/ca/private_key打成.tar.gz包后用base64编码的字符串。 使用时请使用base64解码成.tar.gz包。               |
| master_addr               | String                                                                      | 云端服务URL                                                                                         |
| cpu                       | Integer                                                                     | 边缘节点CPU核心数                                                                                      |
| memory                    | Integer                                                                     | 边缘节点内存大小，单位M                                                                                    |
| os_name                   | String                                                                      | 边缘节点操作系统名称                                                                                      |
| os_version                | String                                                                      | 边缘节点操作系统版本                                                                                      |
| pause_docker_image        | String                                                                      | pause容器镜像URL                                                                                    |
| arch                      | String                                                                      | 边缘节点架构                                                                                          |
| os_type                   | String                                                                      | 边缘节点操作系统类型，支持centos,linux,euleros,ubuntu,hce等                                                   |
| deployment_num            | Integer                                                                     | 部署在该边缘节点上的应用实例个数                                                                                |
| enable_gpu                | Boolean                                                                     | 边缘节点是否开启GPU，默认为false                                                                            |
| log_configs               | Array of [LogConfigs] objects         | 边缘节点日志配置，当用户未配置日志相关字段时，将默认打开日志上传到云端功能。                                                          |
| device_infos              | Array of [DeviceInfos] objects       | 关联设备信息                                                                                          |
| edged_version             | String                                                                      | edged版本                                                                                         |
| gpu_num                   | Integer                                                                     | gpu个数                                                                                           |
| host_ips                  | Array of strings                                                            | 主机IP，默认返回eth0网卡的IP。                                                                             |
| relation                  | String                                                                      | 与device绑定关系名称（通过device id查询node时有值）                                                             |
| comment                   | String                                                                      | 与device绑定关系描述（通过device id查询node时有值）                                                             |
| gpu_info                  | Array of [GpuInfo] objects               | gpu型号和gpu memory大小                                                                              |
| device_num                | Integer                                                                     | 关联设备数量                                                                                          |
| enable_npu                | Boolean                                                                     | 边缘节点是否开启NPU，true表示开启，false表示不开启，默认为false                                                        |
| npu_type                  | String                                                                      | NPU类型，支持D310、D310B，支持填写： - D310：D310类型 - D310B：D310B类型 - 空值：D310类型。                             |
| nics                      | Array of [Nics] objects                     | 节点网卡和对应IP地址信息                                                                                   |
| host_name                 | String                                                                      | 边缘节点主机名                                                                                         |
| ief_node_version          | String                                                                      | 边缘节点版本                                                                                          |
| upgrade_flag              | Boolean                                                                     | 是否能升级的标志 - true：需要升级 - false：不需要升级                                                              |
| product_id                | String                                                                      | 产品ID（通过产品证书方式纳管）                                                                                |
| group_ids                 | Array of strings                                                            | 节点组ID（一个节点属于多个节点组）                                                                              |
| upgrade_history           | Array of [UpgradeHistory] objects | 节点安装或升级记录                                                                                       |
| attributes                | Array of [Attributes] objects         | 边缘节点属性，关联属性个数最多为32个                                                                             |
| docker_enable             | Boolean                                                                     | 节点是否开启Docker                                                                                    |
| mqtt_mode                 | String                                                                      | mqtt集成模式 - internal：edgecore内置mqtt - external：外置开源mqtt                                          |
| mqtt_external             | String                                                                      | 外置开源mqtt地址                                                                                      |
| mqtt_internal             | String                                                                      | edgecore内置的mqtt地址                                                                               |
| node_type                 | String                                                                      | 节点类型，默认为空，非空时为小站节点                                                                              |
| ntp_configs               | [NtpConfigs] object                   | ntp配置                                                                                           |
| error_reason              | String                                                                      | 节点故障原因                                                                                          |
| tags                      | Array of [ResourceTag] objects       | 边缘节点标签，标签个数最多为20个                                                                               |
| npu_num                   | Integer                                                                     | NPU数量                                                                                           |
| npu_info                  | Array of [NpuInfo] objects               | NPU型号和NPU Memory大小                                                                              |
| container_runtime_version | String                                                                      | 容器运行时版本                                                                                         |
| identifier                | String                                                                      | 边缘节点使用token注册时的凭证                                                                               |
| purchase_id               | String                                                                      | IEC/IES节点id                                                                                     |
| state_details             | [StateDetails] object               | IEC/IES节点状态详情                                                                                   |
| cert_remaining_valid_time | Integer                                                                     | 证书有效期持续时间                                                                                       |
   
 表13LogConfigs 
| 参数            | 参数类型    | 描述                                                                                            |
|:---|:---|:---|
| id            | String  | 数据库保存的主键，不需要关注此字段。                                                                            |
| size          | Integer | 应用日志文件大小限制，单位MB，默认50，取值范围10-1000。                                                             |
| level         | String  | - 当type为LTS时，应用级日志可配置为On或Off；系统级日志可配置为Off/Error/Warning/Info/Debug； - 当type为local时，无需配置level。 |
| rotate_num    | Integer | 应用日志rotate个数，默认5，取值范围1-10。                                                                    |
| rotate_period | String  | 应用日志rotate周期，可选项： - daily - monthly - weekly - yearly                                         |
| type          | String  | - LTS：将日志发送到AOM - local：本地日志                                                                  |
| component     | String  | - app：部署到边缘节点上的应用的日志 - system：边缘节点上系统的日志                                                      |
   
 表14DeviceInfos 
| 参数         | 参数类型             | 描述                                                                |
|:---|:---|:---|
| relation   | String           | 设备和节点关系的名称，只允许中文字符、英文字母、数字、下划线、中划线，最大长度64                         |
| comment    | String           | 设备和节点关系的描述，最大长度64，不允许\^ \~ # $ % \& \* \< \> ( ) \[ \] { } ' " \\ |
| device_ids | Array of strings | 设备ID列表                                                            |
   
 表15GpuInfo 
| 参数       | 参数类型   | 描述                |
|:---|:---|:---|
| name     | String | GPU名称             |
| type     | String | GPU类型             |
| capacity | String | GPU memory大小，单位MB |
   
 表16Nics 
| 参数        | 参数类型   | 描述            |
|:---|:---|:---|
| interface | String | 边缘节点网卡名称      |
| ip        | String | 上述网卡对应的IPv4地址 |
   
 表17UpgradeHistory 
| 参数           | 参数类型    | 描述                                                                                                                                                                                                                  |
|:---|:---|:---|
| id           | Integer | 节点升级或安装历史版本id                                                                                                                                                                                                       |
| from_version | String  | 节点升级前节点上edgecore版本号，形式如2.1.0，其中每一位都是整数                                                                                                                                                                              |
| to_version   | String  | 节点升级或安装后节点行edgecore版本号，形式如2.1.0，其中每一位都是整数                                                                                                                                                                           |
| upgrade_time | Integer | 节点升级或安装的十位时间戳                                                                                                                                                                                                       |
| result       | String  | 节点升级或安装状态，包含 - install_success：边缘节点安装成功 - upgrade_success：边缘节点升级成功 - install_failed：边缘节点安装失败 - upgrade_failed：边缘节点升级失败 - upgrade_failed_rollback_success：边缘节点升级失败回滚成功 - upgrade_failed_rollback_failed：边缘节点升级失败回滚失败 |
| dur_time     | Integer | 节点升级所消耗的时间                                                                                                                                                                                                          |
   
 表18Attributes 
| 参数    | 参数类型   | 描述                                               |
|:---|:---|:---|
| key   | String | 节点属性的key值，长度取值范围为1\~128， 仅允许大小写英文字母、数字、下划线、中划线   |
| value | String | 节点属性的value值，长度取值范围为1\~256， 仅允许大小写英文字母、数字、下划线、中划线 |
   
 表19NtpConfigs 
| 参数          | 参数类型             | 描述           |
|:---|:---|:---|
| ntp_enabled | Boolean          | ntp服务是否开启    |
| ntp_servers | Array of strings | ntp server地址 |
   
 表20ResourceTag 
| 参数    | 参数类型   | 描述                                                                                                   |
|:---|:---|:---|
| key   | String | 键。最大长度36个unicode字符。 不能为空，只能包含大小写字母，数字，中划线"-"，下划线"_"。                                                 |
| value | String | 值。每个值最大长度43个unicode字符，删除时如果value有值按照key/value删除，如果value没值，则按照key删除。 不能为空，只能包含大小写字母，数字，中划线"-"，下划线"_"。 |
   
 表21NpuInfo 
| 参数             | 参数类型   | 描述                                                                 |
|:---|:---|:---|
| name           | String | NPU名称                                                              |
| type           | String | NPU类型，支持D310、D310B，支持填写 - D310：D310类型 - D310B：D310B类型 - 不填表示D310类型 |
| capacity       | String | NPU memory大小                                                       |
| driver_version | String | NPU驱动版本                                                            |
   
 表22StateDetails 
| 参数             | 参数类型   | 描述            |
|:---|:---|:---|
| register_stat  | String | IEC/IES节点注册状态 |
| purchase_stat  | String | IEC/IES节点状态   |
| purchase_error | String | IEC/IES节点错误信息 |
   
#### 请求示例
注册边缘节点，不开启GPU，将部署到边缘节点上的应用，生成的日志发送到本地。
```
{
  "node" : {
    "name" : "node_test",
    "description" : "This is a test node",
    "enable_gpu" : false,
    "log_configs" : [ {
      "component" : "app",
      "type" : "local",
      "level" : "debug",
      "size" : 100,
      "rotate_num" : 5,
      "rotate_period" : "daily"
    } ]
  }
}
```
#### 响应示例
**状态码：201**
边缘节点详细信息
```
{
  "node" : {
    "id" : "86715318-a5a7-4507-a289-7238d53d5fed",
    "project_id" : "05041fffa40025702f6dc009cc6f8f33",
    "name" : "node_test",
    "description" : "This is a test node",
    "created_at" : "2020-08-11T01:23:55.527805447Z",
    "updated_at" : "",
    "state" : "UNCONNECTED",
    "master_addr" : "xxx",
    "arch" : "",
    "enable_gpu" : false,
    "gpu_info" : [ ],
    "gpu_num" : 0,
    "memory" : 0,
    "os_version" : "",
    "os_name" : "",
    "device_infos" : [ ],
    "os_type" : "",
    "pause_docker_image" : "pasue:latest",
    "host_name" : "",
    "cpu" : 0,
    "log_configs" : [ {
      "level" : "",
      "rotate_num" : 5,
      "component" : "app",
      "rotate_period" : "daily",
      "type" : "local",
      "id" : "9b795f5e-01b7-47e8-b1ae-6dc59b9c0005",
      "size" : 100
    }, {
      "level" : "false",
      "rotate_num" : 5,
      "component" : "app",
      "rotate_period" : "daily",
      "type" : "LTS",
      "id" : "e419ab7f-17ea-4757-b62e-311fc777af69",
      "size" : 50
    }, {
      "level" : "",
      "rotate_num" : 5,
      "component" : "system",
      "rotate_period" : "daily",
      "type" : "local",
      "id" : "56dabbb7-4fb1-46cc-85df-dc80a2bd24f8",
      "size" : 50
    }, {
      "level" : "false",
      "rotate_num" : 5,
      "component" : "system",
      "rotate_period" : "daily",
      "type" : "LTS",
      "id" : "0f6935c1-e59d-4b0d-a0db-1ba07b2ac8d1",
      "size" : 50
    } ],
    "host_ips" : [ ],
    "edged_version" : "",
    "deployment_num" : 0,
    "device_num" : 0,
    "upgrade_history" : [ ],
    "ief_node_version" : "",
    "comment" : "",
    "ca" : "",
    "relation" : "",
    "certificate" : "",
    "private_key" : "",
    "attributes" : [ ],
    "package" : "",
    "tags" : null,
    "product_id" : "",
    "mqtt_mode" : "internal",
    "mqtt_internal" : "tls://docker0:8883,tls://127.0.0.1:8883",
    "mqtt_external" : "",
    "enable_npu" : false,
    "docker_enable" : true,
    "npu_num" : 0,
    "npu_info" : [ ],
    "node_type" : "",
    "ntp_configs" : null,
    "nics" : [ ],
    "error_reason" : "",
    "container_runtime_version" : ""
  }
}
```
#### 状态码
| 状态码 | 描述       |
|:---|:---|
| 201 | 边缘节点详细信息 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-ief/ErrorCode.html)。
