
# 创建实例 - CreateInstance
#### 功能介绍
创建实例，支持指定IP等更多个性化参数创建实例。
调度策略支持：
1、指定服务器
2、基于空闲随机调度策略
支持VPC网络及AI参数面网络配置。
此接口为异步接口，实例的创建和启动不是立即完成的，通过接口 **ShowInstanceStatus** 查询实例状态为 **running** 代表实例创建成功。
接口约束：服务器**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:create | Write | -           | -   | -  | -      |
   
#### URI
POST /v1/{project_id}/instances
表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 [NetworkInterface] 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从空闲服务器中选择。 **约束限制**： 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   
 表4NetworkInterface 
| 参数           | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| subnet_id    | 是    | String  | **参数解释**： CloudDCN子网ID, 在CloudDCN云化网络中获取 **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及 |
| ipv4_address | 否    | String  | **参数解释**： 弹性网卡私有IPv4地址 **约束限制**： 不涉及 **取值范围**： 不涉及 **默认取值**： 不涉及                   |
| enable_bgp   | 否    | Boolean | **参数解释**： 是否启用BGP功能 **约束限制**： 不涉及 **取值范围**： true/false **默认取值**： false             |
| bind         | 否    | String  | **参数解释**： 绑定的网卡名称 **约束限制**： 不涉及 **取值范围**： eth0, eth1等 **默认取值**： 不涉及                |
   
 表5placement 
| 参数        | 是否必选 | 参数类型   | 描述 |
|:---|:---|:---|:---|
| server_id | 否    | String | -  |
   
#### 响应参数
**状态码：202**
表6响应Body参数 
| 参数          | 参数类型   | 描述   |
|:---|:---|:---|
| instance_id | String | 实例id |
   
**状态码：400**
表7响应Body参数 
| 参数         | 参数类型   | 描述                                                                            |
|:---|:---|:---|
| error_code | String | **参数解释**： 错误码  |
| error_msg  | String | **参数解释**： 错误描述 |
   
**状态码：401**
表8响应Body参数 
| 参数         | 参数类型   | 描述                                                                            |
|:---|:---|:---|
| error_code | String | **参数解释**： 错误码  |
| error_msg  | String | **参数解释**： 错误描述 |
   
**状态码：429**
表9响应Body参数 
| 参数 | 参数类型   | 描述 |
|:---|:---|:---|
| -  | String | -  |
   
**状态码：500**
表10响应Body参数 
| 参数         | 参数类型   | 描述                                                                            |
|:---|:---|:---|
| error_code | String | **参数解释**： 错误码  |
| error_msg  | String | **参数解释**： 错误描述 |
   
#### 请求示例
创建实例
```
POST https://{endpoint}/v1/{project_id}/instances
```
#### 响应示例
**状态码：202**
RunInstances应答
```
{
  "instance_id" : "0198170e-4ca7-7ee4-89a7-fa631843920b"
}
```
#### 状态码
| 状态码 | 描述             |
|:---|:---|
| 202 | RunInstances应答 |
| 400 | 请求参数错误，请求失败    |
| 401 | 请求未鉴权          |
| 429 | 请求过载           |
| 500 | 服务端内部错误        |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-clouddc/ErrorCode.html)。
