Boto到Boto3功能实现

2024-05-19 10:09:07 发布

您现在位置:Python中文网/ 问答频道 /正文

1)如何从boto实现到boto3代码:

conn = boto.connect_ec2()  # boto way
sgs = conn.get_all_security_groups()  # boto way
for sg in sgs:
    if len(sg.instances()) == 0:
        print(sg.name, sg.id, len(sg.instances()))

上面的代码基本上打印所有没有附加实例的安全组。在


2)以及使用duct.sh()模块的单个命令:

^{pr2}$

Tags: instances代码getlenconnectallsgboto3
1条回答
网友
1楼 · 发布于 2024-05-19 10:09:07

boto:get_all_security_groups()

boto3:security_group_iterator = ec2.security_groups.all()

然而,boto在boto.ec2.securitygroup.SecurityGroup上有{}方法,而boto3在{}上没有等效的方法。在

因此,看起来您必须调用describe_instances(),将安全组作为Filter传递:

response = client.describe_instances(
  Filters=[{'Name':'instance.group-id','Values':['sg-abcd1234']}])

这将返回使用给定安全组的实例的列表。在

然后可以计数len(response['Reservations'])来查找未使用的安全组。(注意:这是查找零长度响应的简单方法,但要计算实际实例,则需要将所有Reservations.Instances相加。)

相关问题 更多 >

    热门问题