Introduzione ad Amazon API Gateway utilizzando AWS Lambda

Introduzione ad Amazon API Gateway utilizzando AWS Lambda

Nodo di origine: 1860150

Introduzione

Cos'è un'API?

In termini semplici, l'API è un messenger; capiamolo con alcuni esempi. Diciamo che hai fame e devi cucinare qualcosa a casa. Se vuoi fare i noodles, prendi gli ingredienti dalla credenza, accendi il fornello e fallo da solo. Questo è un programma che fa qualcosa da solo con le proprie risorse. Ma diciamo che vuoi la pizza: non hai gli ingredienti e il tuo forno di casa non è proprio adatto per fare una bella crosta croccante. Quindi vai invece in una pizzeria. Ma a differenza di casa, non puoi semplicemente andare in cucina e iniziare a usare i loro ingredienti per fare una pizza. Non vogliono le tue mani sporche su tutta la loro roba! Quindi cosa farai? Devi andare al bancone e fare un ordine: ci sarà un menu che elenca quali pizze puoi ordinare e quali condimenti o altre opzioni puoi scegliere. Questa è un'API.

Un'interfaccia di programmazione dell'applicazione (API) è un insieme di regole che specificano come devono interagire due programmi software.

Un'API consente a un programma software di accedere alla funzionalità di un altro programma software. Ad esempio, se si dispone di un programma software che deve recuperare dati da Internet, può utilizzare un'API per richiedere tali dati a un server. Il server risponderà quindi con i dati richiesti e il programma software potrà utilizzarli secondo necessità.

Le API vengono utilizzate per consentire a diversi programmi software di comunicare tra loro e condividere dati e funzionalità. Sono una parte importante del moderno sviluppo del software, poiché consentono a diversi sistemi di lavorare insieme e consentono la creazione di applicazioni software più complesse e potenti.

API HTTP

L'API HTTP è un tipo di API che utilizza il protocollo HTTP per inviare e ricevere dati. Consente ai programmi software di inviare e ricevere dati utilizzando richieste e risposte HTTP. Queste richieste e risposte possono essere in vari formati, come testo normale, JSON o XML. Sono comunemente utilizzati in un'ampia gamma di applicazioni, tra cui applicazioni Web, app per dispositivi mobili e microservizi. Queste API sono relativamente più economiche delle API REST e hanno meno funzionalità rispetto alle successive.

API REST

L'API REST è un tipo di API che segue un insieme di principi architetturali chiamati REST (Representational State Transfer). REST è uno stile di architettura software che definisce un insieme di vincoli per la creazione di API web.

API con stato

Un'API con stato è un'API che mantiene le informazioni su ogni richiesta del client e utilizza queste informazioni per elaborare le richieste successive. Ciò significa che l'API memorizza i dati su ogni richiesta, come i parametri della richiesta, in una sessione lato server. Questi dati vengono poi utilizzati per elaborare le richieste successive dello stesso cliente.

API senza stato

Un'API senza stato, invece, non conserva le informazioni sulle richieste dei client. Elabora ogni richiesta in modo indipendente, senza memorizzare alcun dato sulle richieste precedenti. Ciò significa che l'API non mantiene una sessione lato server e non utilizza i dati delle richieste precedenti per elaborare le richieste successive.

Differenze chiave tra API stateful e stateless

Di seguito sono riportate alcune differenze chiave tra API stateful e stateless:

API DI STATO

API SENZA STATO

1. Richiedere una sessione lato server per archiviare i dati sulle richieste dei client 1. Non richiedere una sessione lato server per archiviare i dati sulle richieste dei client
2. Queste a volte possono essere più lente delle API senza stato perché richiedono e archiviano dati che richiedono tempo. 2. Le API senza stato sono più veloci perché non richiedono e non memorizzano i dati sulle richieste.
3. Le API con stato non sono facili da scalare  3. Più facile da scalare in quanto non è necessario conservare i dati sulle richieste precedenti.
4. Generalmente considerato meno sicuro delle API stateless 4. Questi sono generalmente considerati più sicuri.

Cos'è Amazon API Gateway?

Amazon API Gateway è un servizio AWS utilizzato per creare, mantenere e monitorare API stateful (websocket) e stateless (HTTP e REST). Possiamo utilizzare queste API per accedere a:

  1. Qualsiasi servizio AWS
  2. I dati archiviati nel cloud AWS (come un bucket S3)
  3. Qualsiasi altro servizio web.

Se sei uno sviluppatore di API, puoi facilmente rendere le tue API anche a sviluppatori di terze parti.

Esistono principalmente due tipi di utenti di AWS API Gateway.

  1. i) Sviluppatori di API che creano e distribuiscono un'API per abilitare la funzionalità richiesta in API Gateway
  2. ii) Sviluppatori di app che sono clienti dello sviluppatore dell'API.

Architettura dell'Amazon API Gateway

architettura

