AWS Lambda unterstützt jetzt Python, also habe ich es versucht

Einführung

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.

Reißverschluss erstellen

Wenn Sie mehrere Module haben, komprimieren Sie diese zusammen. Es gibt zwei wichtige Punkte.

Punkt der Zip-Erstellung

--Komprimieren Sie so, dass sich das Modul oben am Reißverschluss befindet.

Befehl zum Erstellen einer Zip-Datei

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 *

Einbinden eines Drittanbieter-Moduls in eine Zip-Datei

Verwenden Sie "pip install -t ", um es in dem Verzeichnis der obersten Ebene zu installieren, das den Python-Code enthält. Wenn Sie das Installationsziel mit der Option "-t" in "pip install" angeben, kann ein Fehler auftreten. Nach meinen Recherchen scheint es aufzutreten, wenn es auf lib64 installiert ist, und es erscheint auch in der Ausgabe, aber ab Oktober 2015, wenn Sie python27-pip unter Amazon Linux installieren, gibt es dieses Problem. Lxml ist das, was ich versucht habe. In diesem Fall funktionierte es, indem das installierte Modul einfach ohne die Option -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

Recommended Posts

AWS Lambda unterstützt jetzt Python, also habe ich es versucht
Ich wollte die Google-Tabelle mit AWS Lambda betreiben, also habe ich es versucht [Teil 2]
Wrangle x Python Buch Ich habe es versucht [2]
Wrangle x Python Buch Ich habe es versucht [1]
Ich habe versucht, AWS Lambda mit anderen Diensten zu verbinden
Ich habe Python> autopep8 ausprobiert
Ich habe AWS CDK ausprobiert!
Ich habe Python> Decorator ausprobiert
Ich habe AWS Iot ausprobiert
Ich habe versucht, Twitter Scraper mit AWS Lambda zu verwenden, aber es hat nicht funktioniert.
Ich habe versucht, TensorFlow in der AWS Lambda-Umgebung auszuführen: Vorbereitung
Ich habe versucht, mit AWS Lambda einen AMI zu erhalten
Ich möchte Lambda mit Python auf Mac AWS!
Python: Kann in Lambda wiederholt werden
AWS CLI v2 wurde zu GA (General Availability), daher habe ich sofort versucht, es zu verwenden.
Python-Anfänger haben einen Chat-BOT erstellt, also habe ich versucht, zusammenzufassen, wie man es macht
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
[Python] Scraping in AWS Lambda
Ich habe die C-Erweiterung von Python ausprobiert
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Beachten Sie, dass es Python 3 unterstützt
Ich habe versucht, AWS Chalice zu verwenden
Zusammenfassung bei Verwendung von AWS Lambda (Python)
Ich habe versucht, das Python Package Repository (Warehouse) auszuführen, das PyPI unterstützt
Ich habe versucht, Python zu berühren (Installation)
Ich habe versucht, WebScraping mit Python.
Schreiben Sie die AWS Lambda-Funktion in Python
Ich blieb stecken und überprüfte es
[Python / AWS Lambda-Ebenen] Ich möchte nur Module in AWS Lambda-Ebenen wiederverwenden
Ich habe versucht, Thonny (Python / IDE) zu verwenden.
Ich habe es mit Grumpy versucht (Python ausführen).
Ich habe Node.js und Python beim Erstellen eines Miniaturbilds mit AWS Lambda verglichen
[Super-Grundlagen von Python] Ich habe die Grundlagen der Grundlagen gelernt und sie daher kurz zusammengefasst.
Benachrichtigen Sie HipChat mit AWS Lambda (Python)
Ich habe ChatOps mit Slack x API Gateway x Lambda (Python) x RDS ausprobiert
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
[Python] Ich habe eine REST-API mit AWS API Gateway und Lambda geschrieben.
Ich habe Line Benachrichtigung in Python versucht
Ich habe die SMTP-Kommunikation mit Python versucht
Ich habe versucht, schlechte Tweets regelmäßig mit der AWS Lambda + Twitter API zu löschen
Ich habe versucht, Zabbix Server über einen Ausführungsfehler der AWS Lambda-Funktion zu informieren
Ich möchte es mit Python Lambda Django machen, aber ich werde aufhören
Python-Codierung: Ich bin mir bei Nintoka nicht sicher, also habe ich es nachgeschlagen
Als ich versuchte, Python auszuführen, wurde ich zum Microsoft Store übersprungen
[AWS] [GCP] Ich habe versucht, die Verwendung von Cloud-Diensten mit Python zu vereinfachen
[Zaif] Ich habe versucht, den Handel mit virtuellen Währungen mit Python zu vereinfachen
[Lambda] Ich habe versucht, ein externes Python-Modul über S3 zu integrieren
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Ich habe versucht, PLSA in Python zu implementieren
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
Ich habe versucht, Permutation in Python zu implementieren
Ich habe DSX Desktop installiert und ausprobiert
Ich habe versucht, PLSA in Python 2 zu implementieren