所在的公司使用的雲服務器以前一直是經典網絡鏈接的,最近收到阿里的郵件說部分購置較早的雲服務器須要坐一些硬件的升級,隨着升級而來的要求是把這些服務器切換至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服務器