AWS for backendutviklere (EC2, S3, RDS, Lambda) · leksjon

API Gateway for Lambda-endepunkter

Bygg skalerbare og sikre RESTful-API-er ved å integrere AWS Lambda med Amazon API Gateway, og håndter autentisering samt mapping av forespørsler og svar.

Leksjon 3 av 412 trinn

API Gateway for Lambda-endepunkter er en gratis leksjon i AWS for backendutviklere (EC2, S3, RDS, Lambda) på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i AWS for backendutviklere (EC2, S3, RDS, Lambda), og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i AWS for backendutviklere (EC2, S3, RDS, Lambda) inneholder totalt 4 leksjoner.

API Gateway og Lambda: Det perfekte paret

Velkommen! I denne leksjonen kobler vi AWS Lambda sammen med Amazon API Gateway. Denne kraftige kombinasjonen lar deg bygge skalerbare, serverløse API-er uten å administrere servere.

Tenk på API Gateway som inngangsdøren til applikasjonene dine. Den ruter forespørsler til riktig backend-tjeneste, ofte en Lambda-funksjon.

Hvorfor bruke API Gateway?

API Gateway gir flere fordeler når du eksponerer Lambda-funksjoner:

  • Skalerbarhet: Håndterer tusenvis av samtidige API-kall.
  • Trafikkstyring: Håndterer trafikk, inkludert struping og hurtigbufring.
  • Sikkerhet: Tilbyr innebygd autentisering og autorisering.
  • Overvåking: Integreres med CloudWatch for logging og overvåking.

API Gateways kjernefunksjon

API Gateway fungerer som en «proxy» mellom klienter (for eksempel nettlesere eller mobilapper) og backend-tjenestene dine (for eksempel Lambda-funksjoner).

Den tar imot HTTP-forespørsler, transformerer dem ved behov, påkaller Lambda-funksjonen din og sender deretter funksjonens svar tilbake til klienten.

Sett opp ditt første API

For å opprette et API Gateway-endepunkt for Lambda definerer du:

  • Ressurser: URL-stiene (for eksempel /items og /users).
  • Metoder: HTTP-metodene (GET, POST, PUT, DELETE) for hver ressurs.
  • Integrasjon: Backend-tjenesten (Lambda-funksjonen vår) som metoden påkaller.

La oss se på en enkel Lambda-funksjon som API Gateway kan kalle.

Grunnleggende Lambda for API Gateway

Denne Python-Lambda-funksjonen er laget for å bli utløst av API Gateway. Den forventer et hendelsesobjekt som inneholder detaljer om HTTP-forespørselen, og returnerer en ordbok med statusCode og body for API-svaret.

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)
    }

Tilordning av forespørsel og svar

API Gateway kan transformere forespørsler før de sendes til Lambda, og svar før de sendes tilbake til klienten.

Dette er avgjørende for å:

  • Konvertere forespørselsbrødtekster til et format Lambda forventer.
  • Hente ut stilparametere eller headere og legge dem inn i Lambda-hendelsesobjektet.
  • Formatere resultatet fra Lambda som et standard HTTP-svar.

Hente stilparametere

La oss si at API-et ditt har en sti som /users/{userId}. API Gateway kan tilordne userId fra URL-stien direkte til Lambda-funksjonens event-objekt.

Lambda-funksjonen kan deretter hente den via event['pathParameters']['userId'].

Alternativer for API-autentisering

API Gateway tilbyr robuste sikkerhetsalternativer:

  • IAM-roller/-policyer: Styr tilgangen ved hjelp av AWS Identity and Access Management.
  • Lambda Authorizers: Bruk en Lambda-funksjon til å validere egendefinerte token, for eksempel JWT-er, før hovedfunksjonen påkalles.
  • Cognito User Pools: Integrer med Amazon Cognito for brukerautentisering og -autorisering.

Egendefinert autentisering med Lambda Authorizers

En Lambda Authorizer er en separat Lambda-funksjon som API Gateway påkaller før hovedfunksjonen din.

Den kontrollerer tokenet i den innkommende forespørselen (for eksempel i en header), og hvis det er gyldig, returnerer den en IAM-policy som tillater eller avslår tilgang til API-ressursene dine. Dette er nyttig for egendefinert autentiseringslogikk.

Tips for API Gateway og Lambda

Ha dette i bakhodet for effektive API-er:

  • Små Lambda-funksjoner: La funksjonene være konsentrert om én enkelt oppgave.
  • Feilhåndtering: Implementer robust feilhåndtering i Lambda, og konfigurer API Gateway til å returnere meningsfulle feilmeldinger.
  • Hurtigbufring: Bruk hurtigbufring i API Gateway for å redusere ventetid og antall Lambda-påkallinger.
  • Stages: Bruk API Gateway-stages (for eksempel dev og prod) til versjons- og distribusjonsstyring.

Funksjoner i API Gateway

Hvilke av følgende er viktige funksjoner eller fordeler ved å bruke Amazon API Gateway til å eksponere AWS Lambda-funksjoner?

Oppsummering: API Gateway og Lambda

Vi har lært hvordan Amazon API Gateway fungerer som inngangspunktet for serverløse applikasjoner og ruter HTTP-forespørsler til AWS Lambda-funksjoner.

Du forstår nå fordelene, hvordan du konfigurerer grunnleggende integrasjoner, håndterer tilordning av forespørsler og svar, og sikrer API-ene dine med ulike autentiseringsmetoder, inkludert Lambda Authorizers. Denne kombinasjonen er grunnleggende for å bygge moderne og skalerbare backends!

Gratis å komme i gang

Lær deg AWS for backendutviklere (EC2, S3, RDS, Lambda) med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «API Gateway for Lambda-endepunkter» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien AWS for backendutviklere (EC2, S3, RDS, Lambda), inkludert «API Gateway for Lambda-endepunkter», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i AWS for backendutviklere (EC2, S3, RDS, Lambda) inneholder totalt 4 leksjoner.

Hva lærer jeg i «API Gateway for Lambda-endepunkter»?

Bygg skalerbare og sikre RESTful-API-er ved å integrere AWS Lambda med Amazon API Gateway, og håndter autentisering samt mapping av forespørsler og svar. Du øver på AWS for backendutviklere (EC2, S3, RDS, Lambda) med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med AWS for backendutviklere (EC2, S3, RDS, Lambda)?

Ingen tidligere erfaring er nødvendig. AWS for backendutviklere (EC2, S3, RDS, Lambda) på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «API Gateway for Lambda-endepunkter»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne AWS for backendutviklere (EC2, S3, RDS, Lambda)-leksjonen?

Ja. Alle AWS for backendutviklere (EC2, S3, RDS, Lambda)-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Asynkron påkalling av Lambda
  2. Lambda-lag og miljøvariabler
  3. API Gateway for Lambda-endepunkter
  4. Step Functions for orkestrering av Lambda
← Tilbake til AWS for backendutviklere (EC2, S3, RDS, Lambda)