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à.
APIGateway eseguito localmente con AWS SAM
L'esecuzione locale di Amazon API Gateway può offrire una serie di vantaggi. Ad esempio, l'esecuzione locale di API Gateway consente di testare gli API endpoint localmente prima della distribuzione nel AWS cloud. Se esegui prima il test localmente, spesso puoi ridurre i test e lo sviluppo nel cloud, il che può aiutare a ridurre i costi. Inoltre, l'esecuzione locale semplifica il debug.
Per avviare un'istanza locale di API Gateway da utilizzare per testare la funzionalità di HTTP richiesta/risposta, utilizza il sam local start-api
AWS SAM CLI comando. Questa funzionalità include il ricaricamento a caldo in modo da poter sviluppare e iterare rapidamente le funzioni.
Nota
Il ricaricamento a caldo avviene 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.
Per istruzioni sull'uso del sam local start-api
comando, vedere. Introduzione ai test con sam local start-api
Per impostazione predefinita, AWS SAM utilizza integrazioni AWS Lambda proxy e supporta sia i tipi di risorse che HttpApi
i tipi di Api
risorse. Per ulteriori informazioni sulle integrazioni proxy per i tipi di HttpApi
risorse, consulta Lavorare con le integrazioni AWS Lambda proxy HTTP APIs nella APIGateway Developer Guide. Per ulteriori informazioni sulle integrazioni proxy con i tipi di Api
risorse, consulta Understand API Gateway Lambda Proxy Integration nella Gateway Developer API Guide.
Esempio:
$
sam local start-api
AWS SAM trova automaticamente tutte le funzioni all'interno del AWS SAM modello che hanno HttpApi
o sono state definite fonti di Api
eventi. Quindi, monta la funzione nei HTTP percorsi definiti.
Nell'Api
esempio seguente, la Ratings
funzione viene montata ratings.py:handler()
su /ratings
per GET
le richieste:
Ratings: Type: AWS::Serverless::Function Properties: Handler: ratings.handler Runtime: python3.9 Events: Api: Type: Api Properties: Path: /ratings Method: get
Ecco un esempio di Api
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" }); }
Se modifichi il codice della funzione, esegui il sam build
comando for sam local start-api
per rilevare le modifiche.
File di variabili di ambiente
Per dichiarare localmente le variabili di ambiente che sovrascrivono i valori definiti nei modelli, procedi come segue:
-
Create un JSON file che contenga le variabili di ambiente da sovrascrivere.
-
Utilizzate l'
--env-vars
argomento per sovrascrivere i valori definiti nei modelli.
Dichiarazione delle variabili di ambiente
Per dichiarare variabili di ambiente che si applicano globalmente a tutte le risorse, specificate un Parameters
oggetto come il seguente:
{ "Parameters": { "TABLE_NAME": "localtable", "BUCKET_NAME": "amzn-s3-demo-bucket", "STAGE": "dev" } }
Per dichiarare variabili di ambiente diverse per ogni risorsa, specificate gli oggetti per ogni risorsa come segue:
{ "MyFunction1": { "TABLE_NAME": "localtable", "BUCKET_NAME": "amzn-s3-demo-bucket", }, "MyFunction2": { "TABLE_NAME": "localtable", "STAGE": "dev" } }
Quando si specificano oggetti per ogni risorsa, è possibile utilizzare i seguenti identificatori, elencati in ordine di precedenza dalla più alta alla più bassa:
logical_id
function_id
function_name
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 JSON file, ad esempioenv.json
.
Ignorare i valori delle variabili di ambiente
Per sovrascrivere le variabili di ambiente con quelle definite nel JSON file, utilizzate l'--env-vars
argomento con i comandi invoke orstart-api. Per esempio:
$
sam local start-api --env-vars env.json
Livelli
Se l'applicazione include livelli, per informazioni su come eseguire il debug dei problemi con i layer sull'host locale, consultaAumenta l'efficienza utilizzando i livelli Lambda con AWS SAM.