Wenn Sie Lambda-Funktionen in Python schreiben, möchten Sie möglicherweise eine Bibliothek eines Drittanbieters innerhalb der Lambda-Funktion verwenden. Mit Lambda können Sie jedoch keine Bibliotheken mit pip installieren. Dieses Mal werde ich eine Methode vorstellen, die in einer solchen Situation nützlich ist.
Verwenden Sie insbesondere die von Lambda bereitgestellte Funktion zum Hochladen von Dateien. Dies bedeutet, dass Sie die Bibliothek innerhalb der Lambda-Funktion verwenden können, indem Sie beim Hochladen der Datei eine Bibliothek eines Drittanbieters hochladen.
Dieses Mal werde ich versuchen, Anforderungen zu verwenden, bei denen es sich um die HTTP-Bibliothek von Python handelt.
Im folgenden Artikel finden Sie die grundlegende Methode zum Erstellen von Lambda-Funktionen.
Erstellen Sie zunächst ein Arbeitsverzeichnis. Nennen wir es Arbeitsbereich. Wechseln Sie nach dem Erstellen des Verzeichnisses in das Verzeichnis.
$ mkdir workspace
$ cd workspace
Verwenden Sie im Arbeitsbereich pip, um die Bibliothek zu installieren. Mach Folgendes:
$ pip install requests -t .
Sie können den Installationsort der Bibliothek angeben, indem Sie die Option t hinzufügen. Dieses Mal wird es im aktuellen Verzeichnis (Arbeitsbereich) installiert.
Nach der Installation der Bibliothek besteht der nächste Schritt darin, die Lambda-Funktion zu schreiben. Der Dateiname sollte ** lambda_function.py ** sein und der Funktionsname sollte ** lambda_handler ** sein. Merken Sie sich die Datei- und Funktionsnamen für die spätere Verwendung.
lambda_function.py
import requests
def lambda_handler(event, context):
res = requests.get("http://www.yahoo.co.jp/")
return res.status_code
Der Code sieht wie oben aus. Der Inhalt ist so einfach wie GET the top page of Yahoo und gibt den Statuscode zurück. Wenn die Seite normal erfasst werden kann, werden 200 als Statuscode zurückgegeben.
>>> from lambda_function import lambda_handler
>>> lambda_handler(None, None)
200
>>>
Verwenden Sie den Befehl zip, um alle Dateien im Arbeitsbereich zu komprimieren. Der Name der zu komprimierenden Datei sollte ** upload.zip ** sein.
$ zip -r upload.zip *
Laden Sie nach dem Komprimieren mit dem Befehl zip die komprimierte Datei auf Lambda hoch. Unter dem Punkt "Lambda-Funktionscode" im Funktionseinstellungsbildschirm befindet sich ein "Code-Eintragstyp". Der Standardwert ist "Code inline bearbeiten", aber wählen Sie hier "ZIP-Datei hochladen". Wenn Sie es auswählen, wird die Schaltfläche "Hochladen" angezeigt. Laden Sie daher die zuvor erstellte Datei hoch (upload.zip).
Stellen Sie nach dem Hochladen der Datei die Funktion ein, die in ** Handler ** verwendet werden soll. Funktionen können im Format "Dateiname.Funktionsname" angegeben werden. Der Dateiname der zuvor erstellten Lambda-Funktion war ** lambda_function ** und der Funktionsname war ** lambda_handler **. Geben Sie daher "lambda_function.lambda_handler" an.
Damit sind die Einstellungen abgeschlossen. Wählen Sie die Schaltflächen "Weiter" und "Funktion erstellen", um die Funktion zu erstellen.
Versuchen Sie, auf dem Testbildschirm zu testen. Wenn der Statuscode zurückgegeben wird, ist er erfolgreich. Danke für deine harte Arbeit.
Recommended Posts