# CreateCloudRouter

## 1. 接口描述

调用本接口用于创建一条三层网络。

#### 准备工作

在你创建三层网络之前，你可以：

* **三层网络加入VPC**：可以通过[DescribeCloudRouterAvailableVpcs](https://docs.console.zenlayer.com/api-reference/cn/networking/sdn/router/describecloudrouteravailablevpcs)接口来获取可以使用的VPC。
* **三层网络加入ZBG**：可以通过[DescribeBorderGateways](https://docs.console.zenlayer.com/api-reference/cn/compute/zec/vpc-network/border-gateway/describebordergateways)接口来获取可以使用的ZBG。
* **三层网络加入数据中心端口：** 可以通过[DescribeCloudRouterAvailablePorts](https://docs.console.zenlayer.com/api-reference/cn/networking/sdn/router/describecloudrouteravailableports-1)接口来获取可以使用的端口。
* **云接入支持的数据中心查询：**
  * 可以通过 [DescribeGoogleRegions](https://docs.console.zenlayer.com/api-reference/cn/networking/sdn/cloud/describegoogleregions) 查询Goolge 云接入点支持的数据中心信息。
  * 可以通过 [DescribeAWSRegions](https://docs.console.zenlayer.com/api-reference/cn/networking/sdn/cloud/describe-aws-regions) 查询AWS云接入点支持的数据中心信息。
  * 可以通过 [DescribeTencentRegions](https://docs.console.zenlayer.com/api-reference/cn/networking/sdn/cloud/describe-tencent-regions)查询Tencent 云接入点支持的数据中心信息。
* **边缘网关支持的数据中心查询：**&#x53EF;以通过 [DescribeVirtualEdgeDatacenters](https://docs.console.zenlayer.com/api-reference/cn/networking/sdn/common/describevirtualedgedatacenters) 查询支持边缘网关的数据中心信息。
* 云接入点的带宽将根据骨干带宽自动调整至最接近的阶梯，如需自定义云接入点的带宽，可以通过调用[`DescribeCloudAvailableBandwidthTiers`](https://docs.console.zenlayer.com/api-reference/cn/networking/sdn/cloud/describecloudavailablebandwidthtiers) 接口查询到云连接可用的带宽阶梯。

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

* 目前只支持创建后付费的三层网络。
* 一个VPC仅可加入一个三层网络。
* 本接口为异步接口，当创建实例请求下发成功后会返回一个三层网络的`ID`，此时创建操作并未立即完成。在此期间实例的状态将会处于\*\*`DEPLOYING`，**创建结果可以通过调用**[**`DescribeCloudRouters`**](https://docs.console.zenlayer.com/api-reference/cn/networking/sdn/router/describe-cloud-routers) **接口查询**，**如果**状态(`cloudRouterStatus`)**由`DEPLOYING`**(创建中)**变为**RUNNING\*\*(可用)，则代表创建成功，如果未查询到任何记录，则代表创建失败，创建过程中不可对三层网络进行任何操作。
  {% endhint %}

## 2. 请求参数

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

<table><thead><tr><th width="229">参数名称</th><th width="94">必选</th><th width="221">类型</th><th>描述</th></tr></thead><tbody><tr><td>cloudRouterName</td><td>否</td><td>String</td><td>三层网络的名称。<br>长度不能超过255。<br>默认为cloud-router-{当前时间戳秒}。</td></tr><tr><td>cloudRouterDescription</td><td>否</td><td>String</td><td>三层网络的描述信息。<br>长度不能超过255。</td></tr><tr><td>edgePoints</td><td>是</td><td>Array of <a href="../../datastructure#createcloudrouteredgepoint">CreateCloudRouterEdgePoint</a></td><td>创建三层网络中的边缘连接点信息。<br>建立一个三层网络至少需要传入2个连接点。</td></tr><tr><td>resourceGroupId</td><td>否</td><td>String</td><td><p>资源组的ID。</p><p>如果不传，则会放到默认资源组。</p></td></tr><tr><td>marketingOptions</td><td>否</td><td><a href="../../datastructure#marketingoptions">MarketingOptions</a></td><td>市场营销活动相关信息。</td></tr><tr><td>tags</td><td>否</td><td><a href="../../datastructure#tagassociation">TagAssociation</a></td><td><p>创建三层网络时关联的标签。</p><p>注意：关联<code>标签键</code>不能重复。</p></td></tr></tbody></table>

## 3. 响应结果

<table><thead><tr><th>参数名称</th><th width="176.33333333333331">类型</th><th>描述</th></tr></thead><tbody><tr><td>requestId</td><td>String</td><td><p>唯一请求 ID。</p><p>每次请求都会返回。定位问题时需要提供该次请求的 RequestId。</p></td></tr><tr><td>cloudRouterId</td><td>String</td><td>三层网络ID。</td></tr></tbody></table>

## 4. 代码示例

{% tabs %}
{% tab title="示例" %}
**1. 创建1个三层网络专线，接入点有2个, 接入点带宽大小都是 1Mbps。其中一个接入点是端口，另一个接入点是VPC。**

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

Request：
{
    "cloudRouterStatus":"RUNNING",
    "edgePoints":[
        {
            "ipAddress":"4.4.4.4/24",
            "vlanId": 1024,
            "portId":"your-portId",
            "bgpConnection":{
                "password":"",
                "peerIpAddress":"4.4.4.3",
                "localAsn":62610,
                "peerAsn":6543
            },
            "bandwidthMbps":1
        },
        {
            "vpcId":"your vpc id",
            "bandwidthMbps":1
        }
    ],
    "cloudRouterName":"Test",
    "cloudRouterDescription":"",
    "cloudRouterChargeType":"POSTPAID"
}

Response：
{   
  "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
  "response": {
     "requestId": "T98044459-95B2-477E-9A2F-00253A70CC6E"，
     "cloudRouterId": "cloud router id"
  }
}
```

{% endtab %}
{% endtabs %}

## 5. 开发者工具

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

## 6. 错误码

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

| HTTP状态码 | 错误码 | 说明 |
| ------- | --- | -- |
|         |     |    |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.console.zenlayer.com/api-reference/cn/networking/sdn/router/create-cloud-router.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
