示例一:创建云服务器所需要的VPC和子网
操作场景
本章节指导用户通过调用API来创建云服务器所需要的VPC和子网。
前提条件
您需要规划VPC所在的区域信息,并根据区域确定调用API的Endpoint,详细信息请参见终端节点(Endpoint)。
当您使用Token认证方式完成认证鉴权时,需要获取用户Token并在调用接口时增加“X-Auth-Token”到业务接口请求消息头中。Token认证,具体操作请参考认证鉴权。
通过IAM服务获取到的Token有效期为24小时,需要使用同一个Token鉴权时,可以先将Token缓存,避免频繁调用。
操作步骤
- 创建VPC。
- 发送“POST https://VPC的Endpoint/v1/{project_id}/vpcs”,project_id为项目ID。
- 在Request Header中增加“X-Auth-Token”。
- 在Request Body中传入参数如下,其中cidr字段需要提前进行网络规划。
{ "vpc": { "name": "vpc", //虚拟私有云名称 "cidr": "192.168.0.0/16" //虚拟私有云下可用子网的范围 } }
- 查看请求响应结果。
- 请求成功时,响应参数如下,id就是vpc_id。
{ "vpc": { "id": "b6684a27-b049-407d-90b4-c9551f2390e1", "name": "vpc", "cidr": "192.168.0.0/16", "status": "CREATING", "routes": [] } }
- 请求异常时,错误码请参见错误码。
- 请求成功时,响应参数如下,id就是vpc_id。
- 查询VPC详情。
- 发送“GET https://VPC的Endpoint/v1/{project_id}/vpcs/{vpc_id}”,project_id为项目ID。
- 在Request Header中增加“X-Auth-Token”。
- 查看请求响应结果。
- 请求成功时,响应参数如下,id就是vpc_id。
{ "vpc": { "id": "b6684a27-b049-407d-90b4-c9551f2390e1", "name": "vpc", "description": "", "cidr": "192.168.0.0/16", "status": "OK", "enterprise_project_id": "0" , "routes": [] } }
- 请求异常时,错误码请参见错误码。
- 请求成功时,响应参数如下,id就是vpc_id。
- 指定VPC创建子网。
- 发送“POST https://VPC的Endpoint/v1/{project_id}/subnets”,project_id为项目ID。
- 在Request Header中增加“X-Auth-Token”。
- 在Request Body中传入参数如下,其中dnsList参数参见华为云提供的内网DNS地址是多少?,availability_zone参数可通过地区和终端节点获取。
-
{ "subnet": { "name": "subnet", "description": "", "cidr": "192.168.0.0/24", "gateway_ip": "192.168.0.1", "dhcp_enable": true, "dnsList": ["114.xx.xx.114", "114.xx.xx.115"], "availability_zone": "aa-bb-cc", "vpc_id": "b6684a27-b049-407d-90b4-c9551f2390e1" } }
- 查看请求响应结果。
- 请求成功时,响应参数如下:
{ "subnet": { "id": "4779ab1c-7c1a-44b1-a02e-93dfc361b32d", "name": "subnet", "description": "", "cidr": "192.168.0.0/24", "dnsList": ["114.xx.xx.114", "1114.xx.xx.115"], "status": "UNKNOWN", "vpc_id": "b6684a27-b049-407d-90b4-c9551f2390e1", "gateway_ip": "192.168.0.1", "dhcp_enable": true, "primary_dns": "114.xx.xx.114", "secondary_dns": "114.xx.xx.115", "availability_zone": "aa-bb-cc", "neutron_network_id": "4779ab1c-7c1a-44b1-a02e-93dfc361b32d", "neutron_subnet_id": "213cb9d-3122-2ac1-1a29-91ffc1231a12", "extra_dhcp_opts": [] } }
- 请求异常时,错误码请参见错误码。
- 请求成功时,响应参数如下:
- 查询子网详情。
- 发送“GET https://VPC的Endpoint/v1/{project_id}/subnets/{subnet_id}”,project_id为项目ID。
- 在Request Header中增加“X-Auth-Token”。
- 查看请求响应结果。
{ "subnet": { "id": "4779ab1c-7c1a-44b1-a02e-93dfc361b32d", "name": "subnet", "description": "", "cidr": "192.168.20.0/24", "dnsList": ["114.xx.xx.114", "114.xx.xx.115"], "status": "ACTIVE", "vpc_id": "b6684a27-b049-407d-90b4-c9551f2390e1", "gateway_ip": "192.168.20.1", "ipv6_enable": false, "dhcp_enable": true, "primary_dns": "114.xx.xx.114", "secondary_dns": "114.xx.xx.115", "availability_zone": "aa-bb-cc", "neutron_network_id": "4779ab1c-7c1a-44b1-a02e-93dfc361b32d", "neutron_subnet_id": "213cb9d-3122-2ac1-1a29-91ffc1231a12", "extra_dhcp_opts": [] } }