Integrazioni: Lambda, HTTP e Mock
Collegherete i metodi di API Gateway a integrazioni proxy Lambda, endpoint HTTP upstream e integrazioni mock per i test.
Integrazioni: Lambda, HTTP e Mock è una lezione AWS Solutions Architect gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AWS Solutions Architect, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AWS Solutions Architect include 4 lezioni in totale.
Panoramica dei tipi di integrazione di API Gateway
Ogni metodo di API Gateway richiede un’integrazione backend, ovvero il sistema che elabora la richiesta e restituisce una risposta. API Gateway supporta cinque tipi di integrazione: Lambda Proxy, Lambda Custom, HTTP Proxy, HTTP Custom e Mock. Le HTTP API supportano solo Lambda Proxy e HTTP Proxy. Le REST API supportano tutti e cinque i tipi. La scelta dell’integrazione corretta determina il livello di controllo disponibile sulla trasformazione della richiesta e della risposta.
Integrazione Lambda Proxy
Con l’integrazione Lambda Proxy, API Gateway passa a Lambda l’intera richiesta HTTP sotto forma di oggetto evento strutturato, che include intestazioni, query string, parametri del percorso, corpo e contesto. La funzione Lambda deve restituire un oggetto risposta formattato correttamente con statusCode, headers e body. Questo è il pattern più semplice e più comune: non sono necessari mapping template e Lambda controlla l’intera risposta.
def lambda_handler(event, context):
# event.httpMethod, event.path, event.queryStringParameters
# event.headers, event.body
user_id = event['pathParameters']['userId']
return {
'statusCode': 200,
'headers': {'Content-Type': 'application/json'},
'body': '{"userId": "' + user_id + '", "name": "Alice"}'
}Integrazione Lambda non-Proxy (Custom)
Con l’integrazione Lambda Non-Proxy (custom), API Gateway utilizza i mapping template (Apache Velocity Template Language, VTL) per trasformare la richiesta prima di inviarla a Lambda e trasforma la risposta di Lambda prima di restituirla al client. La funzione Lambda riceve un payload personalizzato e pulito, non l’evento grezzo di API Gateway. Questo separa gli aspetti di trasporto dalla logica di business, ma richiede la manutenzione dei template VTL. Utilizzi l’integrazione custom quando desidera una separazione rigorosa tra il contratto API e quello del backend.
## Integration Request Mapping Template (VTL)
#set($inputRoot = $input.path('$'))
{
'userId': '$input.params('userId')',
'action': '$inputRoot.action',
'timestamp': '$context.requestTime'
}Integrazione HTTP Proxy
L’integrazione HTTP Proxy inoltra direttamente le richieste a un endpoint HTTP esterno (che può essere un’istanza EC2, un ALB, un server on-premises o qualsiasi URL pubblico) senza trasformazioni. API Gateway trasferisce la richiesta e restituisce al client la risposta del backend. È ideale per migrare backend REST esistenti dietro API Gateway e aggiungere throttling, monitoraggio e chiavi API senza modificare il codice del backend. Supporta backend HTTPS con verifica del certificato.
# Create HTTP proxy integration via REST API
aws apigateway put-integration \
--rest-api-id 'abc123' \
--resource-id 'xyz789' \
--http-method GET \
--type HTTP_PROXY \
--integration-http-method GET \
--uri 'https://my-backend.example.com/api/users/{userId}'Integrazione HTTP Custom (non-Proxy)
L’integrazione HTTP Custom inoltra anch’essa le richieste a un endpoint HTTP esterno, ma utilizza mapping template per trasformare sia la richiesta diretta al backend sia la risposta restituita. È utile quando l’interfaccia di API Gateway e l’API backend hanno contratti diversi: può convertire una chiamata REST API in SOAP legacy o in un formato personalizzato e trasformare la risposta del backend in una struttura JSON pulita per il client. Questo aggiunge complessità, ma offre il massimo controllo per le integrazioni legacy.
Integrazione con i servizi AWS
L’integrazione con un servizio AWS connette direttamente API Gateway ai servizi AWS senza un intermediario Lambda. Ad esempio, può configurare un endpoint POST che scrive direttamente un messaggio in SQS, pubblica un messaggio in SNS o avvia un’esecuzione di Step Functions. In questo modo riduce la latenza ed elimina i costi delle funzioni Lambda per le semplici operazioni di routing. L’integrazione richiede la configurazione di un ruolo IAM e di mapping template per formattare correttamente la chiamata all’API AWS.
# Direct API Gateway → SQS integration
# Integration Request URI:
https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue
# Integration Request Body Mapping Template:
Action=SendMessage&MessageBody=$input.bodyIntegrazione Mock per sviluppo e test
L'integrazione Mock configura API Gateway affinché restituisca una risposta predefinita senza chiamare alcun backend. La risposta viene definita nel template di mappatura della risposta di integrazione. Le integrazioni Mock sono ideali per: sviluppare l'API prima che il backend sia pronto (i team frontend possono iniziare immediatamente), testare le configurazioni dell'API con test unitari, restituire intestazioni CORS standard o fornire uno stub per partner di terze parti durante lo sviluppo. Gli endpoint Mock possono anche essere utilizzati per bloccare versioni deprecate dell'API restituendo 410 Gone.
# Integration Response for Mock
# Integration Response Mapping Template:
{
'statusCode': 200,
'message': 'This is a mock response',
'timestamp': '$context.requestTime'
}
# Method Response: map status code 200 to this templateConfigurazione CORS in API Gateway
CORS (Cross-Origin Resource Sharing) deve essere abilitato quando un client browser su un dominio chiama l'API su un altro dominio. HTTP API offre una configurazione CORS con un solo clic; REST API richiede la creazione di un metodo OPTIONS con un'integrazione Mock che restituisca le intestazioni CORS necessarie (Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers). Anche l'integrazione proxy Lambda richiede che Lambda restituisca le intestazioni CORS nella risposta.
# HTTP API CORS config (simple)
aws apigatewayv2 update-api \
--api-id 'abc123' \
--cors-configuration '{
"AllowOrigins": ["https://myapp.example.com"],
"AllowMethods": ["GET", "POST", "OPTIONS"],
"AllowHeaders": ["Content-Type", "Authorization"]
}'Validazione delle richieste in REST API
REST API supporta la validazione delle richieste: API Gateway può verificare che i parametri obbligatori della query string, le intestazioni e lo schema del corpo della richiesta siano presenti e formattati correttamente, prima di invocare il backend. In questo modo si riducono le invocazioni Lambda non necessarie dovute a richieste non valide e vengono restituiti automaticamente errori 400 standardizzati. Definisca un modello di richiesta usando JSON Schema e lo associ al metodo per abilitare la validazione del corpo. La validazione delle richieste non è disponibile in HTTP API.
Timeout delle integrazioni
API Gateway ha un timeout di integrazione predefinito di 29 secondi per REST API e HTTP API (il valore massimo per REST API, fisso per il proxy di HTTP API). Se il backend impiega più di 29 secondi, API Gateway restituisce un errore 504 Gateway Timeout. Ciò significa che le funzioni Lambda invocate in modo sincrono tramite API Gateway devono completare l'esecuzione entro 29 secondi, anche se Lambda supporta timeout fino a 15 minuti. Per le operazioni di lunga durata, utilizzi un modello asincrono: API Gateway attiva Lambda, che avvia un processo asincrono e restituisce immediatamente un ID del processo.
Scelta del tipo di integrazione corretto
Guida alla scelta dei tipi di integrazione: Lambda Proxy: il più comune e semplice, con pieno controllo della richiesta in Lambda; Lambda Custom: quando è necessaria la trasformazione di richieste e risposte nel livello gateway; HTTP Proxy: per backend HTTP esistenti e scenari di migrazione; HTTP Custom: per la traduzione di formati API legacy; AWS Service: per eliminare Lambda nel semplice instradamento verso SQS/SNS/DynamoDB; Mock: per stub di sviluppo e preflight CORS. Per l'esame SAA-C03, Lambda Proxy e HTTP Proxy sono i pattern più frequentemente verificati.
Verifica rapida
Verifichi la Sua comprensione dei concetti AWS Solutions Architect (SAA-C03) trattati in questa lezione.
Riepilogo della lezione
In questa lezione ha imparato che l'integrazione Lambda Proxy passa l'intera richiesta a Lambda, che controlla la risposta: è l'integrazione più semplice e comune; HTTP Proxy inoltra le richieste a backend HTTP esistenti per aggiungere funzionalità di API Gateway senza modificare il backend; l'integrazione Mock restituisce risposte predefinite per lo sviluppo e i test del frontend senza alcuna infrastruttura backend. Nella prossima lezione esamineremo l'autorizzazione di API Gateway con IAM, gli autorizzatori Lambda e Cognito.
Domande Frequenti
La lezione «Integrazioni: Lambda, HTTP e Mock» è gratuita?
Sì — il testo completo di «Integrazioni: Lambda, HTTP e Mock» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AWS Solutions Architect, passa a CoddyKit PRO. Il corso AWS Solutions Architect include 4 lezioni in totale.
Cosa imparerò in «Integrazioni: Lambda, HTTP e Mock»?
Collegherete i metodi di API Gateway a integrazioni proxy Lambda, endpoint HTTP upstream e integrazioni mock per i test. Eserciti AWS Solutions Architect con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare AWS Solutions Architect?
Non è richiesta alcuna esperienza precedente. AWS Solutions Architect su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Integrazioni: Lambda, HTTP e Mock»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione AWS Solutions Architect?
Sì. Ogni lezione AWS Solutions Architect include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- REST API vs HTTP API vs WebSocket API
- Integrazioni: Lambda, HTTP e Mock
- Autorizzazione: IAM, Lambda Authorizer e Cognito
- Throttling, caching e piani di utilizzo