Inleiding tot Amazon API Gateway met behulp van AWS Lambda

Inleiding tot Amazon API Gateway met behulp van AWS Lambda

Bronknooppunt: 1860150

Introductie

Wat is een API?

Eenvoudig gezegd is API een boodschapper; laten we dit begrijpen met enkele voorbeelden. Laten we zeggen dat je honger hebt en thuis iets moet koken. Als je noedels wilt maken, haal je gewoon de ingrediรซnten uit de kast, steek je het fornuis aan en maak je het zelf. Dit is een programma dat op zichzelf iets doet met zijn eigen middelen. Maar stel dat je pizza wilt, je hebt de ingrediรซnten niet en je eigen oven is niet echt geschikt om een โ€‹โ€‹mooie knapperige korst te maken. Dus ga je in plaats daarvan naar een pizzeria. Maar in tegenstelling tot thuis kun je niet zomaar naar de keuken gaan en hun ingrediรซnten gebruiken om een โ€‹โ€‹pizza te maken. Ze willen niet dat je vieze handen over hun spullen gaan! Dus wat ga je doen? Je moet naar de balie gaan en een bestelling plaatsen - er zal een menu zijn met de pizza's die je kunt bestellen en welke toppings of andere opties je kunt kiezen. Dit is een API.

Een Application Programming Interface (API) is een set regels die specificeert hoe twee softwareprogramma's moeten samenwerken.

Met een API heeft een softwareprogramma toegang tot de functionaliteit van een ander softwareprogramma. Als je bijvoorbeeld een softwareprogramma hebt dat gegevens van internet moet halen, kan het een API gebruiken om die gegevens op te vragen bij een server. De server zal dan reageren met de gevraagde gegevens en het softwareprogramma kan deze naar behoefte gebruiken.

API's worden gebruikt om verschillende softwareprogramma's met elkaar te laten communiceren en gegevens en functionaliteit te delen. Ze vormen een belangrijk onderdeel van de moderne softwareontwikkeling, omdat ze verschillende systemen laten samenwerken en de creatie van complexere en krachtigere softwaretoepassingen mogelijk maken.

HTTP API's

HTTP API is een type API dat het HTTP-protocol gebruikt voor het verzenden en ontvangen van gegevens. Hiermee kunnen softwareprogramma's gegevens verzenden en ontvangen met behulp van HTTP-verzoeken en -antwoorden. Deze verzoeken en antwoorden kunnen verschillende indelingen hebben, zoals platte tekst, JSON of XML. Ze worden vaak gebruikt in een breed scala aan applicaties, waaronder webapplicaties, mobiele apps en microservices. Deze API's zijn relatief goedkoper dan REST API's en hebben minder functionaliteiten dan de laatste.

REST API's

REST API is een type API dat een reeks architecturale principes volgt die REST (Representational State Transfer) wordt genoemd. REST is een stijl van softwarearchitectuur die een reeks beperkingen definieert voor het maken van web-API's.

Stateful API's

Een stateful API is een API die informatie bijhoudt over elk clientverzoek en deze informatie gebruikt om volgende verzoeken te verwerken. Dit betekent dat de API gegevens over elk verzoek, zoals de verzoekparameters, opslaat in een server-side sessie. Deze gegevens worden vervolgens gebruikt om volgende aanvragen van dezelfde klant te verwerken.

Staatloze API's

Een stateless API houdt daarentegen geen informatie bij over klantverzoeken. Het verwerkt elk verzoek onafhankelijk, zonder gegevens over eerdere verzoeken op te slaan. Dit betekent dat de API geen server-side sessie onderhoudt en geen gegevens van eerdere verzoeken gebruikt om volgende verzoeken te verwerken.

Belangrijkste verschillen tussen stateful en stateless API's

Hieronder staan โ€‹โ€‹enkele belangrijke verschillen tussen stateful en stateless API's:

STATEFUL API's

STATELESS API's

1. Vereist een server-side sessie om gegevens over clientverzoeken op te slaan 1. Vereist geen server-side sessie om gegevens over clientverzoeken op te slaan
2. Deze kunnen soms langzamer zijn dan Stateless API's omdat ze gegevens nodig hebben en opslaan, wat tijd kost. 2. Stateless API's zijn sneller omdat deze geen gegevens over verzoeken vereisen en opslaan.
3. Stateful API's zijn niet eenvoudig te schalen  3. Gemakkelijker te schalen omdat ze geen gegevens over eerdere verzoeken hoeven bij te houden.
4. Over het algemeen als minder veilig beschouwd dan staatloze API's 4. Deze worden over het algemeen als veiliger beschouwd.

Wat is Amazon API Gateway?

Amazon API Gateway is een AWS-service die wordt gebruikt voor het maken, onderhouden en bewaken van zowel stateful (websocket) als stateless (HTTP en REST) โ€‹โ€‹API's. We kunnen deze API's gebruiken om toegang te krijgen tot:

  1. Elke AWS-service
  2. De gegevens die zijn opgeslagen in de AWS-cloud (zoals een S3-bucket)
  3. Alle andere webservices.

Als u een API-ontwikkelaar bent, kunt u uw API's ook gemakkelijk naar externe ontwikkelaars maken.

