Integrationer: Lambda, HTTP og Mock
Forbind API Gateway-metoder med Lambda-proxyintegrationer, upstream-HTTP-endpoints og mock-integrationer til test.
Integrationer: Lambda, HTTP og Mock er en gratis Cloud & IT Cert Prep-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cloud & IT Cert Prep, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.
Oversigt over API Gateway-integrationstyper
Hver API Gateway-metode har brug for en backend-integration – det system, der behandler forespørgslen og returnerer et svar. API Gateway understøtter fem integrationstyper: Lambda Proxy, Lambda Custom, HTTP Proxy, HTTP Custom og Mock. HTTP API'er understøtter kun Lambda Proxy og HTTP Proxy. REST API'er understøtter alle fem. Valget af den rigtige integration afgør, hvor meget kontrol du har over transformationen af forespørgsler og svar.
Lambda Proxy-integration
Med Lambda Proxy-integration sender API Gateway hele HTTP-forespørgslen til Lambda som et struktureret hændelsesobjekt, der indeholder headere, forespørgselsstrenge, sti-parametre, brødtekst og kontekst. Din Lambda-funktion er ansvarlig for at returnere et korrekt formateret svarobjekt med statusCode, headers og body. Dette er det enkleste og mest almindelige mønster – der kræves ingen mapping-skabeloner, og din Lambda styrer hele svaret.
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"}'
}Lambda Non-Proxy-integration (brugerdefineret)
Med Lambda Non-Proxy (brugerdefineret integration) bruger API Gateway mapping-skabeloner (Apache Velocity Template Language, VTL) til at transformere forespørgslen, før den sendes til Lambda, og transformerer Lambdas svar, før det returneres til klienten. Din Lambda-funktion modtager en ren, brugerdefineret payload – ikke den rå API Gateway-hændelse. Dette adskiller transportrelaterede forhold fra forretningslogikken, men kræver vedligeholdelse af VTL-skabeloner. Brug en brugerdefineret integration, når du ønsker en streng adskillelse mellem API- og backend-kontrakten.
## Integration Request Mapping Template (VTL)
#set($inputRoot = $input.path('$'))
{
'userId': '$input.params('userId')',
'action': '$inputRoot.action',
'timestamp': '$context.requestTime'
}HTTP Proxy-integration
HTTP Proxy-integrationen videresender forespørgsler direkte til et eksternt HTTP-slutpunkt (det kan være en EC2-instans, en ALB, en lokal server eller en offentlig URL) uden transformation. API Gateway sender forespørgslen videre og returnerer backendens svar til klienten. Dette er ideelt til at flytte eksisterende REST-backends bag API Gateway for at tilføje begrænsning af hastighed, overvågning og API-nøgler uden at ændre backendkoden. Understøtter HTTPS-backends med certifikatverificering.
# 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}'HTTP Custom-integration (ikke-proxy)
HTTP Custom-integrationen videresender også til et eksternt HTTP-slutpunkt, men bruger mapping-skabeloner til at transformere både forespørgslen til backendenden og svaret derfra. Dette er nyttigt, når API Gateway-grænsefladen og backend-API'et har forskellige kontrakter – du kan oversætte et REST API-kald til et ældre SOAP- eller brugerdefineret format og transformere backendens svar tilbage til en ren JSON-struktur for klienten. Det øger kompleksiteten, men giver den største kontrol ved integration med ældre systemer.
AWS-tjenesteintegration
AWS Service-integrationen forbinder API Gateway direkte med AWS-tjenester uden en Lambda-mellemmand. Du kan f.eks. konfigurere et POST-slutpunkt, der direkte skriver en meddelelse til SQS, publicerer til SNS eller starter en Step Functions-kørsel. Dette reducerer latenstiden og eliminerer omkostninger til Lambda-funktioner ved simple routinghandlinger. Integrationen kræver konfiguration af en IAM-rolle og mapping-skabeloner til at formatere AWS API-kaldet korrekt.
# 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.bodyMock-integration til udvikling og test
Mock-integration konfigurerer API Gateway til at returnere et foruddefineret svar uden at kalde en backend. Du definerer svaret i skabelonen til integrationens svarmapping. Mock-integrationer er ideelle til: API-udvikling, før backenden er bygget (frontend-teams kan gå i gang med det samme), enhedstest af API-konfigurationer, returnering af standardiserede CORS-headere eller levering af en stub til tredjepartspartnere under udviklingen. Mock-endpoints kan også bruges til at blokere forældede API-versioner ved at returnere 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 templateCORS-konfiguration i API Gateway
CORS (Cross-Origin Resource Sharing) skal aktiveres, når en browserklient på ét domæne kalder dit API på et andet domæne. HTTP API har konfiguration af CORS med ét klik; REST API kræver, at du opretter en OPTIONS-metode med en mock-integration, der returnerer de nødvendige CORS-headere (Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers). Lambda-proxy-integration kræver også, at din Lambda-funktion returnerer CORS-headere i sit svar.
# 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"]
}'Validering af anmodninger i REST API
REST API understøtter validering af anmodninger: API Gateway kan validere, at påkrævede querystring-parametre, headere og skemaet for anmodningens body findes og har det korrekte format – før backenden kaldes. Det reducerer unødvendige Lambda-kald som følge af fejlformaterede anmodninger og returnerer automatisk standardiserede 400-fejl. Definer en anmodningsmodel ved hjælp af JSON Schema, og knyt den til metoden for at aktivere validering af body. Validering af anmodninger er ikke tilgængelig i HTTP API.
Timeouts for integrationer
API Gateway har som standard en integrationstimeout på 29 sekunder for REST API og HTTP API (maksimum for REST API, fast værdi for HTTP API-proxy). Hvis din backend tager længere tid end 29 sekunder, returnerer API Gateway en 504 Gateway Timeout-fejl. Det betyder, at Lambda-funktioner, der kaldes synkront gennem API Gateway, skal være færdige inden for 29 sekunder – selv om Lambda i sig selv understøtter timeouts på 15 minutter. Til langvarige operationer skal du bruge et asynkront mønster: API Gateway udløser Lambda, som starter et asynkront job og straks returnerer et job-id.
Valg af den rigtige integrationstype
Vejledning til valg af integrationstype: Lambda Proxy: mest almindelig, enklest og med fuld kontrol over anmodningen i Lambda; Lambda Custom: når du har brug for transformation af anmodning og svar i gateway-laget; HTTP Proxy: til eksisterende HTTP-backends og migreringsscenarier; HTTP Custom: til oversættelse af ældre API-formater; AWS Service: for at undgå Lambda ved enkel routing til SQS/SNS/DynamoDB; Mock: til stubs under udvikling og CORS-preflight. Til SAA-C03-eksamen er Lambda Proxy og HTTP Proxy de integrationsmønstre, der oftest testes.
Hurtigt tjek
Test din forståelse af begreberne fra AWS Solutions Architect (SAA-C03) i denne lektion.
Opsummering af lektionen
I denne lektion lærte du: Integrationen Lambda Proxy videresender hele anmodningen til Lambda, som styrer svaret – den enkleste og mest almindelige integration; HTTP Proxy videresender anmodninger til eksisterende HTTP-backends, så du kan tilføje API Gateway-funktioner uden at ændre backenden; og Mock-integration returnerer foruddefinerede svar til frontend-udvikling og test uden backend-infrastruktur. Nu ser vi nærmere på autorisation i API Gateway med IAM, Lambda-authorizers og Cognito.
Lær Cloud & IT Cert Prep med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 150
- Lektioner
- 600
Ofte stillede spørgsmål
Er lektionen “Integrationer: Lambda, HTTP og Mock” gratis?
Ja — hele teksten til “Integrationer: Lambda, HTTP og Mock” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cloud & IT Cert Prep-kurset, skal du opgradere til CoddyKit PRO. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Integrationer: Lambda, HTTP og Mock”?
Forbind API Gateway-metoder med Lambda-proxyintegrationer, upstream-HTTP-endpoints og mock-integrationer til test. Du øver dig i Cloud & IT Cert Prep med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Cloud & IT Cert Prep?
Der kræves ingen tidligere erfaring. Cloud & IT Cert Prep på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Integrationer: Lambda, HTTP og Mock”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Cloud & IT Cert Prep-lektion?
Ja. Alle Cloud & IT Cert Prep-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- REST API vs HTTP API vs WebSocket API
- Integrationer: Lambda, HTTP og Mock
- Autorisation: IAM, Lambda Authorizers og Cognito
- Throttling, caching og brugsplaner