# 批量创建节点-BatchCreateNodes
#### 功能介绍
批量创建节点。适用于以下场景：用户需要创建独立的节点时，可通过此接口创建。
节点不隶属于任何超节点。
支持批量创建。包周期创建返回订单ID，可通过订单ID在CBC控制台查看订单详情。按需创建无CBC订单号，响应不返回order_id，仅返回batch_id。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/AICS/doc?api=BatchCreateNodes)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号根用户具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备如下身份策略权限，更多的权限说明请参见[权限和授权项](https://support.huaweicloud.com/api-aics/aics_05_0700.html)。
| 授权项              | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                                                           | 别名 | 依赖的授权项                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|:---|:---|
| aics:node:create | Write | node \*     | -                                                                                                                                                                                                                                                                                                                                                                             | -  | - ecs:cloudServers:listServersDetails  - ecs:cloudServerQuotas:get  - kps:SSHKeyPair:get  - evs:types:get  - evs:quotas:get  - vpc:subnets:get  - vpc:securityGroups:list  - ecs:cloudServers:createServers  - ecs:cloudServers:showServer  - ecs:cloudServers:updateMetadata  - evs:volumes:create  - evs:volumes:get   |
| aics:node:create | Write | -           | - g:RequestTag/\<tag-key\>   - g:TagKeys    | -  | - ecs:cloudServers:listServersDetails  - ecs:cloudServerQuotas:get  - kps:SSHKeyPair:get  - evs:types:get  - evs:quotas:get  - vpc:subnets:get  - vpc:securityGroups:list  - ecs:cloudServers:createServers  - ecs:cloudServers:showServer  - ecs:cloudServers:updateMetadata  - evs:volumes:create  - evs:volumes:get   |
   
#### URI
POST /v2/{project_id}/nodes
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释**: 项目ID，获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-aics/aics_api_0702.html)。 **约束限制**: 不涉及。 **取值范围**: 不涉及。 **默认取值**: 不涉及。 |
   
#### 请求参数
表2请求Header参数 
| 参数             | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| X-Auth-Token   | 否    | String | **参数解释**: 用户Token，通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 **约束限制**: 不涉及。 **取值范围**: 不涉及。 **默认取值**: 不涉及。                                                                  |
| X-Client-Token | 否    | String | **参数解释**: 保证请求幂等性的标识，携带相同标识的重复请求返回相同结果。 **约束限制**: 有效期8小时。 **取值范围**: UUID格式，\[a-fA-F0-9\]{8}-\[a-fA-F0-9\]{4}-\[a-fA-F0-9\]{4}-\[a-fA-F0-9\]{4}-\[a-fA-F0-9\]{12}。 **默认取值**: 不涉及。 |
   
