Introduktion til Amazon API Gateway ved hjælp af AWS Lambda

Introduktion til Amazon API Gateway ved hjælp af AWS Lambda

Kildeknude: 1860150

Introduktion

Hvad er en API?

Enkelt sagt er API en messenger; lad os forstå dette med nogle eksempler. Lad os sige, at du er sulten, og du skal lave noget derhjemme. Hvis du vil lave nudler, tager du bare ingredienserne ud af skabet, fyrer op i komfuret og laver det selv. Dette er et program, der gør noget på egen hånd med sine egne ressourcer. Men sig, at du vil have pizza – du har ikke ingredienserne, og din hjemmeovn er egentlig ikke så velegnet til at lave en dejlig sprød skorpe. Så du går til et pizzasted i stedet for. Men i modsætning til derhjemme kan man ikke bare gå ud i køkkenet og begynde at bruge deres ingredienser til at lave en pizza. De vil ikke have dine uvorne hænder over deres ting! Så hvad vil du gøre? Du skal gå hen til skranken og bestille - der vil være en menu, der viser, hvilke pizzaer du kan bestille og hvilke toppings eller andre muligheder du kan vælge. Dette er en API.

En Application Programming Interface (API) er et sæt regler, der specificerer, hvordan to softwareprogrammer skal interagere.

En API giver et softwareprogram adgang til funktionaliteten af ​​et andet softwareprogram. For eksempel, hvis du har et softwareprogram, der skal hente data fra internettet, kan det bruge en API til at anmode om disse data fra en server. Serveren vil derefter svare med de ønskede data, og softwareprogrammet kan bruge dem efter behov.

API'er bruges til at give forskellige softwareprogrammer mulighed for at kommunikere med hinanden og dele data og funktionalitet. De er en vigtig del af moderne softwareudvikling, da de tillader forskellige systemer at arbejde sammen og muliggør skabelsen af ​​mere komplekse og kraftfulde softwareapplikationer.

HTTP API'er

HTTP API er en type API, der bruger HTTP-protokollen til at sende og modtage data. Det giver softwareprogrammer mulighed for at sende og modtage data ved hjælp af HTTP-anmodninger og -svar. Disse anmodninger og svar kan være i forskellige formater, såsom almindelig tekst, JSON eller XML. De bruges almindeligvis i en lang række applikationer, herunder webapplikationer, mobilapps og mikrotjenester. Disse API'er er relativt billigere end REST API'er og har færre funktionaliteter end de senere.

REST API'er

REST API er en type API, der følger et sæt arkitektoniske principper kaldet REST (Representational State Transfer). REST er en stil af softwarearkitektur, der definerer et sæt begrænsninger for at skabe web-API'er.

Stateful API'er

En stateful API er en API, der vedligeholder oplysninger om hver klientanmodning og bruger disse oplysninger til at behandle efterfølgende anmodninger. Dette betyder, at API'en gemmer data om hver anmodning, såsom anmodningsparametrene, i en session på serversiden. Disse data bruges derefter til at behandle efterfølgende anmodninger fra den samme klient.

Statsløse API'er

En statsløs API vedligeholder på den anden side ikke oplysninger om klientanmodninger. Den behandler hver anmodning uafhængigt uden at gemme data om tidligere anmodninger. Dette betyder, at API'en ikke vedligeholder en session på serversiden og ikke bruger data fra tidligere anmodninger til at behandle efterfølgende anmodninger.

Nøgleforskelle mellem Stateful og Stateless API'er

Nedenfor er nogle vigtige forskelle mellem stateful og stateless API'er:

STATEFUL API'er

STATELØSE API'er

1. Kræv en session på serversiden for at gemme data om klientanmodninger 1. Kræv ikke en session på serversiden for at gemme data om klientanmodninger
2. Disse kan nogle gange være langsommere end Stateless API'er, fordi de kræver og gemmer data, hvilket tager tid. 2. Stateless API'er er hurtigere, fordi disse ikke kræver og gemmer data om anmodninger.
3. Stateful API'er er ikke nemme at skalere  3. Nemmere at skalere, da de ikke behøver at vedligeholde data om tidligere anmodninger.
4. Anses generelt for mindre sikker end statsløse API'er 4. Disse anses generelt for at være mere sikre.

Hvad er Amazon API Gateway?

Amazon API Gateway er en AWS-tjeneste, der bruges til at oprette, vedligeholde og overvåge både stateful (websocket) og stateless (HTTP og REST) ​​API'er. Vi kan bruge disse API'er til at få adgang til:

  1. Enhver AWS-tjeneste
  2. Dataene gemt i AWS-skyen (såsom en S3-bøtte)
  3. Alle andre webtjenester.

Hvis du er en API-udvikler, kan du også nemt lave dine API'er til tredjepartsudviklere.