Questa architettura illustra come le applicazioni serverless possono essere create con un'esperienza di sviluppo coerente e integrata. Dagli utenti finali ai data center, API Gateway gestisce tutte le attività coinvolte, come l'accettazione e l'elaborazione di migliaia di chiamate simultanee, la gestione del traffico, l'autorizzazione, il monitoraggio, il controllo degli accessi, ecc.

Funzionalità di Amazon API Gateway

  1. Supporta API stateful e stateless. (Esempi: Websocket, HTTP e REST).
  2. Potenti meccanismi di autenticazione includono AWS Identity, criteri di gestione degli accessi e autorizzazione Lambda.
  3. Portale per sviluppatori in cui gli sviluppatori di API possono pubblicare le proprie API.
  4. Esecuzione e registrazione degli accessi per CloudWatch, inclusa l'opzione per impostare gli allarmi.
  5. Integrazione con altri servizi AWS come AWS Lambda e AWS Kinesis.
  6. L'integrazione con AWS WAF viene utilizzata per la protezione dagli exploit Web e AWS X-Ray viene utilizzato per comprendere ed enfatizzare le latenze delle prestazioni.

Nozioni di base su Amazon API Gateway

Ora creeremo un'API senza server. In un'API serverless, possiamo concentrarci sulle nostre applicazioni invece di dedicare tempo alla gestione dei server. Funziona così:

  • L'API viene richiamata dal client
  • L'API invia la richiesta a lambda
  • Lambda esegue la funzione lambda e invia il risultato all'API
  • Dopo aver ricevuto il risultato da lambda, l'API risponde al client

http API

Passaggio 1: creare una funzione lambda

La funzione Lambda viene utilizzata per il backend della nostra API. Lambda esegue il codice solo quando è necessario. Inoltre, scala automaticamente da poche richieste al giorno a migliaia di richieste al secondo.

creare la funzione lambada

Creazione di una funzione lambda:

1) Vai alla console lambda su https://console.aws.amazon.com/lambda

2) Fare clic su Crea funzione.

3) Immettere "my-function" come nome della funzione.

4) Scegli Python 3.9 come runtime.

5) Per questa funzione non avremo bisogno di cambiare nulla nella scheda Autorizzazioni e Impostazioni avanzate in quanto le autorizzazioni predefinite sono sufficienti per questa dimostrazione.

4) Fare clic su Crea funzione.

PASSAGGIO 2 – Creazione di un'API HTTP

API di Amazon

L'API HTTP fornisce un endpoint HTTP per la tua funzione Lambda. Funziona così:

  • Il client invia la query all'API HTTP
  • L'API attiva lambda che quindi esegue la funzione lambda
  • Lambda invia il risultato all'API
  • L'API risponde al client con la risposta ricevuta

Passaggi per creare un'API HTTP

1) Visita la console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway

2) Fai clic su Crea per creare la tua prima API HTTP

3) Fare clic su Aggiungi integrazione per l'integrazione

4) Selezionare Lambda.

5) Inserisci la tua funzione lambda my-function.

6) Per il nome dell'API, inserisci my-http-api.

7) Fare clic su Avanti.

8) Controlla il percorso creato per te, quindi scegli Avanti.

9) Esamina la fase creata per te, quindi scegli Avanti.

10) Fare clic su Crea.

PASSO 3 Testa la tua API –

Successivamente, dobbiamo testare la nostra API per assicurarci che funzioni. Per questo useremo un browser web per invocare la nostra API.

API di Amazon

Per testare la nostra API

  1. Vai alla console API Gateway all'indirizzo https://console.aws.amazon.com/apigateway
  2. Seleziona la tua API.
  3. Annota l'URL di chiamata dell'API. (vedi l'immagine sopra)
  4. Copia l'URL di chiamata dell'API e incollalo in un browser web. Unisci l'URL di chiamata e il nome della tua funzione lambda per chiamare la tua funzione Lambda. La console API Gateway crea una route utilizzando il nome della tua funzione Lambda "my-function" per impostazione predefinita. 

    L'URL completo dovrebbe essere simile a https://abcdef123.execute-api.us-east-2.amazonaws.com/my-function. Quando carichi questo URL, il tuo browser invia una richiesta GET all'API

  1. Dovresti vedere il testo "Ciao da Lambda!" nel tuo browser. Quindi la risposta della tua API è verificata.

API di Amazon

Conclusione

Abbiamo creato la nostra prima API HTTP utilizzando Amazon API Gateway e AWS Lambda. Inoltre, possiamo esplorare vari casi d'uso dello stesso e, allo stesso modo, possiamo creare anche l'API REST, che fornisce più funzionalità.

Ti è piaciuto questo articolo? Raccontaci i tuoi pensieri nel commento qui sotto. Inoltre, non dimenticare di menzionare quale articolo vorresti leggere dopo.

Timestamp:

Di più da Analisi Vidhya