boto3中Vpc的get_available_subresources方法错误返回空列表
Vpc.get_available_subresources返回空列表问题解决
代码错误修正
你代码里的ec2.Vpc(vpc)是错误用法——ec2.Vpc()的入参需要是VPC ID字符串,而非已经实例化的Vpc对象。正确调用方式如下:
import boto3 ec2 = boto3.resource('ec2') # 填入你的VPC ID vpc = ec2.Vpc('vpc-...') print(vpc.get_available_subresources())
方法功能说明(官方文档翻译)
get_available_subresources方法的作用是返回当前VPC支持调用的子资源类型名称列表,并非返回VPC下实际存在的子网、EC2实例等资源实例。比如正常返回值可能是['subnets', 'instances', 'network_interfaces', 'route_tables']这类字符串数组,用来提示你可以通过vpc.subnets.all()、vpc.instances.all()这类语法去获取实际的子资源。
如果要获取VPC下真实存在的子网或实例,使用以下方法:
- 获取所有子网:
list(vpc.subnets.all()) - 获取所有实例:
list(vpc.instances.all())
内容的提问来源于stack exchange,提问作者aids
相关产品推荐
相关产品推荐

