Introduktion till Amazon API Gateway med AWS Lambda

Introduktion till Amazon API Gateway med AWS Lambda

Källnod: 1860150

Beskrivning

Vad är ett API?

Enkelt uttryckt är API en budbärare; låt oss förstå detta med några exempel. Låt oss säga att du är hungrig och behöver laga något hemma. Om du vill göra nudlar tar du bara ut ingredienserna ur skåpet, eldar i spisen och gör det själv. Detta är ett program som gör något på egen hand med sina egna resurser. Men säg att du vill ha pizza – du har inte ingredienserna, och din hemmaugn är inte riktigt så lämpad för att göra en fin krispig skorpa. Så du går till ett pizzaställe istället. Men till skillnad från hemma kan du inte bara gå in i köket och börja använda deras ingredienser för att göra en pizza. De vill inte ha dina smutsiga händer över sina grejer! Så vad ska du göra? Du måste gå till disken och göra en beställning – det kommer att finnas en meny som visar vilka pizzor du kan beställa och vilka pålägg eller andra alternativ du kan välja. Detta är ett API.

Ett applikationsprogrammeringsgränssnitt (API) är en uppsättning regler som anger hur två program ska interagera.

Ett API tillåter ett program att komma åt funktionaliteten hos ett annat program. Till exempel, om du har ett program som behöver hämta data från internet, kan det använda ett API för att begära dessa data från en server. Servern kommer då att svara med den begärda informationen och programvaran kan använda den efter behov.

API:er används för att tillåta olika program att kommunicera med varandra och dela data och funktionalitet. De är en viktig del av modern mjukvaruutveckling, eftersom de tillåter olika system att arbeta tillsammans och möjliggör skapandet av mer komplexa och kraftfulla programvaruapplikationer.

HTTP API: er

HTTP API är en typ av API som använder HTTP-protokollet för att skicka och ta emot data. Det tillåter program att skicka och ta emot data med hjälp av HTTP-förfrågningar och svar. Dessa förfrågningar och svar kan vara i olika format, till exempel vanlig text, JSON eller XML. De används ofta i ett brett utbud av applikationer, inklusive webbapplikationer, mobilappar och mikrotjänster. Dessa API:er är relativt billigare än REST API:er och har mindre funktionalitet än de senare.

REST API: er

REST API är en typ av API som följer en uppsättning arkitektoniska principer som kallas REST (Representational State Transfer). REST är en stil av mjukvaruarkitektur som definierar en uppsättning begränsningar för att skapa webb-API:er.

Stateful API:er

Ett stateful API är ett API som upprätthåller information om varje klientförfrågan och använder denna information för att behandla efterföljande förfrågningar. Detta innebär att API:et lagrar data om varje begäran, såsom förfrågningsparametrarna, i en session på serversidan. Dessa data används sedan för att behandla efterföljande förfrågningar från samma klient.

Statslösa API:er

Ett tillståndslöst API, å andra sidan, upprätthåller inte information om klientförfrågningar. Den behandlar varje förfrågan oberoende, utan att lagra några uppgifter om tidigare förfrågningar. Detta innebär att API:et inte upprätthåller en session på serversidan och inte använder data från tidigare förfrågningar för att behandla efterföljande förfrågningar.

Nyckelskillnader mellan Stateful och Stateless API

Nedan är några viktiga skillnader mellan stateful och stateless API:er:

STATISKA API:er

STATELÖSA API:er

1. Kräv en session på serversidan för att lagra data om klientförfrågningar 1. Kräv inte en session på serversidan för att lagra data om klientförfrågningar
2. Dessa kan ibland vara långsammare än Stateless API eftersom de kräver och lagrar data vilket tar tid. 2. Statslösa API:er är snabbare eftersom dessa inte kräver och lagrar data om förfrågningar.
3. Stateful API:er är inte lätta att skala  3. Lättare att skala eftersom de inte behöver underhålla data om tidigare förfrågningar.
4. Anses generellt som mindre säkra än tillståndslösa API:er 4. Dessa anses generellt vara säkrare.

Vad är Amazon API Gateway?

Amazon API Gateway är en AWS-tjänst som används för att skapa, underhålla och övervaka både stateful (websocket) och stateless (HTTP och REST) ​​API:er. Vi kan använda dessa API:er för att komma åt:

  1. Vilken AWS-tjänst som helst
  2. Data som lagras i AWS-molnet (som en S3-hink)
  3. Alla andra webbtjänster.

Om du är en API-utvecklare kan du enkelt göra dina API:er till tredjepartsutvecklare också.

Det finns huvudsakligen två typer av användare av AWS API Gateway.

  1. i) API-utvecklare som skapar och distribuerar ett API för att aktivera den nödvändiga funktionaliteten i API Gateway
  2. ii) Apputvecklare som är kunder till API-utvecklaren.

