Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Lokal Lambda-Funktionen aufrufen mit AWS SAM
Das lokale Aufrufen einer Lambda-Funktion vor dem Testen oder Bereitstellen in der Cloud kann eine Reihe von Vorteilen haben. Es ermöglicht Ihnen, die Logik Ihrer Funktion schneller zu testen. Wenn Sie zuerst lokal testen, verringert sich die Wahrscheinlichkeit, dass Probleme beim Testen in der Cloud oder während der Bereitstellung erkannt werden, wodurch Sie unnötige Kosten vermeiden können. Darüber hinaus erleichtern lokale Tests das Debuggen.
Sie können Ihre Lambda-Funktion lokal aufrufen, indem Sie den sam local invoke Befehl verwenden und die logische ID der Funktion und eine Ereignisdatei angeben. sam local invokeakzeptiert auch stdin als Ereignis. Weitere Informationen zu Veranstaltungen finden Sie unter Ereignis im AWS Lambda Entwicklerhandbuch. Informationen zu den Formaten von Ereignisnachrichten verschiedener AWS Dienste finden Sie im AWS Lambda Entwicklerhandbuch unter Verwendung AWS Lambda mit anderen Diensten.
Anmerkung
Es wird nicht empfohlen, die lokalen Aufruffunktionen von SAM CLI in nicht vertrauenswürdigem Code zu verwenden. Um vollständig von Ihrer lokalen Umgebung isoliert zu sein, führen Sie den Code direkt im Lambda-Service aus.
Anmerkung
Der sam local invoke Befehl entspricht dem Befehl AWS Command Line Interface (AWS CLI). aws lambda invoke
Sie müssen den sam local invoke Befehl in dem Projektverzeichnis ausführen, das die Funktion enthält, die Sie aufrufen möchten.
Beispiele:
# Invoking function with event file $ sam local invoke "Ratings" -e event.json # Invoking function with event via stdin $ echo '{"message": "Hey, are you there?" }' | sam local invoke --event - "Ratings" # For more options $ sam local invoke --help
Umgebungsvariablendatei
Gehen Sie wie folgt vor, um Umgebungsvariablen lokal zu deklarieren, die die in Ihren Vorlagen definierten Werte überschreiben:
-
Erstellen Sie eine
.envJSON-Datei oder eine Datei, die die zu überschreibenden Umgebungsvariablen enthält. -
Verwenden Sie das
--env-varsArgument, um die in Ihren Vorlagen definierten Werte zu überschreiben.
Die --env-vars Option unterstützt zwei Dateiformate. Das Dateiformat wird anhand des Dateiinhalts automatisch erkannt.
Deklarieren von Umgebungsvariablen mit JSON
Um Umgebungsvariablen zu deklarieren, die global für alle Ressourcen gelten, geben Sie ein Parameters Objekt wie das Folgende an:
{ "Parameters": { "TABLE_NAME": "localtable", "BUCKET_NAME": "amzn-s3-demo-bucket", "STAGE": "dev" } }
Um unterschiedliche Umgebungsvariablen für jede Ressource zu deklarieren, geben Sie Objekte für jede Ressource wie folgt an:
{ "MyFunction1": { "TABLE_NAME": "localtable", "BUCKET_NAME": "amzn-s3-demo-bucket", }, "MyFunction2": { "TABLE_NAME": "localtable", "STAGE": "dev" } }
Bei der Angabe von Objekten für jede Ressource können Sie die folgenden Bezeichner verwenden, die in der Reihenfolge von höchster bis niedrigster Priorität aufgeführt sind:
-
logical_id -
function_id -
function_name -
Vollständige Pfadkennung
Sie können beide oben genannten Methoden zum Deklarieren von Umgebungsvariablen zusammen in einer einzigen Datei verwenden. Dabei haben Umgebungsvariablen, die Sie für bestimmte Ressourcen bereitgestellt haben, Vorrang vor globalen Umgebungsvariablen.
Speichern Sie Ihre Umgebungsvariablen in einer JSON-Datei, z. B. env.json
Deklarieren von Umgebungsvariablen mit .env-Dateien
Sie können auch eine .env Datei verwenden, um Umgebungsvariablen zu deklarieren. In einer .env Datei deklarierte Variablen gelten global für alle Funktionen und entsprechen dem Parameters Objekt im JSON-Format.
TABLE_NAME=localtable BUCKET_NAME=amzn-s3-demo-bucket STAGE=dev
Das .env Format unterstützt Kommentare (Zeilen, die mit beginnen#) und Werte in Anführungszeichen.
Anmerkung
Das .env Format unterstützt nur globale Umgebungsvariablen. Verwenden Sie das JSON-Format, um funktionsspezifische Umgebungsvariablen zu deklarieren.
Werte von Umgebungsvariablen überschreiben
Um Umgebungsvariablen mit denen zu überschreiben, die in Ihrer Umgebungsvariablendatei definiert sind, verwenden Sie das --env-vars Argument mit den start-api Befehlen invoke oder. Beispiel:
# Using a JSON file sam local invoke --env-vars env.json # Using a .env file sam local invoke --env-vars .env
Layer
Wenn Ihre Anwendung Ebenen enthält, finden Sie Informationen zum Debuggen von Problemen mit Layern auf Ihrem lokalen Host unterSteigern Sie die Effizienz mithilfe von Lambda-Schichten mit AWS SAM.
Weitere Informationen
Ein praktisches Beispiel für das lokale Aufrufen von Funktionen finden Sie in Modul 2 — Lokal ausführen