Lokal ausgeführtes API Gateway mit AWS SAM - AWS Serverless Application Model

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 ausgeführtes API Gateway mit AWS SAM

Die lokale Ausführung von Amazon API Gateway kann eine Vielzahl von Vorteilen haben. Wenn Sie API Gateway lokal ausführen, können Sie beispielsweise API-Endpunkte vor der Bereitstellung in der AWS Cloud lokal testen. Wenn Sie zuerst lokal testen, können Sie häufig weniger Tests und Entwicklungen in der Cloud durchführen, was zur Kostensenkung beitragen kann. Darüber hinaus erleichtert die lokale Ausführung das Debuggen.

Verwenden Sie den Befehl, um eine lokale Instanz von API Gateway zu starten, mit der Sie die HTTP-Anforderungs-/Antwortfunktionalität testen können. sam local start-api AWS SAMCLI Diese Funktion bietet Hot-Reloading, sodass Sie Ihre Funktionen schnell weiterentwickeln und überarbeiten können.

Anmerkung

Beim erneuten Laden im laufenden Betrieb werden nur die Dateien aktualisiert, die sich geändert haben, und der Status der Anwendung bleibt unverändert. Im Gegensatz dazu wird beim Live-Reloading die gesamte Anwendung aktualisiert und der Status der Anwendung geht verloren.

Anweisungen zur Verwendung des sam local start-api Befehls finden Sie unter. Einführung in das Testen mit sam local start-api

AWS SAM Verwendet standardmäßig AWS Lambda Proxyintegrationen und unterstützt sowohl HttpApi Api Ressourcentypen als auch. Weitere Informationen zu Proxyintegrationen für HttpApi Ressourcentypen finden Sie unter Arbeiten mit AWS Lambda Proxyintegrationen für HTTP-APIs im API Gateway Developer Guide. Weitere Informationen zu Proxyintegrationen mit Api Ressourcentypen finden Sie unter Grundlegendes zur API Gateway Lambda-Proxyintegration im API Gateway Developer Guide.

Beispiel:

$ sam local start-api

AWS SAM findet automatisch alle Funktionen in Ihrer AWS SAM Vorlage, für die Api Ereignisquellen HttpApi definiert wurden. Dann hängt es die Funktion an den definierten HTTP-Pfaden ein.

Im folgenden Api Beispiel wird die Ratings Funktion ratings.py:handler() bei For-Anfragen eingebunden/ratings: GET

Ratings: Type: AWS::Serverless::Function Properties: Handler: ratings.handler Runtime: python3.9 Events: Api: Type: Api Properties: Path: /ratings Method: get

Hier ist ein Beispiel für eine Api Antwort:

// Example of a Proxy Integration response exports.handler = (event, context, callback) => { callback(null, { statusCode: 200, headers: { "x-custom-header" : "my custom header value" }, body: "hello world" }); }

Wenn Sie den Code Ihrer Funktion ändern, führen Sie den sam build Befehl for aus, sam local start-api um Ihre Änderungen zu erkennen.

Umgebungsvariablendatei

Gehen Sie wie folgt vor, um Umgebungsvariablen lokal zu deklarieren, die die in Ihren Vorlagen definierten Werte überschreiben:

  1. Erstellen Sie eine JSON-Datei, die die zu überschreibenden Umgebungsvariablen enthält.

  2. Verwenden Sie das --env-vars Argument, um die in Ihren Vorlagen definierten Werte zu überschreiben.

Umgebungsvariablen deklarieren

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": "testBucket", "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": "testBucket", }, "MyFunction2": { "TABLE_NAME": "localtable", "STAGE": "dev" } }

Wenn Sie Objekte für jede Ressource angeben, können Sie die folgenden Bezeichner verwenden, die in der Reihenfolge von höchster bis niedrigster Priorität aufgeführt sind:

  1. logical_id

  2. function_id

  3. function_name

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

Werte von Umgebungsvariablen überschreiben

Um Umgebungsvariablen mit den in Ihrer JSON-Datei definierten Variablen zu überschreiben, verwenden Sie das --env-vars Argument mit den start-api Befehlen invoke oder. Beispielsweise:

$ sam local start-api --env-vars env.json

Ebenen

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.