wandle eine Funktion in Lambda um

8

Ich habe diese Funktion in Python wie erwartet funktioniert. Wie konvertiere ich es in AWS Lambda-Funktion?

%Vor%     
shantanuo 28.11.2015, 06:23
quelle

2 Antworten

1

Ihr Code muss dem Lambda-Funktionsprogrammierungsmodell folgen, und es scheint, dass Sie Ihren Code geringfügig anpassen müssen, um zu passen. Ihr Python-Code muss eine seiner Funktionen als Handler identifizieren. Dies geschieht folgendermaßen:

%Vor%

Aus dem offiziellen Handbuch:

  

event-AWS Lambda verwendet diesen Parameter, um Ereignisdaten an die   Handler. Dieser Parameter ist normalerweise vom Python-Diktattyp. Es kann   Geben Sie auch list, str, int, float oder NoneType ein.

     

context-AWS Lambda verwendet diesen Parameter, um Informationen zur Laufzeit bereitzustellen   zu deinem Handler. Dieser Parameter ist vom Typ LambdaContext.   Optional kann der Handler einen Wert zurückgeben. Was passiert mit dem zurückgegebenen?   Der Wert hängt vom Aufruftyp ab, den Sie beim Aufrufen des Lambda verwenden   Funktion:

     

Wenn Sie den RequestResponse-Aufruftyp verwenden (synchron   Ausführung), gibt AWS Lambda das Ergebnis des Python-Funktionsaufrufs zurück   an den Client, der die Lambda - Funktion aufruft (in der HTTP - Antwort an   die Aufrufanforderung, serialisiert in JSON). Beispiel: AWS Lambda   console verwendet den RequestResponse-Aufruftyp, also beim Test   Rufen Sie die Funktion über die Konsole auf, die Konsole zeigt die   Rückgabewert.

     
  • Wenn der Handler nichts zurückgibt, gibt AWS Lambda null zurück.

  •   
  • Wenn Sie den Ereignisaufruftyp (asynchrone Ausführung) verwenden, wird der Wert verworfen.

  •   

Wenn diese Änderungen vorgenommen werden, besteht der erste Schritt darin, den Code zusammen mit etwaigen Abhängigkeiten in ein Bereitstellungspaket zu packen. Um dies zu tun, müssen Sie ein

erstellen
  

.zip Datei in der folgenden Art und Weise.

Erstellen Sie zuerst ein Verzeichnis für Ihr Paket. In diesem Fall könnten Sie es MailgunScript oder etwas Ähnliches nennen. Speichern Sie alle Python-Quelldateien in diesem Verzeichnis auf der Stammebene.

Sie können den Befehl pip verwenden, um alle erforderlichen Bibliotheken, wie die Anfragen und die Bibliotheken urllib2, in ein Verzeichnis Ihrer Wahl zu installieren:

%Vor%

Schließlich müssen Sie ein .zip Archiv aus dem Inhalt dieses Verzeichnisses erstellen, nicht aus dem Verzeichnis selbst.

Sie können jetzt Ihr Bereitstellungspaket in eine Lambda-Funktion umwandeln. Melden Sie sich bei Ihrer AWS-Verwaltungskonsole an und wählen Sie Create a Lambda Function . Wenn Sie aufgefordert werden, einen Blueprint auszuwählen, können Sie den standardmäßigen Blaupause hello-world auswählen und mit dem Fortfahren fortfahren, um Ihr Bereitstellungspaket hochzuladen und die restlichen Felder nach Bedarf auszufüllen.

Sie können die Funktion dann testen, indem Sie einfach zur Haupt-AWS-Verwaltungskonsole zurückkehren, die Funktion auswählen und auf test klicken. Alternativ können Sie die neue Lambda-Funktion über die Befehlszeilenschnittstelle mit einem Befehl wie dem folgenden manuell aufrufen:

%Vor%

Dies führt Ihre Funktion aus und gibt die Antwort auf /tmp/response für die Inspektion aus.

    
Jeff Alyanak 08.12.2015, 00:56
quelle
2

Sie müssen Ihre Funktion in einer Lambda-Funktion einrichten. Wie auf der Doumentation gesagt:

%Vor%
  

event - AWS Lambda verwendet diesen Parameter, um Ereignisdaten an den Handler zu übergeben. Dieser Parameter ist normalerweise vom Python-Diktattyp. Es kann auch list-, str-, int-, float- oder NoneType-Typ sein.

     

Kontext - AWS Lambda verwendet diesen Parameter, um Ihrem Handler Informationen zur Laufzeit bereitzustellen. Dieser Parameter ist vom Typ LambdaContext.

Testen des Codes als Lambda-Funktion:

  1. Speichern Sie die Datei
  2. Packen Sie die Datei und alle Abhängigkeiten in eine .zip-Datei Weitere Informationen
  3. Laden Sie die .zip-Datei über die Konsole oder AWS CLI hoch, um eine Lambda-Funktion zu erstellen. Weitere Informationen

Der CLI-Befehl zum Erstellen der Lambda-Funktion:

%Vor%

Weitere Informationen mit Lambda-Funktion: Klicken Sie hier und hier . :)

    
Jay Geeth 08.12.2015 05:33
quelle

Tags und Links