表3请求Body参数 
| 参数                 | 是否必选 | 参数类型                                                                                                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| count              | 是    | Integer                                                                                              | **参数解释**: 创建节点的数量。 **约束限制**: 单次最多创建50个。 **取值范围**: 1-50。 **默认取值**: 不涉及。                                                                                                                                                                                  |
| min_count          | 否    | Integer                                                                                              | **参数解释**: 要求最少成功的节点数量。当成功数量少于该值时，HPS会回退所有已创建的资源。 **约束限制**: 不能超过count的值。 **取值范围**: 1-count。 **默认取值**: 1。                                                                                                                                                 |
| node_type          | 是    | String                                                                                               | **参数解释**: 节点规格。 **约束限制**: 需要该规格保证可售卖。 **取值范围**: 长度1-64，只能由英文字母、数字及"_"、"-"、"."组成。可通过查询节点规格列表获取。 **默认取值**: 不涉及。                                                                                                                                           |
| image_id           | 是    | String                                                                                               | **参数解释**: 节点镜像ID。 **约束限制**: 不涉及。 **取值范围**: UUID格式，可通过镜像服务控制台获取。 **默认取值**: 不涉及。                                                                                                                                                                          |
| keypair_name       | 否    | String                                                                                               | **参数解释**: 节点登录密钥对名称。 **约束限制**: 与admin_password二选一。 **取值范围**: 长度1-64，只能由英文字母、数字及"_"、"-"、"."组成。可通过密钥对管理控制台获取。 **默认取值**: 不涉及。                                                                                                                              |
| admin_password     | 否    | String                                                                                               | **参数解释**: 节点登录密码。 **约束限制**: 与keypair_name二选一，且admin_password存在时，不能设置user_data。 密码复杂度要求：8-26位，至少包含大写字母、小写字母、数字和特殊字符中的三种。 不能包含用户名或倒序的用户名（root）。 **取值范围**: 长度为8-26。 **默认取值**: 不涉及。 |
| name               | 是    | String                                                                                               | **参数解释**: 节点名称。批量创建时系统自动添加序号后缀。 **约束限制**: 同一租户下名称不可重复。 **取值范围**: 长度1-58（预留6字符给批量序号后缀），只能由英文字母、数字及"_"、"-"、"."组成。 **默认取值**: 不涉及。                                                                                                                          |
| cluster_id         | 是    | String                                                                                               | **参数解释**: 集群唯一标识UUID。创建的节点将归属于该集群。 **约束限制**: 不涉及。 **取值范围**: UUID格式。可通过查询集群列表接口获取。 **默认取值**: 不涉及。                                                                                                                                                        |
| network_interfaces | 是    | Array of [NodeNetworkInterfaceOption] objects | **参数解释**: 子网网卡信息，主网卡为数组索引为0的子网。 **约束限制**: 创建时网卡数量上限为3个。所有网卡需归属同一个VPC。 **取值范围**: 网卡数量为1-3。 **默认取值**: 不涉及。                                                                                                                                                |
| root_volume        | 是    | [NodeRootVolume] object                                   | **参数解释**: 系统盘信息。 **约束限制**: 不涉及。 **取值范围**: 不涉及。 **默认取值**: 不涉及。                                                                                                                                                                                           |
| data_volume        | 否    | Array of [NodeDataVolume] objects                         | **参数解释**: 数据盘信息。 **约束限制**: 创建时数据盘数量上限为8个。 **取值范围**: 数据盘数量为0-8。 **默认取值**: 不涉及。                                                                                                                                                                           |
| market_options     | 是    | [NodeMarketOptions] object                             | **参数解释**: 计费信息。 **约束限制**: 不涉及。 **取值范围**: 不涉及。 **默认取值**: 不涉及。                                                                                                                                                                                            |
| user_data          | 否    | String                                                                                               | **参数解释**: 节点初始化配置数据。注入的数据为需要base64编码后的内容。 **约束限制**: 必须base64转码，转码后长度不大于40k。 **取值范围**: 长度为0-40960。 **默认取值**: 不涉及。                                                                                                                                        |
| tags               | 否    | Array of [TagKv] objects                                           | **参数解释**: 租户标签。 **约束限制**: 不涉及。 **取值范围**: 标签数量为0-20。 **默认取值**: 不涉及。                                                                                                                                                                                      |
| metadata           | 否    | Array of [Metadata] objects                                     | **参数解释**: 节点元数据。 **约束限制**: 不允许传入重复key、黑名单中的key或以_sys_开头的key。 **取值范围**: 元数据数量为0-5。 **默认取值**: 不涉及。                                                                                                                                                        |
   
 表4NodeNetworkInterfaceOption 
| 参数              | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| ipv6_enable     | 否    | Boolean          | **参数解释**: 是否开启IPv6。 **约束限制**: 不涉及。 **取值范围**: - true: 开启IPv6。   - false: 不开启IPv6。    **默认取值**: false。                                                  |
| security_groups | 否    | Array of strings | **参数解释**: 安全组ID列表。 **约束限制**: 不涉及。 **取值范围**: 安全组数量为0-20。可通过VPC安全组控制台获取。 **默认取值**: 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                     |
| subnet_id       | 是    | String           | **参数解释**: 子网ID。 **约束限制**: 所有的subnet_id需要归属同一个VPC。 **取值范围**: UUID格式。可通过VPC子网控制台获取。 **默认取值**: 不涉及。                                                                                                                                                                                                                                                                                                                                                                                          |
| uboe_enable     | 否    | Boolean          | **参数解释**: 是否使能UBoE。如果为true，节点将创建并挂载UBoE高速port。 **约束限制**: 第一个interface（主网卡）无法使能UBoE。 **取值范围**: - true: 使能UBoE。   - false: 不使能UBoE。    **默认取值**: false。 |
   
 表5NodeRootVolume 
| 参数   | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| size | 是    | Integer | **参数解释**: 系统盘大小，单位GiB。 **约束限制**: 不涉及。 **取值范围**: 1-1024。 **默认取值**: 不涉及。                   |
| type | 是    | String  | **参数解释**: 系统盘类型。 **约束限制**: 支持的磁盘类型列表。 **取值范围**: SSD、ESSD、GPSSD、SAS、SATA等。 **默认取值**: 不涉及。 |
   
 表6NodeDataVolume 
| 参数    | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| size  | 是    | Integer | **参数解释**: 数据盘大小，单位GiB。 **约束限制**: 不涉及。 **取值范围**: 10-32768。 **默认取值**: 不涉及。                 |
| type  | 是    | String  | **参数解释**: 数据盘类型。 **约束限制**: 支持的磁盘类型列表。 **取值范围**: SSD、ESSD、GPSSD、SAS、SATA等。 **默认取值**: 不涉及。 |
| count | 否    | Integer | **参数解释**: 数据盘数量。 **约束限制**: 不涉及。 **取值范围**: 1-8。 **默认取值**: 1。                              |
   
 表7NodeMarketOptions 
