AWS backend-kehittäjille (EC2, S3, RDS, Lambda) · Oppitunti

API Gateway Lambda-päätepisteille

Rakentakaa skaalautuvia ja turvallisia RESTful-rajapintoja integroimalla AWS Lambda Amazon API Gatewayhin sekä hallitkaa todennusta ja pyyntöjen ja vastausten muunnoksia.

Oppitunti 3/412 vaihetta

API Gateway Lambda-päätepisteille on ilmainen AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-kurssilla on yhteensä 4 oppituntia.

API Gateway ja Lambda: tehokas pari

Tervetuloa! Tässä oppitunnissa yhdistämme AWS Lambdan ja Amazon API Gatewayn. Tämän tehokkaan yhdistelmän avulla voit rakentaa skaalautuvia, palvelimettomia ohjelmointirajapintoja ilman palvelinten hallintaa.

Ajattele API Gatewayta sovellustesi etuovena, joka reitittää pyynnöt oikealle taustapalvelulle, usein Lambda-funktiolle.

Miksi API Gatewayta käytetään?

API Gateway tarjoaa useita etuja Lambda-funktioiden julkaisemiseen:

  • Skaalautuvuus: Käsittelee tuhansia samanaikaisia API-kutsuja.
  • Liikenteenhallinta: Hallitsee liikennettä, mukaan lukien rajoituksen ja välimuistinnuksen.
  • Tietoturva: Tarjoaa sisäänrakennetun tunnistautumisen ja valtuutuksen.
  • Valvonta: Integroituu CloudWatchiin lokitusta ja valvontaa varten.

API Gatewayn ydintoiminto

API Gateway toimii "välityspalvelimena" asiakkaiden (kuten verkkoselainten tai mobiilisovellusten) ja taustapalvelujesi (kuten Lambda-funktioiden) välillä.

Se vastaanottaa saapuvat HTTP-pyynnöt, muuntaa niitä tarvittaessa, kutsuu Lambda-funktiotasi ja lähettää sitten funktion vastauksen takaisin asiakkaalle.

Ensimmäisen APIn määrittäminen

Luodaksesi API Gateway -päätepisteen Lambdalle määrität seuraavat:

  • Resurssit: URL-polut (esimerkiksi /items ja /users).
  • Metodit: Kunkin resurssin HTTP-metodit (GET, POST, PUT, DELETE).
  • Integraatio: Taustapalvelun (Lambda-funktiomme), jonka metodi kutsuu.

Tarkastellaan yksinkertaista Lambda-funktiota, jota API Gateway voi kutsua.

Lambda-perusfunktio API Gatewaylle

Tämä Python Lambda -funktio on suunniteltu API Gatewayn käynnistettäväksi. Se odottaa tapahtumaoliota, joka sisältää HTTP-pyyntöä koskevia tietoja, ja palauttaa sanakirjan, jossa on API-vastausta varten statusCode ja body.

import json

def lambda_handler(event, context):
    # Print the incoming event for debugging
    print(f"Received event: {json.dumps(event)}")

    # Extract query parameters if present
    name = event.get('queryStringParameters', {}).get('name', 'World')

    response_body = {
        "message": f"Hello, {name} from Lambda!",
        "input": event
    }

    return {
        "statusCode": 200,
        "headers": {
            "Content-Type": "application/json"
        },
        "body": json.dumps(response_body)
    }

Pyyntöjen ja vastausten yhdistäminen

API Gateway voi muuntaa pyynnöt ennen niiden lähettämistä Lambdalle ja vastaukset ennen niiden lähettämistä takaisin asiakkaalle.

Tämä on tärkeää seuraavista syistä:

  • Pyyntörungon muuntaminen Lambda-funktion odottamaan muotoon.
  • Polkuparametrien tai otsakkeiden poimiminen Lambda-funktion tapahtumaolioon.
  • Lambdan tulosteen muotoilu vakiomuotoiseksi HTTP-vastaukseksi.

Polkuparametrien käyttäminen

