2017-12-06 5 views
0

Also habe ich eine Cloudwatch-Regel, die ein SNS-Thema senden kann, wenn sie ausgelöst wird. Jetzt richte ich eine Lambda-Funktion ein, um die Sicherheitsgruppe der EC2-Instanz zu ändern, wenn die CloudWatch-Regel ausgelöst wird. Ich benutze Python in Lambda, aber mein Code erzeugt einige "Modulfehler". Der schwierige Teil ist, dass ich versuche, die Cloudwatch-Daten zu nehmen und sie als Variable zu übergeben. Die Ereignisvariable ist in dieser Syntax: event ['detail'] ['resource'] ['instanceDetails'] ['instanceId'] so in meinem Python-Code sieht es so aus ... Ich bin SEHR neu bei Python und Lambda, aber ich versuche so viel wie möglich zu lernen. Wie Sie sehen können, versuche ich, diese Ereignisvariable zu verwenden und dann das SDK zu verwenden, um das entsprechende ModifyInstanceAttribute auszuführen, um die der Instanz zugeordneten Sicherheitsgruppen zu ändern (zum Beispiel mit python): Dieser Code ersetzt die Sicherheitsgruppe Instanz angegeben, wie hier in den boto3 docs beschrieben: http://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.Client.modify_instance_attributePython-Lambda-Code mit AWS Cloudwatch-Dateneingabe

mein Code so weit unten ...

import boto3 
client = boto3.client('ec2') 
response = 
client.modify_instance_attribute(InstanceId=event['detail']. ['resource']['instanceDetails']['instanceId'], 
    Groups=['sg-4e499332',] 
) 

Fehler ich erhalte, ist dieses Modul Initialisierung Fehler: Name 'Ereignis' ist nicht definiert

Antwort

1

Du schreibst keinen Code wie Lambda. Ihr Handler muss eine Funktion sein, die die Parameter event und context übernimmt.

Siehe Lambda handler docs for Python.

+0

Okay, ich bin weiter gekommen und habe das zum Laufen gebracht, aber ich muss eigentlich die genaue Instanz ID definieren. Nicht wirklich, was ich will, denn wenn ich mehrere Instanzen habe, die der Cloudwatch-Regel entsprechen, sollten sie auch ihre Sicherheitsgruppe ändern lassen. Gibt es Hilfe beim Parsen der Ereignisdaten als Variable im Lambda-Skript? – jonb157