| 参数                       | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| charging_mode            | 是    | String  | **参数解释**: 付费类型。 **约束限制**: 不涉及。 **取值范围**: - prePaid: 包周期付费。   - postPaid: 按需付费（正式购买，经 CBC ondemand 下单后立即创建）。    **默认取值**: prePaid。 |
| is_auto_pay              | 否    | Boolean | **参数解释**: 是否自动支付。 **约束限制**: 不涉及。 **取值范围**: - true: 自动支付。   - false: 不自动支付。    **默认取值**: false。                                    |
| is_auto_renew            | 否    | Boolean | **参数解释**: 是否自动续费。 **约束限制**: 不涉及。 **取值范围**: - true: 自动续费。   - false: 不自动续费。    **默认取值**: false。                                    |
| period_num               | 否    | Integer | **参数解释**: 订购周期数量。 **约束限制**: 按订购周期类型限制： - 包月（period_type=MONTH）：1\~9 - 包年（period_type=YEAR）：1\~5 **取值范围**: 包月：1\~9；包年：1\~5。 **默认取值**: 不涉及。                                                                                                                                                                                                                                                                                                                             |
| period_type              | 否    | String  | **参数解释**: 订购周期类型。 **约束限制**: 不涉及。 **取值范围**: - MONTH: 月。   - YEAR: 年。    **默认取值**: 不涉及。                                             |
| cloudservice_console_url | 否    | String  | **参数解释**: CBC传递的云服务控制台URL地址。 **约束限制**: 仅CBC付费完成后，需要跳转对应console界面场景使用。 **取值范围**: 长度为1-1024。 **默认取值**: 不涉及。                                                                                                                                                                                                                                                                                                                                                             |
| promotion_info           | 否    | String  | **参数解释**: 折扣信息。 **约束限制**: 不涉及。 **取值范围**: 长度为1-64。 **默认取值**: 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                      |
   
 表8TagKv 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| key   | 是    | String | **参数解释**: 标签键。 **约束限制**: 不能以_sys_开头；首尾不能为空白字符。 **取值范围**: 最大128个Unicode字符。只能由大小写字母、数字、中文、空格及"_"、"-"、"."、":"、"/"、"="、"+"、"@"组成。 **默认取值**: 不涉及。                                                                             |
| value | 否    | String | **参数解释**: 标签值。 **约束限制**: 创建/更新标签时必填，可为空字符串（""），但不能为 null 或缺省； 删除标签时可不传（删除只需 key）。 **取值范围**: 最大255个Unicode字符。只能由大小写字母、数字、中文、空格及"_"、"-"、"."、":"、"/"、"="、"+"、"@"、"\&"组成。 **默认取值**: 不涉及。 |
   
 表9Metadata 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| key   | 是    | String | **参数解释**: 元数据键。 **约束限制**: 不允许传入黑名单中的key或以_sys_开头的key。 **取值范围**: 长度1-200，只能由英文字母、数字及"_"、"-"、"."、":"组成。 **默认取值**: 不涉及。 |
| value | 是    | String | **参数解释**: 元数据值。 **约束限制**: 不涉及。 **取值范围**: 长度0-200。 **默认取值**: 不涉及。                                                     |
   
#### 响应参数
**状态码：202**
表10响应Body参数 
| 参数       | 参数类型   | 描述                                                                                                                                                                                            |
|:---|:---|:---|
| order_id | String | **参数解释**: 订单ID。包周期（prePaid）创建时返回CBC订单号；按需（postPaid）无CBC订单号，不返回该字段。 **取值范围**: 不涉及。 |
| batch_id | String | **参数解释**: 批次ID。 **取值范围**: UUID格式。                                                 |
   
#### 请求示例
批量创建节点请求示例。使用场景：用户需要批量创建独立节点时，通过此接口创建包周期节点。
```
POST https://{endpoint}/v2/0605767a3300d5762fb7c0186d9e1779/nodes
{
  "count" : 2,
  "node_type" : "physical.o2.large",
  "image_id" : "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
  "name" : "server-node",
  "keypair_name" : "my-keypair",
  "network_interfaces" : [ {
    "subnet_id" : "b1c2d3e4-f5a6-7b8c-9d0e-1f2a3b4c5d6e"
  } ],
  "root_volume" : {
    "size" : 120,
    "type" : "SSD"
  },
  "data_volume" : [ {
    "size" : 200,
    "type" : "SSD",
    "count" : 1
  } ],
  "market_options" : {
    "charging_mode" : "prePaid",
    "is_auto_pay" : true,
    "is_auto_renew" : false,
    "period_num" : 1,
    "period_type" : "MONTH"
  }
}
```
#### 响应示例
**状态码：202**
```
{
  "order_id" : "CS2607021154PGP6U",
  "batch_id" : "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d"
}
```
#### 状态码
| 状态码 | 描述          |
|:---|:---|
| 202 | 成功提交创建节点任务。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-aics/ErrorCode.html)。