Amazon API Gateway-arkitektur

arkitektur

Den här arkitekturen illustrerar hur serverlösa applikationer kan byggas med konsekvent och integrerad utvecklarupplevelse. Från slutanvändare till datacenter, API Gateway hanterar alla inblandade uppgifter, såsom att ta emot och bearbeta tusentals samtidiga samtal, trafikhantering, auktorisering, övervakning, åtkomstkontroll, etc.

Amazon API Gateway-funktioner

  1. Den stöder både stateful och stateless API:er. (Exempel: Websocket, HTTP och REST).
  2. Kraftfulla autentiseringsmekanismer inkluderar AWS Identity, Access Management Policies och Lambda Authorizer.
  3. Utvecklarportal där API:er utvecklare kan publicera sina API:er.
  4. Utförande och åtkomstloggning för CloudWatch, inklusive möjlighet att ställa in larm.
  5. Integration med andra AWS-tjänster som t.ex AWS Lambda och AWS Kinesis.
  6. Integration med AWS WAF används för att skydda mot webbexploater och AWS X-Ray används för att förstå och betona prestandafördröjningar.

Komma igång med Amazon API Gateway

Nu ska vi skapa ett serverlöst API. I ett serverlöst API kan vi fokusera på våra applikationer istället för att lägga tid på att hantera servrar. Det fungerar så här:

  • API anropas av klienten
  • API skickar begäran till lambda
  • Lambda kör lambdafunktionen och skickar resultatet tillbaka till API:et
  • Efter att ha mottagit resultatet från lambda svarar API till klienten

http api

Steg 1 – Skapa en lambdafunktion

Lambdafunktionen används för backend av vårt API. Lambda kör koden endast när den behövs. Den skalar också automatiskt från några få förfrågningar per dag till tusen förfrågningar varje sekund.

skapa lambada-funktion

Skapa en lambdafunktion:

1) Gå till lambdakonsolen på https://console.aws.amazon.com/lambda

2) Klicka på Skapa funktion.

3) Ange "min-funktion" som funktionsnamn.

4) Välj Python 3.9 som körtid.

5) För den här funktionen behöver vi inte ändra något på fliken Behörigheter och avancerade inställningar eftersom standardbehörigheterna är tillräckliga för denna demonstration.

4) Klicka på Skapa funktion.

STEG 2 – Skapa ett HTTP-API

Amazon API

HTTP API tillhandahåller en HTTP-slutpunkt för din Lambda-funktion. Det fungerar så här:

  • Klienten skickar en fråga till HTTP API
  • API:n utlöser lambda som sedan exekverar lambdafunktionen
  • Lambda skickar resultatet till API:et
  • API svarar klienten med det mottagna svaret

Steg för att skapa ett HTTP API

1) Besök API Gateway-konsolen på https://console.aws.amazon.com/apigateway

2) Klicka på Bygg för att skapa ditt första HTTP-API

3) Klicka på Lägg till integration för integration

4) Välj Lambda.

5) Ange din lambdafunktion my-function.

6) För API-namn anger du my-http-api.

7) Klicka på Nästa.

8) Granska rutten som skapats åt dig och välj sedan Nästa.

9) Granska scenen som skapats åt dig och välj sedan Nästa.

10) Klicka på Skapa.

STEG 3 Testa ditt API –

Därefter måste vi testa vårt API för att säkerställa att det fungerar. För detta kommer vi att använda en webbläsare för att anropa vårt API.

Amazon API

För att testa vårt API

  1. Gå till API Gateway-konsolen på https://console.aws.amazon.com/apigateway
  2. Välj ditt API.
  3. Anteckna din API:s anrops-URL. (se bilden ovan)
  4. Kopiera din API:s anrops-URL och klistra in den i en webbläsare. Gå med i anropsadressen och namnet på din lambdafunktion för att anropa din lambdafunktion. API Gateway-konsolen skapar en rutt med namnet på din Lambda-funktion "min-funktion" som standard. 

    Den fullständiga URL:en ska se ut så här: https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function. När du laddar denna URL skickas en GET-begäran av din webbläsare till API:et

  1. Du bör se texten "Hej från Lambda!" i din webbläsare. Därför är ditt API:s svar verifierat.

Amazon API

Slutsats

Vi har skapat vårt första HTTP API med Amazon API Gateway och AWS Lambda. Vidare kan vi utforska olika användningsfall av detsamma, och på liknande sätt kan vi skapa REST API också, vilket ger fler funktioner.

Gillade du den här artikeln? Berätta för oss dina tankar i kommentaren nedan. Glöm inte heller att nämna vilken artikel du vill läsa härnäst.

Tidsstämpel:

Mer från Analys Vidhya