尝试使用Python删除未使用的AWS安全组。获取错误';ec2.ServiceResource';对象没有属性';删除_securitygroup';

尝试使用Python删除未使用的AWS安全组。获取错误';ec2.ServiceResource';对象没有属性';删除_securitygroup';,python,amazon-web-services,amazon-ec2,boto3,Python,Amazon Web Services,Amazon Ec2,Boto3,下面是我的代码。我不太确定最后一点该怎么办,我认为这是不对的。如何从变量“unused_sgs”获取安全组ID列表,并将其添加到来自boto3的“delete_security_group”调用中 谢谢 import boto3 ec2 = boto3.resource('ec2') sgs = list(ec2.security_groups.all()) insts = list(ec2.instances.all()) all_sgs = set([sg.group_id for

下面是我的代码。我不太确定最后一点该怎么办,我认为这是不对的。如何从变量“unused_sgs”获取安全组ID列表,并将其添加到来自boto3的“delete_security_group”调用中

谢谢

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")
是一个客户端方法

ec2 = boto3.resource('ec2') 
client = boto3.client('ec2')

....
....
for group_id in unused_sgs:
  client.delete_security_group(GroupId=group_id)

赫洛夫提供的答案是正确的。我必须更新delete_security_group命令才能使用client方法。我还必须使用kwargs使其正常工作。
谢谢你的帮助

很好,谢谢。现在看来我把“组id”键搞乱了。Python不想接受它作为关键字参数
delete\u security\u group()只接受关键字参数是否将使用该for循环遍历每个安全组ID并逐个删除?我猜可能有一种更深入、更复杂的写作方式,但我希望避免这种情况。@RaptorPete你试过看我为
delete\u security\u group
提供的链接吗?它有你需要的一切。我已经更新了需要kwargs的答案。