Als einer der von AWS bereitgestellten Dienste kann ein Dienst ohne Serververwaltung ausgeführt werden.
Wenn Sie beispielsweise Lambda nicht verwenden, wird der Prozess erst ausgeführt, nachdem Sie einen Server mit EC2 erstellt, die zur Ausführung des Prozesses erforderliche Middleware und Sprache installiert und die Umgebung festgelegt haben.
Lambda ermöglicht jedoch die Ausführung nur durch Schreiben eines Prozesses, ohne einen solchen Server bereitzustellen.
Dieser Wille ★ Sie müssen den Server nicht selbst verwalten und warten ★ Da Ihnen nur die Zeit in Rechnung gestellt wird, in der die Verarbeitung ausgeführt wird, können Sie die Kosten je nach Häufigkeit der Verarbeitung erheblich senken ★ Es ist sehr praktisch für die AWS-Hauptarchitektur, da es leicht mit anderen AWS-Diensten verknüpft werden kann. Es gibt einen Verdienst.
Es ist notwendig, einen Trigger zu setzen, um den geschriebenen Prozess auszuführen. Es kann mit allen AWS-Diensten verknüpft werden und wird normalerweise ausgeführt, wenn in CloudWatch ein Alarm auftritt, wenn Daten im Kinesis-Datenstrom vorhanden sind oder wenn eine Datei in S3 abgelegt wird.
Mit anderen Worten, Lambda ist ein Dienst, der funktioniert, wenn Sie nur ** auszuführende Bedingungen ** und ** auszuführende Prozesse ** schreiben.
Schreiben wir nun einen Prozess zum Hochladen der Datei auf s3 und bestätigen, dass sie hochgeladen wurde.
Lambda stellt die Funktion für jede Region ein. Es gibt kein Problem mit S3, aber wenn Sie eine Verbindung zu Diensten herstellen, die von anderen Regionen betroffen sind, wählen Sie dieselbe Region aus.
Dieses Mal werden wir Python 3.7 verwenden. Die Rolle sollte "Neue Rolle mit grundlegenden Lambda-Berechtigungen erstellen" lauten. Es ist kein Problem, vorhandene Rollen zu verwenden. In diesem Fall muss Lambda über die Berechtigung verfügen, Protokollgruppen für Triggerbedingungsdienste und Protokollausgabe in CloudWatch zu schreiben.
"Laufzeit" bezeichnet die Sprache der Verarbeitung. Ab dem 02.05.2020 können folgende Sprachen ausgewählt werden. ・ Java 11/8 ・ .NET Core2.1 (C # / PowerShell) ・ GO 1.x. · Weil. js 12. x / 10. x ・ Python 3.8 / 3.7 / 3.6 / 2.7
Dieses Mal führen wir es aus, wenn ein Objekt in s3 erstellt wird. Wenn das Triggermedium auf s3 eingestellt ist, gibt es die folgenden fünf Elemente. ·Eimer -Event-Typ (wenn die Datei PUT ist ..., wenn die Datei gelöscht wird ... usw.) -Prefix (Verzeichnispfad nach Bucket, Dateiname usw.) ・ Suffix (Dateiname, Erweiterung usw.)
Standardmäßig wird der Prozess in einer Datei namens lambda_function.py beschrieben.
import json
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
lambda_handler ist eine Funktion, die automatisch ausgeführt wird, wenn die in Lambda festgelegte Triggerbedingung erfüllt ist.
Bearbeiten Sie nach # TODO implement
und schreiben Sie den Prozess, den Sie ausführen möchten.
Dieses Mal werde ich versuchen, den Pfad und den Dateinamen anzuzeigen, in dem die Datei in s3 abgelegt wurde.
import json
def lambda_handler(event, context):
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
print (Bucket + '+ Key +' wurde im Bucket erstellt! ')
Das als Argument an lambda_handler übergebene event
enthält die Ereignisinformationen, die es ausgelöst haben, als Array.
Das Obige ruft den Bucket-Namen und den Dateipfad ab und zeigt ihn an.
Die Funktion selbst kann ausgeführt werden, indem die Datei in den vom Trigger angegebenen Pfad gestellt wird. Darüber hinaus ist es möglich, die Lambda-Funktion auf Pseudo-Weise auszuführen, indem der Wert, der "Ereignis" aus dem "Test" in der Abbildung unten eingibt, im JSON-Format eingestellt wird.
Darüber hinaus können Sie die Zielfunktion aus der CloudWatch-Protokollgruppe auswählen und von dort aus das Funktionsausführungsprotokoll überprüfen.
Ich konnte bestätigen, dass die Lambda-Funktion korrekt ausgeführt wurde! !!
Lambda verwendet die AWS-Umgebung. Wenn Sie eine einfache Verarbeitung durchführen möchten, wird dies in Bezug auf Kosten und Verwaltung dringend empfohlen. Ich war ein wenig besorgt, weil es keinen Platz gibt, um eine Erklärung zu schreiben, was die Funktion tut. Lassen Sie uns daher den leicht verständlichen Funktionsnamen und die Kommentare in diesem Prozess gründlich beschreiben und ein angenehmes Lambda-Leben führen! !!