AWS Lambda unterstützt ab dem 8. Oktober 2015 Python 2.7 nach Node.js und Java. Dadurch kann Lambda Python-Code verwenden, der zuvor mit boto geschrieben wurde. Ich habe es sofort versucht, also werde ich die Punkte zusammenfassen.
Name Ein Name, der von Lambda verwaltet wird. Es ist nicht der Name des Python-Moduls, das auf Lambda ausgeführt wird.
Code In Python ist eine Datei ein Modul. Der Dateiname lautet * Modulname.py *. Wenn Sie ein Modul haben, bearbeiten Sie es online. Wenn Sie mehrere Module haben, laden Sie diese zusammen in einer Zip-Datei hoch. Geben Sie beim Hochladen die Datei an, die vom Browser in der Management Console hochgeladen oder in S3 hochgeladen wurde.
Wenn Sie mehrere Module haben, komprimieren Sie diese zusammen. Es gibt zwei wichtige Punkte.
--Komprimieren Sie so, dass sich das Modul oben am Reißverschluss befindet.
pip install
aus Ihrem Code importieren, fügen Sie dessen Abhängigkeiten in die Zip-Datei ein.
--boto 3 muss nicht im Reißverschluss enthalten sein. Wenn Sie eine bestimmte Version von boto verwenden möchten, fügen Sie diese in die Zip-Datei ein.Cd
in das Verzeichnis der obersten Ebene, das Ihren Python-Code und zip -r filename.zip *
enthält. Hier ist ein Beispiel, wenn sich der Code im Verzeichnis * myModuleDir * befindet.
Es gibt keine Regeln für Zip-Dateinamen.
bash
$ cd myModuleDir
$ ls
myCode1.py
myCode2.py
...
$ zip -r ~/myLambdaFunction.zip *
Verwenden Sie "pip install -t
kopiert wurde.
Beim Kopieren des Python2.6-Moduls ist eine Fehlermeldung aufgetreten. Installieren Sie die Pip daher mit Python2.7.
$ cp -R /usr/local/lib64/python2.7/site-packages/lxml <myModuleDir>
Blueprint Es ist eine Vorlage, die einfach für jeden von Lambda verwendeten AWS-Service oder jede von Lambda verwendete Programmiersprache gestartet werden kann. Zum Beispiel können Sie einfach mit Lambda in Python beginnen, indem Sie * hallo-world-python * auswählen.
Handler
Wenn Sie Blueprint auswählen, wird der im Code geschriebene Handler ausgewählt.
Wenn Sie ein vorhandenes Python-Modul wiederverwenden möchten, ersetzen Sie if __name__ == '__ main __':
durch'def lambda_handler (Ereignis, Kontext): 'und geben Sie diesen Handler in Lambda an.
Wenn Sie ein vorhandenes Modul nicht bearbeiten möchten, importieren Sie das vorhandene Modul und erstellen Sie ein Wrapper-Modul, das den Handler beschreibt.
Role Weisen Sie der Lambda-Instanz, die Sie ausführen möchten, eine Rolle zu. Beginnen Sie mit einer Vorlage, die Sie in der AWS Management Console erstellen und auswählen können, und bearbeiten Sie die Berechtigungen nach Bedarf. Wenn die Rolle richtig eingestellt ist, müssen Sie den Sicherheitsnachweis (Zugriffsschlüssel) nicht festlegen.
Memory Sie können schrittweise zwischen 128 MB und 1536 MB auswählen. Bei der Ausführung wird der maximale Speicherverbrauch auf der Konsole angezeigt.
Timeout Es kann in Sekunden eingestellt werden. Mit diesem Update können Sie bis zu 5 Minuten einrichten. Wenn die Timeout-Zeit überschritten wird, wird das Programm zwangsweise beendet.
Log Es wird auch auf der Konsole angezeigt, aber automatisch im CloudWatch-Protokoll aufgezeichnet.
Appendix A. References