【发布时间】:2021-11-06 16:18:44
【问题描述】:
我可以像这样快速创建一个 VPC:
import boto3 as boto
inst = boto.Session(profile_name='myprofile').resource('ec2')
def createVpc(nid,az='us-west-2'):
'''Create the VPC'''
vpc = inst.create_vpc(CidrBlock = '10.'+str(nid)+'.0.0/16')
vpc.create_tags(
Tags = [ { 'Key': 'Name', 'Value': 'VPC-'+nid }, ]
)
vpc.wait_until_available()
createVpc('111')
如何使用 CidrBlock:10.111.0.0/16 或名称:VPC-111 检查 VPC 在创建之前已经存在?我实际上想在创建任何 AWS 资源之前进行相同的检查,但 VPC 是一个开始。最好的!
编辑:
发现vpcs.filter可以用来查询给定的VPC标签;例如:
fltr = [{'Name':'tag:Name', 'Values':['VPC-'+str(nid)]}]
list(inst.vpcs.filter(Filters=fltr))
它返回一个像这样的列表对象:[ec2.Vpc(id='vpc-43e56b3b')]。长度为 0(零)的列表很好地表明了 VPC 不存在,但想知道是否有更多的 boto/aws 方法可以检测到它。
【问题讨论】:
-
您必须使用标签来验证 VPC 的存在。甚至 cloudformation 也在使用相同的机制。
标签: python-3.x amazon-web-services boto3 amazon-vpc vpc