Oletetaan, että APIssasi on polku, kuten /users/{userId}. API Gateway voi yhdistää URL-polun userId-arvon suoraan Lambdan event-olioon.

Lambda voi käyttää sitä seuraavasti: event['pathParameters']['userId'].

APIn tunnistautumisvaihtoehdot

API Gateway tarjoaa kattavat tietoturvavaihtoehdot:

  • IAM-roolit ja -käytännöt: Hallitse käyttöoikeuksia AWS Identity and Access Managementin avulla.
  • Lambda Authorizers: Käytä Lambda-funktiota mukautettujen tunnusten (kuten JWT-tunnusten) vahvistamiseen ennen pää-Lambda-funktion kutsumista.
  • Cognito User Pools: Integroi Amazon Cogniton kanssa käyttäjien tunnistautumista ja valtuutusta varten.

Mukautettu tunnistautuminen Lambda Authorizers -toiminnolla

Lambda Authorizer on erillinen Lambda-funktio, jonka API Gateway kutsuu ennen pääfunktiotasi.

Se tarkistaa saapuvan pyynnön tunnuksen (esimerkiksi otsakkeessa olevan tunnuksen), ja jos tunnus on kelvollinen, se palauttaa IAM-käytännön, joka sallii tai estää pääsyn APIn resursseihin. Tämä on tehokasta mukautetun tunnistautumislogiikan toteuttamiseen.

API Gatewayn ja Lambdan käyttövinkit

Pidä tehokkaiden APIen toteutuksessa mielessä seuraavat asiat:

  • Pienet Lambdat: Pidä funktiot keskittyneinä yhteen tehtävään.
  • Virheenkäsittely: Toteuta Lambdassa kattava virheenkäsittely ja määritä API Gateway palauttamaan merkityksellisiä virheilmoituksia.
  • Välimuistinnus: Vähennä viivettä ja Lambda-kutsujen määrää API Gatewayn välimuistinnuksen avulla.
  • Vaiheet: Käytä API Gatewayn vaiheita (esimerkiksi dev ja prod) versiointiin ja käyttöönottojen hallintaan.

API Gatewayn ominaisuudet

Mitkä seuraavista ovat Amazon API Gatewayn keskeisiä ominaisuuksia tai etuja, kun sen avulla julkaistaan AWS Lambda -funktioita?

Kertaus: API Gateway ja Lambda

Opimme, että Amazon API Gateway toimii palvelimettomien sovellustesi sisääntulopisteenä ja reitittää HTTP-pyynnöt AWS Lambda -funktioille.

Ymmärrät nyt sen edut, perusintegraatioiden määrittämisen, pyyntöjen ja vastausten yhdistämisen sekä APIen suojaamisen erilaisilla tunnistautumismenetelmillä, kuten Lambda Authorizers -toiminnolla. Tämä yhdistelmä on keskeinen nykyaikaisten ja skaalautuvien taustajärjestelmien rakentamisessa!

Aloita maksutta

Opi AWS backend-kehittäjille (EC2, S3, RDS, Lambda) 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
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”API Gateway Lambda-päätepisteille” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-oppimispolun 3 oppituntia, myös oppitunnin “API Gateway Lambda-päätepisteille”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”API Gateway Lambda-päätepisteille”?

Rakentakaa skaalautuvia ja turvallisia RESTful-rajapintoja integroimalla AWS Lambda Amazon API Gatewayhin sekä hallitkaa todennusta ja pyyntöjen ja vastausten muunnoksia. Harjoittelet AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”API Gateway Lambda-päätepisteille”-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ä AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-oppitunnilla?

Kyllä. Jokainen AWS backend-kehittäjille (EC2, S3, RDS, Lambda)-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

  1. Lambda-funktion asynkroninen kutsu
  2. Lambda-kerrokset ja ympäristömuuttujat
  3. API Gateway Lambda-päätepisteille
  4. Step Functions Lambda-koordinointiin
← Takaisin: AWS backend-kehittäjille (EC2, S3, RDS, Lambda)