Er zijn hoofdzakelijk twee soorten gebruikers van AWS API Gateway.

  1. i) API-ontwikkelaars die een API maken en implementeren om de vereiste functionaliteit in API Gateway mogelijk te maken
  2. ii) App-ontwikkelaars die klant zijn van de API-ontwikkelaar.

Amazon API Gateway-architectuur

architectuur

Deze architectuur illustreert hoe serverloze applicaties kunnen worden gebouwd met een consistente en geรฏntegreerde ontwikkelaarservaring. Van eindgebruikers tot datacenters, API Gateway voert alle taken uit, zoals het accepteren en verwerken van duizenden gelijktijdige oproepen, verkeersbeheer, autorisatie, monitoring, toegangscontrole, enz.

Amazon API Gateway-functies

  1. Het ondersteunt zowel stateful als stateless API's. (Voorbeelden: Websocket, HTTP en REST).
  2. Krachtige authenticatiemechanismen omvatten AWS Identity, Access Management Policies en Lambda-autorisatie.
  3. Ontwikkelaarsportaal waar ontwikkelaars van API's hun API's kunnen publiceren.
  4. Uitvoerings- en toegangsregistratie voor CloudWatch, inclusief de mogelijkheid om alarmen in te stellen.
  5. Integratie met andere AWS-services zoals AWS Lambda en AWS Kinesis.
  6. Integratie met AWS WAF wordt gebruikt voor bescherming tegen webexploits en AWS X-Ray wordt gebruikt om prestatielatenties te begrijpen en te benadrukken.

Aan de slag met Amazon API Gateway

Nu gaan we een serverloze API maken. In een serverloze API kunnen we ons concentreren op onze applicaties in plaats van tijd te besteden aan het beheren van servers. Het werkt als volgt:

  • API wordt aangeroepen door de client
  • API stuurt verzoek naar lambda
  • Lambda voert de lambda-functie uit en stuurt het resultaat terug naar de API
  • Na ontvangst van het resultaat van lambda, reageert API op de client

http-api

Stap 1 - Maak een lambda-functie

De Lambda-functie wordt gebruikt voor de backend van onze API. Lambda voert de code alleen uit wanneer deze nodig is. Het schaalt ook automatisch van een paar verzoeken per dag tot duizend verzoeken per seconde.

maak een lambada-functie

Een lambda-functie maken:

1) Ga naar de lambda-console op https://console.aws.amazon.com/lambda

2) Klik op Functie maken.

3) Voer "mijn-functie" in als de functienaam.

4) Kies Python 3.9 als runtime.

5) Voor deze functie hoeven we niets te veranderen in het tabblad Toestemmingen en Geavanceerde instellingen, aangezien de standaardtoestemmingen voldoende zijn voor deze demonstratie.

4) Klik op Functie maken.

STAP 2 โ€“ Een HTTP-API maken

Amazon API

De HTTP API biedt een HTTP-eindpunt voor uw Lambda-functie. Het werkt als volgt:

  • Client verzendt query naar de HTTP API
  • De API activeert lambda die vervolgens de lambda-functie uitvoert
  • Lambda stuurt het resultaat naar de API
  • API reageert op de client met het ontvangen antwoord

Stappen om een โ€‹โ€‹HTTP-API te maken

1) Bezoek de API Gateway-console op https://console.aws.amazon.com/apigateway

2) Klik op Build om uw eerste HTTP API te maken

3) Klik op Integratie toevoegen voor integratie

4) Selecteer Lambda.

5) Voer uw lambda-functie mijn-functie in.

6) Voer voor API-naam my-http-api in.

7) Klik op Volgende.

8) Bekijk de route die voor u is gemaakt en kies Volgende.

9) Bekijk de fase die voor u is gemaakt en kies Volgende.

10) Klik op Maken.

STAP 3 Test je API โ€“

Vervolgens moeten we onze API testen om er zeker van te zijn dat deze werkt. Hiervoor gebruiken we een webbrowser om onze API aan te roepen.

Amazon API

Om onze API te testen

  1. Ga naar de API Gateway-console op https://console.aws.amazon.com/apigateway
  2. Selecteer uw API.
  3. Noteer de aanroep-URL van uw API. (zie de afbeelding hierboven)
  4. Kopieer de aanroep-URL van uw API en plak deze in een webbrowser. Sluit u aan bij de aanroep-URL en de naam van uw lambda-functie om uw Lambda-functie aan te roepen. De API Gateway-console maakt standaard een route met de naam van uw Lambda-functie "mijn-functie". 

    De volledige URL moet er uitzien als https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function. Wanneer u deze URL laadt, wordt er door uw browser een GET-verzoek naar de API gestuurd

  1. Je zou de tekst "Hallo van Lambda!" moeten zien. in uw browser. Daarom is de reactie van uw API geverifieerd.

Amazon API

Conclusie

We hebben onze eerste HTTP API gemaakt met behulp van Amazon API Gateway en AWS Lambda. Verder kunnen we verschillende use-cases van hetzelfde onderzoeken, en op dezelfde manier kunnen we ook REST API maken, die meer functionaliteiten biedt.

Vond je dit artikel leuk? Vertel ons uw mening in de opmerking hieronder. Vergeet ook niet te vermelden welk artikel je hierna wilt lezen.

Tijdstempel:

Meer van Analytics Vidhya