> For the complete documentation index, see [llms.txt](https://docs.console.zenlayer.com/api-reference/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.console.zenlayer.com/api-reference/cn/compute/zec/disk/createdisks.md).

# CreateDisks

## 1. 接口描述

本接口(CreateDisks)用于创建一个或多个云硬盘。

{% hint style="info" %}
**注意事项**

* 本接口为异步接口，当创建云硬盘请求下发成功后会返回一个云硬盘ID列表，此时创建云硬盘操作并未立即完成。云硬盘创建结果可以通过 [`DescribeDisks`](/api-reference/cn/compute/zec/disk/describedisks.md) 查询。如果能够查询到对应云硬盘数据且状态为`AVAILABLE`则代表云硬盘创建成功，如果创建时指定了挂载到某个实例，则当状态为`IN_USE`时则代表挂载成功。
  {% endhint %}

## 2. 请求参数

以下请求参数列表仅列出了接口中需要的请求参数

| 参数名称                   | 必选 | 类型                                                                              | 描述                                                                                                                                                                          |
| ---------------------- | -- | ------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| zoneId                 | 是  | String                                                                          | 云硬盘所属的可用区ID。                                                                                                                                                                |
| diskSize               | 是  | Integer                                                                         | 云硬盘大小，单位GiB。                                                                                                                                                                |
| instanceChargePostpaid | 否  | [ChargePostpaid](/api-reference/cn/compute/zec/datastructure.md#chargepostpaid) | <p>后付费云硬盘的承诺周期。</p><p>仅在需要指定承诺周期时传递。</p>                                                                                                                                    |
| diskName               | 否  | String                                                                          | <p>云盘名称。</p><p>范围1到64个字符。</p><p>仅支持输入字母、数字、-/\_和英文句点(.)。</p><p>且必须以数字或字母开头和结尾。</p><p>当不传<code>diskNames</code>时必填。</p>                                                      |
| diskNames              | 否  | Array of String                                                                 | <p>每块云硬盘各自的名称。</p><p>数量需要与<code>diskAmount</code>字段一致，命名规则同<code>diskName</code>。</p><p>不传则本批次云硬盘均使用<code>diskName</code>命名。</p>                                            |
| diskAmount             | 否  | Integer                                                                         | <p>需要创建的云硬盘的数量。</p><p>可选值范围：\[1, 1000]</p><p>默认值：1</p>                                                                                                                      |
| instanceId             | 否  | String                                                                          | 云硬盘挂载的实例ID。                                                                                                                                                                 |
| instanceIds            | 否  | Array of String                                                                 | <p>要绑定的实例ID。</p><p>数量需要与<code>diskAmount</code>字段一致，每个云硬盘各绑定一个不同实例；与<code>instanceId</code>同时传递时以<code>instanceId</code>为准。</p>                                             |
| resourceGroupId        | 否  | String                                                                          | <p>云硬盘所在的资源组ID。</p><p>如不指定则放入默认资源组。</p>                                                                                                                                     |
| diskCategory           | 否  | String                                                                          | <p>云硬盘种类。</p><p>Basic NVMe SSD/BASIC\_NVME\_SSD: 经济型 NVMe SSD。</p><p>Standard NVMe SSD/NVME\_SSD: 标准型 NVMe SSD。</p><p>默认为Standard NVMe SSD。</p><p>默认值：Standard NVMe SSD</p> |
| snapshotId             | 否  | String                                                                          | <p>使用快照ID进行创建。</p><p>如果传入则根据此快照创建云硬盘，快照的云盘类型必须为数据盘快照。</p>                                                                                                                   |
| marketingOptions       | 否  | [MarketingInfo](/api-reference/cn/compute/zec/datastructure.md#marketinginfo)   | 市场营销的相关选项。                                                                                                                                                                  |
| tags                   | 否  | [TagAssociation](/api-reference/cn/compute/zec/datastructure.md#tagassociation) | <p>创建云硬盘时关联的标签。</p><p>注意：·关联<code>标签键</code>不能重复。</p>                                                                                                                       |
| burstingEnabled        | 否  | Boolean                                                                         | <p>是否开启性能突发。</p><p>默认值：false</p>                                                                                                                                            |

## 3. 响应结果

| 参数名称        | 类型              | 描述                                                       |
| ----------- | --------------- | -------------------------------------------------------- |
| requestId   | String          | <p>唯一请求 ID。</p><p>每次请求都会返回。定位问题时需要提供该次请求的 requestId。</p> |
| diskIds     | Array of String | 创建的云硬盘ID列表。                                              |
| orderNumber | String          | 本次创建对应的订单编号。                                             |

## 4. 代码示例

{% tabs %}
{% tab title="示例" %}
**1. 创建1块30G大小的云硬盘。**

```json
POST /api/v2/zec HTTP/1.1
Host: console.zenlayer.com
Content-Type: application/json
X-ZC-Action: CreateDisks
<Common Request Params>

Request：
{
  "diskName": "Test-Disk",
  "diskSize": 30,
  "diskAmount": 1,
  "zoneId": "asia-east-1a"
}

Response:
{
  "requestId": "T842EE571-4490-4AFE-9F17-931030D3B4F9",
  "response": {
    "requestId": "T842EE571-4490-4AFE-9F17-931030D3B4F9",
    "diskIds": [
      "<diskId>"
    ],
    "orderNumber": "<orderNumber>"
  }
}
```

**2. 创建3块20G大小的云硬盘，并绑定到同一个实例。**

```json
POST /api/v2/zec HTTP/1.1
Host: console.zenlayer.com
Content-Type: application/json
X-ZC-Action: CreateDisks
<Common Request Params>

Request：
{
  "diskName": "Test-Disk",
  "diskSize": 20,
  "diskAmount": 3,
  "zoneId": "asia-east-1a",
  "instanceId": "<instanceId>"
}

Response:
{
  "requestId": "T842EE571-4490-4AFE-9F17-931030D3B4F9",
  "response": {
    "requestId": "T842EE571-4490-4AFE-9F17-931030D3B4F9",
    "diskIds": [
      "<diskId1>",
      "<diskId2>",
      "<diskId3>"
    ],
    "orderNumber": "<orderNumber>"
  }
}
```

**3. 创建2块20G大小的云硬盘，分别绑定到2个不同实例，并分别指定各自名称。**

```json
POST /api/v2/zec HTTP/1.1
Host: console.zenlayer.com
Content-Type: application/json
X-ZC-Action: CreateDisks
<Common Request Params>

Request：
{
  "diskName": "Test-Disk",
  "diskNames": ["Test-Disk-1", "Test-Disk-2"],
  "diskSize": 20,
  "diskAmount": 2,
  "zoneId": "asia-east-1a",
  "instanceIds": ["<instanceId1>", "<instanceId2>"]
}

Response:
{
  "requestId": "T842EE571-4490-4AFE-9F17-931030D3B4F9",
  "response": {
    "requestId": "T842EE571-4490-4AFE-9F17-931030D3B4F9",
    "diskIds": [
      "<diskId1>",
      "<diskId2>"
    ],
    "orderNumber": "<orderNumber>"
  }
}
```

{% endtab %}
{% endtabs %}

## 5. 开发者工具

Zenlayer Cloud API 2.0 提供了配套的[开发工具集（SDK）](/api-reference/cn/api-introduction/toolkit.md)，未来会陆续支持更多开发语言，方便快速接入和使用Zenlayer的产品和服务。

## 6. 错误码

下面包含业务逻辑中遇到的错误码，其他错误码见[公共错误码](/api-reference/cn/api-introduction/instruction/commonerrorcode.md)

| HTTP状态码 | 错误码                                                  | 说明                      |
| ------- | ---------------------------------------------------- | ----------------------- |
| 400     | INVALID\_DISK\_CATEGORY\_ZONE\_NO\_SELL              | 指定的云硬盘种类在指定的区域未开售。      |
| 400     | INVALID\_DISK\_SIZE\_EXCEED\_MAXIMUM                 | 云盘最大值超限。                |
| 400     | INVALID\_DISK\_SIZE\_LESS\_MINIMUM                   | 云盘最小值超限。                |
| 404     | INVALID\_DISK\_SNAPSHOT\_NOT\_FOUND                  | 云盘快照实例不存在。              |
| 400     | INVALID\_DISK\_SNAPSHOT\_SIZE\_MISMATCH              | 所创建磁盘的容量小于云盘快照原始磁盘大小。   |
| 404     | INVALID\_DISK\_SNAPSHOT\_ZONE\_MISMATCH              | 云盘快照实例与指定区域不匹配。         |
| 404     | INVALID\_INSTANCE\_NOT\_FOUND                        | 服务器实例不存在。               |
| 404     | INVALID\_INSTANCE\_OR\_ZONE\_CANNOT\_BE\_BOTH\_EMPTY | 实例和区域不能同时为空。            |
| 400     | INVALID\_PARAMETER\_DISK\_NAME\_MALFORMED            | 云盘名称的格式不合法。             |
| 400     | INVALID\_ZONE\_MISMATCH                              | ZONE不匹配。                |
| 404     | INVALID\_ZONE\_NOT\_FOUND                            | 可用区不存在。                 |
| 400     | LIMIT\_EXCEEDED\_INSTANCE\_CAN\_ATTACH               | 超出实例可挂载云硬盘的最大数量。        |
| 400     | OPERATION\_DENIED\_DISK\_INSTANCE\_NOT\_ADAPTER      | 指定的实例数量与需要创建的云盘数量不一致。   |
| 400     | OPERATION\_DENIED\_DISK\_IO\_BURST                   | 未开启云盘性能突发功能。            |
| 400     | OPERATION\_DENIED\_DISK\_NAME\_NOT\_ADAPTER          | 指定的云盘名称数量与需要创建的云盘数量不一致。 |
| 400     | OPERATION\_DENIED\_DISK\_SNAPSHOT\_STATUS            | 云盘快照实例状态不支持。            |
| 400     | OPERATION\_DENIED\_DISK\_SYSTEM\_TYPE                | 云盘类型是系统盘不支持该操作。         |
| 400     | UNSUPPORTED\_OPERATION\_INSTANCE\_STATUS             | 实例状态不支持此操作。             |
