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 API ausgeführtes Gateway mit AWS SAM
Der lokale Betrieb von Amazon API Gateway kann eine Vielzahl von Vorteilen haben. Wenn Sie API Gateway beispielsweise lokal ausführen, können Sie API Endgeräte 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 wiederum zur Kostensenkung beitragen kann. Darüber hinaus erleichtert die lokale Ausführung das Debuggen.
Um eine lokale API Gateway-Instanz zu starten, die Sie zum Testen der HTTP Anforderungs-/Antwortfunktionen verwenden können, verwenden Sie den sam local start-api
AWS SAM CLI Befehl. 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 APIGateway Developer Guide. Weitere Informationen zu Proxyintegrationen mit Api
Ressourcentypen finden Sie unter Grundlegendes API zur Gateway Lambda-Proxyintegration im APIGateway 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:
-
Erstellen Sie eine JSON Datei, die die zu überschreibenden Umgebungsvariablen enthält.
-
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": "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ändiger Pfadbezeichner
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.