所在的公司使用的云服务器以前一直是经典网络链接的,最近收到阿里的邮件说部分购置较早的云服务器须要坐一些硬件的升级,随着升级而来的要求是把这些服务器切换至VPC网络。 html
为了让不一样的VPC网络间的ECS和RDS通信,须要配置阿里的高速通道服务,而创建高速通道的前提之一是网段不冲突,虽然貌似VPC网段相同交换机网段不一样也能够创建高速通道进行互通,可是仍是建议须要互通的VPC间规划不一样的网段,因此我决定建立一些不一样网段的VPC供切换过来的ECS使用。python
一开始我以为直接在管理控制台上建立点击建立就能够了,但建立的时候发现管理控制台只能在预设的三个网段(192.168.0.0/16,172.16.0.0/12,10.0.0.0/8)中选择建立。 git
查询相关文档后发现须要使用API才能自定义网段建立VPC。我这里只须要建立VPC,因此就写一个简单的脚本调用阿里的python-SDK实现。github
# 拉取阿里的Python-SDK git clone https://github.com/aliyun/aliyun-openapi-python-sdk.git # 安装 aliyun-python-sdk-vpc cd aliyun-openapi-python-sdk/aliyun-python-sdk-vpc/ sudo python setup.py install
VPC这部分的SDK文档的内容不多,不过还好有调用的DEMO,参考DEMO和源码中的方法建立下面脚本json
#!/usr/bin/env python #coding=utf-8 import json from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkvpc.request.v20160428 import CreateVpcRequest from aliyunsdkvpc.request.v20160428 import DescribeVpcAttributeRequest # 建立 AcsClient 实例 client = AcsClient( "<your-access-key-id>", "<your-access-key-secret>", "<your-region-id>" ); # 建立 VPC request = CreateVpcRequest.CreateVpcRequest() # 为VPC网络设置一个名字 request.set_VpcName('youvpcname') # 配置VPC的网段CIDR地址 request.set_CidrBlock('172.18.0.0/16') response = client.do_action_with_exception(request) vpc_id = json.loads(response)['VpcId'] print "VPC ID is", vpc_id # 获取并打印 VPC 的属性信息 request = DescribeVpcAttributeRequest.DescribeVpcAttributeRequest() request.set_VpcId(vpc_id) response = client.do_action_with_exception(request) print response
其中的 <your-access-key-id> 和 <your-access-key-secret> 替换为账号的accessKey 信息,获取方法参考这里。<your-region-id>要替换为建立VPC的地域id,如 cn-zhangjiakou ,不清楚本身地域ID的参考这里api
脚本写好后执行便可成功建立自定网段的VPCbash
想要简单的调用 API 还有一个方法是使用API Explorer,在网页上选择接口填写参数后就能直接调用API服务器