2017-10-05 4 views
-2

1) Wie kann ich dies in boto3 Code aus Boto implementieren:Boto zu Boto3 Funktion Implementierung

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())) 

Der obige Code gibt grundsätzlich alle Sicherheitsgruppen ohne Instanzen angebracht.


2) Und dieser einzelne Befehl, die duct.sh() Modul verwendet:

command = 'aws ec2 describe-instances --filters "Name=instance.group-id,Values=' + sg.id + '\" --query \'Reservations[*].Instances[*].[InstanceId,Tags[?Key==`Name`] | [0].Value]\' --output json' 
+1

klingt sehr nach "schreibe den Code für mich", also schlage vor, dass du boto 3 doc liest (http://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.Client.describe_security_groups) und für 2 http://boto3.readthedocs.io/en/latest/reference/services /ec2.html#EC2.Client.describe_instances –

+0

Was fragen Sie eigentlich im zweiten Teil Ihrer Frage? Fühlen Sie sich frei, eine separate Frage zu erstellen, wenn sie nicht verwandt ist. –

Antwort

1

boto: get_all_security_groups()

boto3: security_group_iterator = ec2.security_groups.all()

jedoch boto hat die .instances() Methode auf boto.ec2.securitygroup.SecurityGroup, während boto3 hat keine ec2.SecurityGroup äquivalente Methode.

Daher sieht es aus wie Sie describe_instances() nennen würde, die Sicherheitsgruppe als Filter vorbei:

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

Dies wird eine Liste der Instanzen zurück, die die angegebenen Sicherheitsgruppe verwenden.

Sie könnten dann len(response['Reservations']) zählen, um nicht verwendete Sicherheitsgruppen zu finden. (Hinweis: Dies ist eine einfache Möglichkeit, Antworten mit der Länge Null zu finden, aber um die tatsächlichen Instanzen zu zählen, müssten alle Reservations.Instances addiert werden.)

+0

genial, das auszuprobieren. Ich konnte die Methode in Boto3 nicht finden. – codelinx

Verwandte Themen