Der er hovedsageligt to typer brugere af AWS API Gateway.

  1. i) API-udviklere, der opretter og implementerer en API for at aktivere den nødvendige funktionalitet i API Gateway
  2. ii) App-udviklere, der er kunder hos API-udvikleren.

Amazon API Gateway-arkitektur

arkitektur

Denne arkitektur illustrerer, hvordan serverløse applikationer kan bygges med ensartet og integreret udvikleroplevelse. Fra slutbrugere til datacentrene håndterer API Gateway alle de involverede opgaver, såsom at acceptere og behandle tusindvis af samtidige opkald, trafikstyring, autorisation, overvågning, adgangskontrol mv.

Amazon API Gateway-funktioner

  1. Det understøtter både stateful og stateless API'er. (Eksempler: Websocket, HTTP og REST).
  2. Kraftige godkendelsesmekanismer inkluderer AWS-identitet, adgangsstyringspolitikker og Lambda-autorisator.
  3. Udviklerportal, hvor API'er-udviklere kan udgive deres API'er.
  4. Eksekvering og adgangslogning for CloudWatch, herunder mulighed for at indstille alarmer.
  5. Integration med andre AWS Services som f.eks AWS Lambda og AWS Kinesis.
  6. Integration med AWS WAF bruges til beskyttelse mod webudnyttelse, og AWS X-Ray bruges til at forstå og understrege ydelsesforsinkelser.

Kom godt i gang med Amazon API Gateway

Nu skal vi lave en serverløs API. I en serverløs API kan vi fokusere på vores applikationer i stedet for at bruge tid på at administrere servere. Det fungerer sådan her:

  • API påkaldes af klienten
  • API sender anmodning til lambda
  • Lambda udfører lambda-funktionen og sender resultatet tilbage til API'et
  • Efter at have modtaget resultatet fra lambda, svarer API til klienten

http api

Trin 1 – Opret en lambda-funktion

Lambda-funktionen bruges til backend af vores API. Lambda kører kun koden, når det er nødvendigt. Den skalerer også automatisk fra et par anmodninger om dagen til tusinde anmodninger hvert sekund.

skabe lambada funktion

Oprettelse af en lambda-funktion:

1) Gå til lambda-konsollen på https://console.aws.amazon.com/lambda

2) Klik på Opret funktion.

3) Indtast "min-funktion" som funktionsnavn.

4) Vælg Python 3.9 som runtime.

5) For denne funktion behøver vi ikke at ændre noget på fanen Tilladelser og Avancerede indstillinger, da standardtilladelserne er tilstrækkelige til denne demonstration.

4) Klik på Opret funktion.

TRIN 2 – Oprettelse af en HTTP API

Amazon API

HTTP API'en giver et HTTP-endepunkt til din Lambda-funktion. Det fungerer sådan her:

  • Klienten sender forespørgsel til HTTP API
  • API'et udløser lambda, som derefter udfører lambda-funktionen
  • Lambda sender resultatet til API'et
  • API svarer til klienten med det modtagne svar

Trin til at oprette en HTTP API

1) Besøg API Gateway-konsollen på https://console.aws.amazon.com/apigateway

2) Klik på Byg for at oprette din første HTTP API

3) Klik på Tilføj integration for integration

4) Vælg Lambda.

5) Indtast din lambdafunktion my-function.

6) Indtast mit-http-api for API-navn.

7) Klik på Næste.

8) Gennemgå den rute, der er oprettet for dig, og vælg derefter Næste.

9) Gennemgå den fase, der er oprettet til dig, og vælg derefter Næste.

10) Klik på Opret.

TRIN 3 Test din API –

Dernæst skal vi teste vores API for at sikre, at det virker. Til dette vil vi bruge en webbrowser til at kalde vores API.

Amazon API

For at teste vores API

  1. Gå til API Gateway-konsollen på https://console.aws.amazon.com/apigateway
  2. Vælg din API.
  3. Noter din API's påkalde-URL ned. (se billedet ovenfor)
  4. Kopiér din API's start-URL, og indsæt den i en webbrowser. Forbind URL-adressen og navnet på din lambda-funktion for at kalde din Lambda-funktion. API Gateway-konsollen opretter en rute ved at bruge navnet på din Lambda-funktion "min-funktion" som standard. 

    Den fulde URL skal se ud som https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function. Når du indlæser denne URL, sendes en GET-anmodning af din browser til API'et

  1. Du bør se teksten "Hej fra Lambda!" i din browser. Derfor er din API's svar verificeret.

Amazon API

Konklusion

Vi har skabt vores første HTTP API ved hjælp af Amazon API Gateway og AWS Lambda. Yderligere kan vi udforske forskellige anvendelsestilfælde af det samme, og på samme måde kan vi også oprette REST API, som giver flere funktionaliteter.

Kunne du lide denne artikel? Fortæl os dine tanker i kommentaren nedenfor. Glem heller ikke at nævne, hvilken artikel du gerne vil læse næste gang.

Tidsstempel:

Mere fra Analyse Vidhya