Schreiben Sie die AWS Lambda-Funktion in Python

Derzeit ist JavaScript / Node.js die einzige Sprache, die in AWS Lambda als Lambda-Funktion verwendet werden kann. Aber einige Leute möchten in Python schreiben, deshalb habe ich versucht, das in Python geschriebene Skript auszuführen.

Aber es ist nicht schwer. Wir wissen, dass ein Skript, das als Lambda-Funktion ausgeführt wird, externe Befehle ausführen kann. In einer früheren Umfrage haben wir auch festgestellt, dass es in der Umgebung eine Python-Laufzeit gibt (siehe die Ergebnisse in Aufdecken von AWS Lambda).

Sie müssen also lediglich ein in Python geschriebenes Skript mit JavaScript in der Lambda-Funktion generieren und es mit child_process () als externen Befehl aufrufen.

Lass es uns jetzt machen.

Anstatt ein Skript in der Lambda-Funktion zu generieren, wird dieses Mal das zuvor vorbereitete Skript in S3 gespeichert und durch HTTP-Zugriff in der Umgebung der Lambda-Funktion erfasst und ausgeführt. Darüber hinaus wird beim Abrufen einer Datei über HTTP curl verwendet, da aus irgendeinem Grund in der Umgebung der Lambda-Funktion kein wget vorhanden ist.

Bereiten Sie zunächst das Python-Skript vor, das Sie ausführen möchten. Diesmal habe ich es versucht und es so aussehen lassen.

test.py


#! /usr/bin/python
print "Hello, Wordl!"

Geben Sie dies an S3 weiter und veröffentlichen Sie es, um den HTTP-Zugriff zu aktivieren.

Als nächstes folgt der Code der tatsächlich registrierten Lambda-Funktion.

index.js


exports.handler = function(event, context) {
    var exec = require('child_process').exec;
    
    var cmd = "curl -s https://s3-ap-northeast-1.amazonaws.com/<Eimername>/test.py > /tmp/test.py;chmod 755 /tmp/test.py;/tmp/test.py"
    var child = exec(cmd, function(error, stdout, stderr) {
        if (!error) {
            console.log('standard out: ' + stdout);
            console.log('standard error: ' + stderr);
            context.done();
        } else {
            console.log("error code: " + error.code + ", err: " + error);
            context.done(error,'lambda');
        }
    });
};

Ja, wie Sie vielleicht bemerkt haben, ist das vorherige Skript dasselbe. Ich ändere nur den externen Befehl, der ausgeführt werden soll. Die Befehle, die tatsächlich ausgeführt werden, führen einfach die folgenden Schritte in der angegebenen Reihenfolge aus.

  1. Lassen Sie ein Python-Skript mit curl ausführen und speichern Sie es in / tmp
  2. Erteilen Sie die Ausführungsberechtigung
  3. Führen Sie aus

Rufen wir nun die Lambda-Funktion auf.

2014-11-26T11:51:47.683Z	a0862c9f-7562-11e4-8f05-ebd8b45899f3	standard out: Hello, Wordl!

Oh, es wurde richtig ausgeführt und "Hallo Welt!" Wurde ausgegeben!

Unabhängig davon, ob es tatsächlich nützlich ist oder nicht, habe ich ein in Python geschriebenes Skript mit der Lambda-Funktion ausgeführt.

** Haftungsausschluss Dies ist eine individuelle Meinung, unabhängig von der Firma oder Organisation, zu der sie gehört. ** ** **

Recommended Posts

Schreiben Sie die AWS Lambda-Funktion in Python
[Python] Scraping in AWS Lambda
Schreiben Sie Python in MySQL
Schreiben Sie Pandec-Filter in Python
Erstellen Sie eine Funktion in Python
Schreiben Sie die Beta-Distribution in Python
Schreiben Sie Python in Rstudio (reticulate)
ntile (Dezil) -Funktion in Python
Nichtlineare Funktionsmodellierung in Python
Zeichne die Yin-Funktion in Python
Sofortige Funktion (Lüge) in Python
Stellen Sie die Python 3-Funktion mit Serverless Framework unter AWS Lambda bereit
[Python] Memo zur erneuten Verarbeitung (Exponential Backoff) in AWS Lambda
Schreiben Sie eine Dichotomie in Python
Zusammenfassung bei Verwendung von AWS Lambda (Python)
Definition des Funktionsargumenttyps in Python
Python-Funktion ①
Schreiben Sie ein JSON-Schema mit Python DSL
Schreiben Sie einen HTTP / 2-Server in Python
Schreiben Sie A * (A-Stern) -Algorithmen in Python
Messen Sie die Ausführungszeit von Funktionen in Python
Führen Sie Python planmäßig auf AWS Lambda aus
[Python] Machen Sie die Funktion zu einer Lambda-Funktion
Schreiben Sie Selentestcode in Python
Schreiben Sie ein Kreisdiagramm in Python
Schreiben Sie das Vim-Plugin in Python
Schreiben Sie eine Suche mit Tiefenpriorität in Python
Funktionssynthese und Anwendung in Python
Benachrichtigen Sie HipChat mit AWS Lambda (Python)
Schreiben Sie einen C-Sprach-Unit-Test in Python
Python-Funktion ②
Festlegen von CloudWatch-Ereignissen in der über Zappa bereitgestellten AWS Lambda-Funktion (WebAPI)
Best Practice für die Anmeldung im JSON-Format unter AWS Lambda / Python
[Python / AWS Lambda-Ebenen] Ich möchte nur Module in AWS Lambda-Ebenen wiederverwenden
Ich habe Node.js und Python beim Erstellen eines Miniaturbilds mit AWS Lambda verglichen
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
Verwenden Sie print in Python2 lambda expression
Vorsichtsmaßnahmen beim Beizen einer Funktion in Python
Schreiben Sie den Test in die Python-Dokumentzeichenfolge
Abrufen temporärer AWS-Anmeldeinformationen in PHP, Python
Schreiben Sie eine kurze Eigenschaftsdefinition in Python
Schreiben Sie die O_SYNC-Datei in C und Python
Schreiben Sie ein Caesar-Verschlüsselungsprogramm in Python
Lesen und schreiben Sie JSON-Dateien mit Python
Schreiben Sie eine einfache Giermethode in Python
Lambda-Funktion zur Erstellung eines AMI-Backups (Python)
[Python] Führen Sie Headless Chrome unter AWS Lambda aus
Schreiben Sie mit f2py ein Python-Modul in fortran
Schreiben Sie ein einfaches Vim-Plugin in Python 3
Stellen Sie mit AWS Lambda Python eine Verbindung zu s3 her
Wie schreibe ich Ruby to_s in Python
Zusammenfassung des Schreibens von AWS Lambda
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda