以下是我的代码。我不太清楚最后一点该怎么做,我不认为这是正确的。我如何从变量" unused_sgs"中获取安全组ID列表?并将其添加到" delete_security_group"来自boto3的电话?
由于
import boto3
ec2 = boto3.resource('ec2')
sgs = list(ec2.security_groups.all())
insts = list(ec2.instances.all())
all_sgs = set([sg.group_id for sg in sgs])
all_inst_sgs = set([sg['GroupName'] for inst in insts for sg in inst.security_groups])
unused_sgs = all_sgs - all_inst_sgs
print("Total SGs:", len(all_sgs))
print("SGS attached to instances:", len(all_inst_sgs))
print("Orphaned SGs:", len(unused_sgs))
print('Unattached SG names:', unused_sgs)
for group_id in unused_sgs:
ec2.delete_security_group(group_id)
print("Deleted Unused Groups")
答案 0 :(得分:0)
delete_security_group是一种客户端方法。
ec2 = boto3.resource('ec2')
client = boto3.client('ec2')
....
....
for group_id in unused_sgs:
client.delete_security_group(GroupId=group_id)
答案 1 :(得分:0)
helloV提供的答案是正确的。我不得不更新delete_security_group命令以使用客户端方法。我还必须使用kwargs让它正常工作。 谢谢你的帮助。