
# 批量创建实例 - RunInstances
#### 功能介绍
批量创建实例，其中调度策略支持：
1、指定服务器
2、基于空闲随机调度策略
支持VPC网络及AI参数面网络配置。
此接口为异步接口，实例的创建和启动不是立即完成的，通过接口 **ShowInstanceStatus** 查询实例状态为 **running** 代表实例创建成功。
接口约束：通过接口 **ShowServer** 查询服务器**manage_state** 为 **ready**
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-clouddc/clouddc_api_0003.html)。
#### 授权信息
账号根用户具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备如下身份策略权限，更多的权限说明请参见[权限和授权项](https://support.huaweicloud.com/api-clouddc/clouddc_api_0011.html)。
| 授权项                          | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| clouddc:instance:createBatch | Write | -           | -   | -  | -      |
   
#### URI
POST /v1/{project_id}/instances/batch-create
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释**： 项目ID **约束限制**： 不涉及 **取值范围**： 账号的项目ID **默认取值**： 不涉及 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释**： 调用接口的认证方式分为Token，如果您使用的Token方式，此参数为必填，请填写Token的值 **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及 |
   
表3请求Body参数 
| 参数                 | 是否必选 | 参数类型                                                                                                          | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| name               | 是    | String                                                                                                        | **参数解释**： 设置实例主机名称。 **约束限制**： 不涉及 **取值范围**： 只能由中文字符、英文字母（a\~z，A\~Z）、数字（0\~9）、下划线（_）、中划线（-）、点（.）组成，且长度为\[1-63\]个字符 **默认取值**： 不涉及                                                                                                                                                                                                                                                                                                                      |
| image_id           | 是    | String                                                                                                        | **参数解释**： 镜像ID， 在镜像服务中创建的私有镜像ID,可以在Clouddc的console控制台查看，也可以通过镜像服务（ECM）的接口查询 **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及                                                                                                                                                                                                                                                                                                                                |
| vpc_id             | 否    | String                                                                                                        | **参数解释**： 创建网卡所属的 VPC ID，可通过 VPC API 查询：[查询VPC列表](https://support.huaweicloud.com/api-vpc/vpc_api01_0003.html)。 **约束限制**： 不涉及 **取值范围**： VPC ID **默认取值**： 不涉及                                                                                                                                                                                                                                                                                         |
| network_interfaces | 是    | Array of [network_interfaces] objects | **参数解释**： 指定裸金属服务器的网卡信息。 **约束限制**： 一个裸金属服务器最多挂载2个网卡，参数中第一个网卡会作为裸金属服务器的主网卡。若用户指定了多组网卡参数，需保证各组参数都属于同一VPC。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| password           | 是    | String                                                                                                        | **参数解释**： 设置实例的管理员账户初始登录密码，其中，Linux管理员账户为root，Windows管理员账户为Administrator。 **约束限制**： 不涉及 **取值范围**： 长度为8-26位。 密码至少必须包含大写字母、小写字母、数字和特殊字符（!@$%\^-_=+\[{}\]:,./?）中的三种。 密码不能包含用户名或用户名的逆序。 **默认取值**： 不涉及                                                                                                                          |
| metadata           | 否    | Map\<String,String\>                                                                                          | **参数解释**： 创建裸机实例的元数据。可以通过元数据自定义键值对。 如果元数据中包含了敏感数据，您应当采取适当的措施来保护敏感数据，比如限制访问范围、加密等。 **约束限制**： 不涉及 **取值范围**： 最多可注入10对键值（Key/Value）。 主键（Key）只能由大写字母（A-Z）、小写字母（a-z）、数字（0-9）、中划线（-）、下划线（_）、冒号（:）、空格（ ）和小数点（.）组成，长度为\[1-255\]个字符。 值（value）最大长度为255个字符。 **默认取值**： 不涉及 |
| description        | 否    | String                                                                                                        | **参数解释**： 裸机实例的描述信息。 **约束限制**： 不涉及 **取值范围**： 最大255字符长度 **默认取值**： 默认为空字符串                                                                                                                                                                                                                                                                                                                                                                             |
| placement          | 否    | [placement] object                             | **参数解释**： 实例placement，指定服务器策略。不指定placement，按min_count、max_count从空闲服务器中选择。 **约束限制**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| min_count          | 否    | Integer                                                                                                       | **参数解释**： 必须成功启动的最小实例数量。如果无法满足此数量，整个请求失败（不会启动任何实例）。 **约束限制**： 不指定placement，该参数才生效 不大于max_count **取值范围**： 1-100 **默认取值**： 不涉及                                                                                                                                                                                                                                                            |
| max_count          | 否    | Integer                                                                                                       | **参数解释**： 允许启动的最大实例数量。尝试启动最多该数量的实例，但实际启动数可能介于 min_count 和 max_count 之间 **约束限制**： 不指定placement，该参数才生效 不小于min_count **取值范围**： 1-100 **默认取值**： 不涉及                                                                                                                                                                                                                                         |
   
 表4network_interfaces 
| 参数         | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| subnet_id  | 是    | String  | **参数解释**： CloudDCN子网ID, 在CloudDCN云化网络中获取 **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及 |
| enable_bgp | 否    | Boolean | **参数解释**： 是否启用BGP功能 **约束限制**： 不涉及 **取值范围**： true/false **默认取值**： false             |
| bind       | 否    | String  | **参数解释**： 绑定的网卡名称 **约束限制**： 不涉及 **取值范围**： eth0, eth1等 **默认取值**： 不涉及                |
   
 表5placement 
| 参数            | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| server_id_set | 否    | Array of strings | **参数解释**： 指定服务器id集合, id通过接口 **ListServers**查询获得 **约束限制**： 服务器id不超过50条 |
   
#### 响应参数
**状态码：202**
表6响应Body参数 
| 参数        | 参数类型                                                                                         | 描述                                                                                                                                                                                                                    |
|:---|:---|:---|
| instances | Array of [instances] objects | **参数解释**： 实例返回信息 **约束限制**： 不涉及 |
   
 表7instances 
| 参数 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| id | String | **参数解释**： 实例ID **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及 |
   
**状态码：400**
表8响应Body参数 
| 参数         | 参数类型   | 描述                                                                          |
|:---|:---|:---|
| error_code | String | **参数解释**： 错误码  |
| error_msg  | String | **参数解释**： 错误描述 |
   
**状态码：401**
表9响应Body参数 
| 参数         | 参数类型   | 描述                                                                          |
|:---|:---|:---|
| error_code | String | **参数解释**： 错误码  |
| error_msg  | String | **参数解释**： 错误描述 |
   
**状态码：429**
表10响应Body参数 
| 参数 | 参数类型   | 描述 |
|:---|:---|:---|
| -  | String | -  |
   
**状态码：500**
表11响应Body参数 
| 参数         | 参数类型   | 描述                                                                          |
|:---|:---|:---|
| error_code | String | **参数解释**： 错误码  |
| error_msg  | String | **参数解释**： 错误描述 |
   
#### 请求示例
批量创建实例
```
POST https://{endpoint}/v1/{project_id}/instances/batch-create
```
#### 响应示例
**状态码：202**
RunInstances应答
```
{
  "instances" : [ {
    "id" : "0198170e-4ca7-7ee4-89a7-fa631843920b"
  } ]
}
```
#### 状态码
| 状态码 | 描述             |
|:---|:---|
| 202 | RunInstances应答 |
| 400 | 请求参数错误，请求失败    |
| 401 | 请求未鉴权          |
| 429 | 请求过载           |
| 500 | 服务端内部错误        |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-clouddc/ErrorCode.html)。
