文档首页> > 开发指南> Python> VPC Python SDK示例

VPC Python SDK示例

更新时间: 2018-11-26 14:45

VPC服务Python OpenStack SDK示例

使用虚拟私有云(VPC)服务,可以为弹性云服务器(ECS)提供本地隔离、可配置和可管理的虚拟网络,提高云资源的安全性,简化网络部署。

一个典型的VPC由路由器、网络和子网组成,如下图所示:

可以在控制台创建VPC,然后获取UUID:

  • 路由器:路由器是一个逻辑实体,可以跨越内部子网转发报文,然后,通过合适的外部网关,在外部网络上对报文进行网络地址转换。
  • 网络:网络是一个隔离的2层网段,与物理组网世界的VLAN类似。
  • 子网:子网是由v4或v6 IP地址和相关配置状态组成的地址段。

创建VPC和子网

可以使用Python OpenStack SDK创建子网。详细操作如下:

  1. 创建路由器。
  2. 创建网络。
  3. 创建子网。
  4. 连接子网与路由器。

以下代码所示为网络创建过程,您可以根据需要修改这些配置。创建路由器、网络和子网并将子网与路由器连接之后,您可以在控制台看到所创建的新VPC。

def create_VPC(conn) : 
    #create a router 
    testRouterName = "PythonSDKVPC" 
    router = conn.network.create_router( 
        name=testRouterName 
        ) 
    #create_network 
    testNetworkName = "PythonSDKNet" 
    network = conn.network.create_network( 
        name=testNetworkName          
        ) 
    #create a subnet 
    testSubnetName = "PythonSDKSubnet" 
    subnet = conn.network.create_subnet( 
        name = testSubnetName, 
        is_dhcp_enabled = True, 
        cidr = "192.168.1.0/24", 
        network_id = network.id 
        ) 
    #connect the subnet to the router, make the subnet connect to the internet. 
    conn.network.add_interface_to_router(router, subnet.id)

删除VPC

删除VPC之前,需要删除VPC 子网中所创建的ECS,然后取消路由器和子网之间的关联,删除子网和网络。

执行ECS删除命令并确保根据ECS删除状态删除ECS之后,您可以删除网络。关于如何删除网络,请参见以下代码:

def deleteVPC(conn): 
    conn.network.remove_interface_from_router(router, subnetId) 
    conn.network.delete_subnet(subnetId) 
    conn.network.delete_network(networkdId) 
    conn.network.delete_router(routerId)

外部网络

外部网络是属性router:external被设定为true的网络。该网络可用于分配EIP。在将EIP添加到ECS上之后,即可通过互联网访问ECS。

无需创建外部网络,因为外部网络已经存在。

可以使用以下代码,获取外部网络:

def get_external_network(self): 
    for network_each in self.conn.network.networks(): 
        if network_each.is_router_external == True : 
           return network_each

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

在文档使用中是否遇到以下问题







请至少选择或填写一项反馈信息

字符长度不能超过100

反馈内容不能为空!

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区
点我,12·12惊喜等着你哦~