[PYTHON] [AWS] Was tun, wenn Sie mit Lambda pfeifen möchten?

Einführung

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.

In Verbindung stehender Artikel

Im folgenden Artikel finden Sie die grundlegende Methode zum Erstellen von Lambda-Funktionen.

Verfahren

  1. Erstellen Sie lokal ein Arbeitsverzeichnis
  2. Installieren Sie die Bibliothek
  3. Schreiben Sie die Lambda-Funktion in das Arbeitsverzeichnis
  4. Reißverschluss
  5. Laden Sie die komprimierte Datei hoch
  6. Einstellen der zu verwendenden Funktion

Arbeitsverzeichnis erstellen

Erstellen Sie zunächst ein Arbeitsverzeichnis. Nennen wir es Arbeitsbereich. Wechseln Sie nach dem Erstellen des Verzeichnisses in das Verzeichnis.

$ mkdir workspace
$ cd workspace

Bibliotheksinstallation

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.

Erstellen einer Lambda-Funktion

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
>>> 

Mit Reißverschluss komprimieren

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 *

Datei-Upload

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). スクリーンショット 2015-11-20 10.44.39.png

Einstellen der zu verwendenden Funktion

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. スクリーンショット 2015-11-20 10.51.24.png

Damit sind die Einstellungen abgeschlossen. Wählen Sie die Schaltflächen "Weiter" und "Funktion erstellen", um die Funktion zu erstellen.

Prüfung

Versuchen Sie, auf dem Testbildschirm zu testen. Wenn der Statuscode zurückgegeben wird, ist er erfolgreich. Danke für deine harte Arbeit. スクリーンショット 2015-11-20 10.57.20.png

Referenz

Recommended Posts

[AWS] Was tun, wenn Sie mit Lambda pfeifen möchten?
Links, um mit Sublime Text zu tun, was Sie wollen
Lassen Sie uns zusammenfassen, was Sie tun möchten.
Was tun, wenn Sie pyaudio nicht mit pip #Python installieren können?
Was tun, wenn bei der Pip-Installation ein Unicode-Dekodierungsfehler auftritt?
Was tun, wenn beim Versuch, pip mit pyenv zu verwenden, ein undefinierter Fehler angezeigt wird?
Wenn Sie es so verwenden möchten, wie es ist, wenn Sie es mit Lambda-Memo verwenden
Was tun, wenn Sie nicht mit pip in einer Babun-Umgebung installieren können?
Was tun, wenn Sie URL 443 mit pip nicht abrufen konnten?
Laden Sie das, was Sie angefordert haben, mit AWS Lambda Python in S3 hoch
Was tun, wenn Sie mysqlclient nicht per Pip installieren können?
Einstellungen, wenn Sie Python-Mecab mit Travis ausführen möchten
Wenn Sie mit dem Django REST-Framework filtern möchten
Ich möchte Lambda mit Python auf Mac AWS!
Dinge zu tun, wenn Sie anfangen, sich mit Django zu entwickeln
Was tun, wenn bei der Installation von Python mit pyenv eine Fehlermeldung angezeigt wird?
Was tun, wenn Sie Dateien remote von einem Windows-Client empfangen möchten?
Was tun, wenn Sie wütend werden, wenn Sie nicht libxml / xmlversion.h haben, wenn Sie lxml in pip einfügen?
Was tun, wenn bei der Installation von Python 2 mit pyenv ein OpenSSL-Fehler auftritt?
Was tun mit der Installation von Magics?
Verwenden Sie aggdraw, wenn Sie mit Kissen schön zeichnen möchten
Verschieben Sie das, was Sie mit pip installiert haben, in die Conda-Umgebung
Was tun, wenn Sie keine Dateien mit Indizes sortieren können?
Was tun mit PYTHON Release?
Was tun, wenn beim Importieren von _ssl ein Fehler auftritt?
Wenn Sie die Anfangsdaten von Django mit Relationen registrieren möchten
[AWS EC2] Einstellungen, die Sie unter Amazon Linux 2 vornehmen möchten
Was tun, wenn beim Importieren von matplotlib mit Jupyter ein Importfehler auftritt?
Ich möchte ○○ mit Pandas machen
ImportError: Kein Modul Was tun, wenn Sie dazu aufgefordert werden?
Was tun, wenn Sie bei Verwendung von ortoolpy.logistics_network keine japanischen Spaltennamen verwenden möchten?
Python | Was Sie mit Python machen können
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten
[AWS] Was tun, wenn der Ping-Befehl eine "Zeitüberschreitung" verursacht?
Wenn es schwierig ist, das zu kopieren, was Sie mit vue erstellt haben
[Beanstalk] Was tun, wenn beim Importieren der UUID ein Fehler auftritt?
Wenn Sie ein Objekt mit Anforderungen mithilfe der Flasche senden möchten
[TensorFlow] Wenn Sie TensorBoard ausführen möchten, installieren Sie es mit pip.
Was tun, wenn Sie mit Maven kein Projekt erstellen können?
Was tun, wenn "Ich kann die Site nicht sehen !!!!"
Wenn Sie das Intervall der Achsenskala mit APLpy anpassen möchten
Was Sie mit API Vol.1 tun können
Ich möchte eine Pip-Installation mit PythonAnywhere durchführen
Ich möchte mit aws mit Python spielen
Stellen Sie mit AWS Lambda Python eine Verbindung zu s3 her
Was Sie mit Programmierkenntnissen machen können
[AWS] Machen Sie SSI-ähnliche Dinge mit S3 / Lambda
ImportError beim Versuch, das gcloud-Paket mit der AWS Lambda Python-Version zu verwenden
[Memorandum] Was tun, wenn nach dem Ausführen der Pip-Liste eine Warnung angezeigt wird?
Was tun, wenn die Option -f von grep nicht funktioniert?
Ich möchte es mit Python Lambda Django machen, aber ich werde aufhören
Was tun, wenn Sie mit Python keine E-Mail an Yahoo senden konnten?
Ein Gist-Repository, das Sie verwenden können, wenn Sie es mit ansible ausprobieren möchten
Wenn Sie eine Spalte spaltenweise durch einen fehlenden Wert (NaN) ersetzen möchten
Was tun, wenn Sie sich mit FileNotFoundError in der Dateireferenz verlieren?
Was tun, wenn beim Importieren von numpy mit VScode ein Fehler auftritt?
Was tun, wenn TypeError in min und max von numpy auftritt?
Was tun, wenn beim Laden von mnist eine Fehlermeldung angezeigt wird?