Esecuzione di API Gateway - AWS Serverless Application Model

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esecuzione di API Gateway

Per avviare un'istanza locale di Amazon API Gateway che puoi utilizzare per testare la funzionalità di richiesta/risposta HTTP, utilizza il comandosam start-api localeAWS SAM CLI. Questa funzionalità include la ricarica a caldo in modo da poter sviluppare e iterare rapidamente le tue funzioni.

Nota

Il ricaricamento a caldo si verifica quando vengono aggiornati solo i file modificati e lo stato dell'applicazione rimane lo stesso. Al contrario, il ricaricamento in tempo reale avviene quando l'intera applicazione viene aggiornata e lo stato dell'applicazione viene perso.

È necessario eseguire ilsam local start-api comando nella directory di progetto contenente la funzione che si desidera richiamare.

Per impostazione predefinita,AWS SAM utilizza integrazioniAWS Lambda proxy e supporta entrambiHttpApi i tipi diApi risorse. Per ulteriori informazioni sulle integrazioni proxy per i tipi diHttpApi risorse, consulta Lavorare con le integrazioniAWS Lambda proxy per le API HTTP nella API Gateway Developer Guide. Per ulteriori informazioni sulle integrazioni proxy con i tipi diApi risorse, consulta Comprendere l'integrazione del proxy Lambda API Gateway nella API Gateway Developer Guide.

Esempio:

sam local start-api

AWS SAMtrova automaticamente tutte le funzioni all'internoAWS SAM del modello che hannoHttpApi o sono state definite le fonti diApi eventi. Quindi, monta la funzione nei percorsi HTTP definiti.

Nell'Apiesempio seguente, laRatings funzione viene montataratings.py:handler() su/ratings perGET le richieste:

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

Di seguito puoi trovare un esempio diApi risposta:

// 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" }); }

File di variabili di ambiente

Per dichiarare localmente variabili di ambiente che sovrascrivono i valori definiti nei modelli, effettuate le seguenti operazioni:

  1. Creare un file JSON contenente le variabili d'ambiente da sovrascrivere.

  2. Usa l'--env-varsargomento per sovrascrivere i valori definiti nei tuoi modelli.

Dichiarazione di variabili d'ambiente

Per dichiarare variabili di ambiente che si applicano globalmente a tutte le risorse, specifica unParameters oggetto come il seguente:

{ "Parameters": { "TABLE_NAME": "localtable", "BUCKET_NAME": "testBucket", "STAGE": "dev" } }

Per dichiarare variabili di ambiente diverse per ogni risorsa, specifica gli oggetti per ogni risorsa come segue:

{ "MyFunction1": { "TABLE_NAME": "localtable", "BUCKET_NAME": "testBucket", }, "MyFunction2": { "TABLE_NAME": "localtable", "STAGE": "dev" } }

Quando si specificano gli oggetti per ogni risorsa, è possibile utilizzare i seguenti identificatori, elencati in ordine di precedenza dalla più alta alla più bassa:

  1. logical_id

  2. function_id

  3. function_name

  4. Identificatore di percorso completo

È possibile utilizzare entrambi i metodi precedenti per dichiarare le variabili di ambiente insieme in un unico file. In tal caso, le variabili di ambiente fornite per risorse specifiche hanno la precedenza sulle variabili di ambiente globali.

Salva le variabili di ambiente in un file JSON, ad esempioenv.json.

Sostituire i valori delle variabili di ambiente

Per sovrascrivere le variabili di ambiente con quelle definite nel tuo file JSON, usa l'--env-varsargomento con istart-api comandiinvoke or. Ad esempio:

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

Livelli

Se la tua applicazione include livelli, per informazioni su come eseguire il debug dei problemi con i layer sul tuo host locale, vediUtilizzo dei livelli.