[JAWS-UG CLI] Lambda Blueprint Erläuterung: Lambda Common Edition (Python)

Lambdas Erklärung für Python-Anfänger.

Erklärung von Lambda

Handler

Eine Funktion innerhalb der Lambda-Funktion, die Lambda importiert.

python:Code(Beispiel):


   def lambda_handler(event, context):

Handlerfunktion: Ereignisdaten

Lambda verwendet den Ereignisparameter, um Ereignisdaten an den Handler zu übergeben.

Dieser Parameter ist normalerweise ein Python-Wörterbuchtyp.

json:Ereignisdaten, wenn die Ereignisquelle CloudWatch-Ereignisse ist(Stichprobe):


   {
     "account": "123456789012",
     "region": "ap-northeast-1",
     "detail": {},
     "detail-type": "Scheduled Event",
     "source": "aws.events",
       "time": "1970-01-01T00:00:00Z",
     "id": "cdc73f9d-aea9-11e3-9d5a-835b769c0d9c",
     "resources": [
       "arn:aws:events:ap-northeast-1:123456789012:rule/my-schedule"
     ]
   }

Sie können auch die Typen list, str, int, float und NoneType verwenden.

Handlerfunktion: Kontextobjekt (Python)

Verwenden Sie den Kontextparameter, um auf die Laufzeitinformationen zuzugreifen, die im Kontextobjekt von Lambda gespeichert sind.

Dieser Parameter ist vom Typ Lambda Context.

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/python-context-object.html

Während der Ausführung der Lambda-Funktion kann das Context-Objekt die folgenden Laufzeitinformationen abrufen:

Methode

Eigentum

Handler-Funktion: Rückgabewert

Optional kann der Handler einen Wert zurückgeben.

Wenn der Client den Importtyp RequestResponse angibt (synchrone Ausführung)

Das Ergebnis wird an den importierenden Client zurückgegeben.

Beispiel für einen Rückgabewert


return event['time']

Wenn der Client den Ereignisimporttyp angibt (asynchrone Ausführung)

Lambda gibt nichts zurück.

Lambda-Funktionsprotokoll

Codebeispiel


  print('Check complete at {}'.format(str(datetime.now())))

Lambda-Funktionsausnahme

Wenn in der Lambda-Funktion eine Ausnahme auftritt, erkennt Lambda den Fehler und serialisiert die Ausnahmeinformationen und gibt sie an JSON zurück.

https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/python-exceptions.html

python:Codebeispiel:


   def always_failed_handler(event, context):
     raise Exception('I failed!')

json:Beispielfehlermeldung:


   {
     "errorMessage": "I failed!",
     "stackTrace": [
       [
         "/var/task/lambda_function.py",
         3,
         "my_always_fails_handler",
         "raise Exception('I failed!')"
       ]
     ],
     "errorType": "Exception"
   }

Recommended Posts

[JAWS-UG CLI] Lambda Blueprint Erläuterung: Lambda Common Edition (Python)
[JAWS-UG CLI] Lambda Blueprint Erläuterung: Python2.7-Grundlagen