Integraatiot: Lambda, HTTP ja Mock
Yhdistätte API Gateway -metodit Lambdan proxy-integraatioihin, ylemmän tason HTTP-päätepisteisiin ja testaukseen tarkoitettuihin Mock-integraatioihin.
Integraatiot: Lambda, HTTP ja Mock on ilmainen Cloud & IT Cert Prep-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Cloud & IT Cert Prep-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cloud & IT Cert Prep-kurssilla on yhteensä 4 oppituntia.
API Gatewayn integraatiotyyppien yleiskatsaus
Jokainen API Gateway -menetelmä tarvitsee taustajärjestelmäintegraation – järjestelmän, joka käsittelee pyynnön ja palauttaa vastauksen. API Gateway tukee viittä integraatiotyyppiä: Lambda Proxy, Lambda Custom, HTTP Proxy, HTTP Custom ja Mock. HTTP API:t tukevat vain Lambda Proxy- ja HTTP Proxy -integraatioita. REST API:t tukevat kaikkia viittä. Oikean integraation valinta määrittää, kuinka paljon hallintaa teillä on pyyntöjen ja vastausten muuntamiseen.
Lambda Proxy -integraatio
Lambda Proxy -integraatiossa API Gateway välittää koko HTTP-pyynnön Lambdalle jäsenneltynä tapahtumaobjektina, joka sisältää otsakkeet, kyselymerkkijonot, polkuparametrit, rungon ja kontekstin. Lambda-funktionne vastuulla on palauttaa oikein muotoiltu vastausobjekti, joka sisältää kentät statusCode, headers ja body. Tämä on yksinkertaisin ja yleisin malli – kuvausmalleja ei tarvita, ja Lambda hallitsee koko vastauksen.
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 (Custom) -integraatio
Lambda Non-Proxy -integraatiossa (mukautettu integraatio) API Gateway käyttää kuvausmalleja (Apache Velocity Template Language, VTL) muuntamaan pyynnön ennen sen lähettämistä Lambdalle ja muuntaa Lambdan vastauksen ennen sen palauttamista asiakkaalle. Lambda-funktionne vastaanottaa siistin, mukautetun hyötykuorman – ei API Gatewayn raakaa tapahtumaa. Tämä erottaa siirtokerroksen vastuut liiketoimintalogiikasta, mutta edellyttää VTL-mallien ylläpitoa. Käyttäkää mukautettua integraatiota, kun haluatte API:n ja taustajärjestelmän välille tiukasti erilliset sopimukset.
## Integration Request Mapping Template (VTL)
#set($inputRoot = $input.path('$'))
{
'userId': '$input.params('userId')',
'action': '$inputRoot.action',
'timestamp': '$context.requestTime'
}HTTP Proxy -integraatio
HTTP Proxy -integraatio välittää pyynnöt suoraan ulkoiseen HTTP-päätepisteeseen (joka voi olla EC2-instanssi, ALB, paikallinen palvelin tai mikä tahansa julkinen URL-osoite) ilman muunnoksia. API Gateway välittää pyynnön sellaisenaan ja palauttaa taustajärjestelmän vastauksen asiakkaalle. Tämä sopii erinomaisesti olemassa olevien REST-taustajärjestelmien siirtämiseen API Gatewayn taakse, jotta niihin voidaan lisätä liikenteen rajoitus, valvonta ja API-avaimet muuttamatta taustajärjestelmän koodia. HTTPS-taustajärjestelmiä tuetaan varmenteen tarkistuksella.
# 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 (Non-Proxy) -integraatio
HTTP Custom -integraatio välittää pyynnöt myös ulkoiseen HTTP-päätepisteeseen, mutta käyttää kuvausmalleja sekä taustajärjestelmään lähetettävän pyynnön että palautettavan vastauksen muuntamiseen. Tämä on hyödyllistä, kun API Gatewayn rajapinnalla ja taustajärjestelmän API:lla on erilaiset sopimukset – REST API -kutsu voidaan muuntaa esimerkiksi vanhan SOAP-palvelun tai mukautetun muodon mukaiseksi, ja taustajärjestelmän vastaus voidaan muuntaa asiakkaalle selkeäksi JSON-rakenteeksi. Tämä lisää monimutkaisuutta, mutta tarjoaa eniten hallintaa vanhoissa integraatioissa.
AWS-palveluintegraatio
AWS Service -integraatio yhdistää API Gatewayn suoraan AWS-palveluihin ilman Lambda-välittäjää. Voitte esimerkiksi määrittää POST-päätepisteen, joka kirjoittaa viestin suoraan SQS:ään, julkaisee viestin SNS:ään tai käynnistää Step Functions -suorituksen. Tämä vähentää viivettä ja poistaa Lambda-funktion kustannukset yksinkertaisissa reititystoiminnoissa. Integraatio edellyttää IAM-roolin määritystä ja kuvausmalleja AWS API -kutsun muotoilemiseksi oikein.
# 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-integraatio kehitystä ja testausta varten
Mock-integraatio määrittää API Gatewayn palauttamaan ennalta määritetyn vastauksen kutsumatta mitään taustajärjestelmää. Vastaus määritetään integraation vastauskartoituksen mallissa. Mock-integraatiot sopivat erinomaisesti seuraaviin tarkoituksiin: API:n kehittäminen ennen taustajärjestelmän valmistumista (frontend-tiimit voivat aloittaa heti), API-määritysten yksikkötestaus, vakiomuotoisten CORS-otsakkeiden palauttaminen sekä kolmannen osapuolen kumppaneille tarjottavan stubin toteuttaminen kehityksen aikana. Mock-päätepisteillä voidaan myös estää vanhentuneiden API-versioiden käyttö palauttamalla 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-määritys API Gatewayssä
CORS (Cross-Origin Resource Sharing) on otettava käyttöön, kun yhden toimialueen selainasiakas kutsuu toisessa toimialueessa olevaa APIa. HTTP APIssa CORS-määritys voidaan tehdä yhdellä napsautuksella. REST APIssa on luotava OPTIONS-metodi, jonka Mock-integraatio palauttaa vaaditut CORS-otsakkeet (Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers). Lambda-välityspalvelinintegraatiossa Lambdan on lisäksi palautettava CORS-otsakkeet vastauksessaan.
# 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"]
}'REST APIn pyyntöjen validointi
REST API tukee pyyntöjen validointia: API Gateway voi tarkistaa, että pakolliset kyselymerkkijonon parametrit, otsakkeet ja pyynnön rungon skeema ovat olemassa ja oikeassa muodossa ennen taustajärjestelmän kutsumista. Tämä vähentää virheellisten pyyntöjen aiheuttamia tarpeettomia Lambda-kutsuja ja palauttaa standardoidut 400-virheet automaattisesti. Määritä pyyntömalli JSON Scheman avulla ja liitä se metodiin rungon validoinnin ottamiseksi käyttöön. Pyyntöjen validointi ei ole käytettävissä HTTP APIssa.
Integraatioiden aikakatkaisut
API Gatewayn oletusarvoinen integraation aikakatkaisu on REST APIssa ja HTTP APIssa 29 sekuntia (REST APIn enimmäisarvo ja HTTP APIn välityspalvelimen kiinteä arvo). Jos taustajärjestelmä kestää yli 29 sekuntia, API Gateway palauttaa 504 Gateway Timeout -virheen. Tämä tarkoittaa, että API Gatewayn kautta synkronisesti kutsuttujen Lambda-funktioiden on valmistuttava 29 sekunnin kuluessa, vaikka Lambda itsessään tukee 15 minuutin aikakatkaisua. Pitkäkestoisissa toiminnoissa kannattaa käyttää asynkronista mallia: API Gateway käynnistää Lambdan, joka aloittaa asynkronisen työn ja palauttaa työn tunnisteen heti.
Sopivan integraatiotyypin valitseminen
Integraatiotyyppien valintaohje: Lambda Proxy: yleisin ja yksinkertaisin vaihtoehto, jossa Lambdalla on täysi pyyntöjen hallinta; Lambda Custom: kun tarvitset pyyntöjen tai vastausten muunnoksia yhdyskäytävätasolla; HTTP Proxy: olemassa oleville HTTP-taustajärjestelmille ja siirtotilanteisiin; HTTP Custom: vanhan API-muodon muuntamiseen; AWS Service: Lambdan poistamiseen yksinkertaisesta reitityksestä SQS:ään, SNS:ään tai DynamoDB:hen; Mock: kehityksen stub-toteutuksiin ja CORS-esipyyntöihin. SAA-C03-kokeessa yleisimmin testattavat mallit ovat Lambda Proxy ja HTTP Proxy.
Pikatarkistus
Testaa tämän oppitunnin AWS Solutions Architect (SAA-C03) -käsitteiden ymmärtämisesi.
Oppitunnin yhteenveto
Tässä oppitunnissa opit, että Lambda Proxy -integraatio välittää koko pyynnön Lambdalle, joka hallitsee vastauksen. Se on yksinkertaisin ja yleisin integraatio. HTTP Proxy välittää pyynnöt olemassa oleville HTTP-taustajärjestelmille, jolloin voit lisätä API Gatewayn ominaisuuksia muuttamatta taustajärjestelmää. Mock-integraatio palauttaa ennalta määritettyjä vastauksia frontend-kehitystä ja testausta varten ilman taustajärjestelmäinfrastruktuuria. Seuraavaksi tutustumme API Gatewayn valtuutukseen IAM:n, Lambda-valtuuttajien ja Cogniton avulla.
Opi Cloud & IT Cert Prep tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 150
- Oppitunnit
- 600
Usein kysytyt kysymykset
Onko oppitunti ”Integraatiot: Lambda, HTTP ja Mock” ilmainen?
Kyllä – oppitunnin ”Integraatiot: Lambda, HTTP ja Mock” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Cloud & IT Cert Prep-kurssin, päivitä CoddyKit PROhon. Cloud & IT Cert Prep-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Integraatiot: Lambda, HTTP ja Mock”?
Yhdistätte API Gateway -metodit Lambdan proxy-integraatioihin, ylemmän tason HTTP-päätepisteisiin ja testaukseen tarkoitettuihin Mock-integraatioihin. Harjoittelet Cloud & IT Cert Prep-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Cloud & IT Cert Prep-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Cloud & IT Cert Prep-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Integraatiot: Lambda, HTTP ja Mock”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Cloud & IT Cert Prep-oppitunnilla?
Kyllä. Jokainen Cloud & IT Cert Prep-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- REST API, HTTP API ja WebSocket API
- Integraatiot: Lambda, HTTP ja Mock
- Valtuutus: IAM, Lambda Authorizers ja Cognito
- Rajoittaminen, välimuisti ja käyttösuunnitelmat