Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Amazon Web Services

Introduzione ad Amazon API Gateway (Italiano) | Introduction to Amazon API Gateway (Italian)

Amazon Web Services and Amazon via AWS Skill Builder

Overview

Panoramica

In questo laboratorio potrai creare un semplice microservizio FAQ. Il microservizio restituirà un oggetto JSON contenente una coppia di domande e risposte casuali utilizzando un endpoint Amazon API Gateway che richiama una funzione AWS Lambda. Ecco il modello di architettura per il microservizio:

ARGOMENTI TRATTATI

Al termine di questo laboratorio sarai in grado di:

  • Creare una funzione AWS Lambda
  • Creare un endpoint Amazon API Gateway
  • Eseguire il debug di API Gateway e Lambda con Amazon CloudWatch

PREREQUISITI

Una certa esperienza di programmazione e familiarità con lo sviluppo di applicazioni sarà utile, ma non necessaria per eseguire il laboratorio. Sarebbe comunque necessario aver completato il laboratorio autodidattico Introduzione ad AWS Lambda prima di effettuare questo laboratorio.

ALTRI SERVIZI AWS

In conformità alla policy IAM, i servizi AWS diversi da quelli necessari per questo laboratorio sono disabilitati per la durata del tuo accesso al laboratorio. Inoltre, le funzionalità dei servizi utilizzati nel laboratorio sono limitate allo stretto necessario. In alcuni casi, anzi, sono soggette a ulteriori restrizioni ai fini della riuscita del laboratorio. Se provi ad accedere ad altri servizi o a eseguire operazioni al di fuori da quelle richieste dal laboratorio, pertanto, riceverai messaggi di errore.

Nozioni tecniche

ARCHITETTURA DEI MICROSERVIZI

“Lo stile architettonico dei microservizi è un approccio allo sviluppo di una singola applicazione come una suite di piccoli servizi, ognuno in esecuzione nel proprio processo e che comunicano con meccanismi leggeri, spesso un’API di risorse HTTP. Questi servizi sono costruiti sulle capacità di business e possono essere distribuiti in modo indipendente da macchinari di distribuzione completamente automatizzati. Vi è un minimo di gestione centralizzata di questi servizi, che possono essere scritti in diversi linguaggi di programmazione e utilizzare diverse tecnologie di archiviazione dei dati.” – James Lewis e Martin Fowler

Il concetto di architettura dei microservizi consiste nel prendere un ampio sistema complesso e suddividerlo in servizi indipendenti disaccoppiati che sono facili da gestire ed estendere. Ciò consente agli sviluppatori di realizzare i loro obiettivi fondamentali relativi alla programmazione, come l’estensibilità, la disponibilità e la manutenibilità.

Amazon API Gateway e AWS Lambda forniscono la combinazione perfetta di servizi Web per creare, distribuire e gestire in modo semplice una serie di microservizi che possono costituire la base di sistemi software complessi.

In questo laboratorio, imparerai a sviluppare, distribuire ed eseguire il debug di un microservizio semplice che rappresenta una parte di un sistema molto più ampio. È formato da due parti: l’API RESTful e la funzione che viene eseguita quando un utente accede all’endpoint.

APPLICATION PROGRAMMING INTERFACE (API)

Un’Application Programming Interface (API) è una serie di istruzioni che definisce in che modo gli sviluppatori si interfacciano con un’applicazione. Il concetto dietro un’API è quello di creare un approccio standardizzato per l’interfaccia dei vari servizi forniti da un’applicazione. Un’API è progettata per essere utilizzata con un Software Development Kit (SDK), che è una raccolta di strumenti che consente agli sviluppatori di creare facilmente applicazioni downstream basate sull’API.

STRATEGIA API-FIRST

Molte organizzazioni di sviluppo software stanno adottando una strategia API-first, secondo cui ogni servizio all’interno dello stack viene rilasciato sempre e prima di tutto come un’API. Durante la progettazione di un servizio, è difficile conoscere tutte le varie applicazioni che potrebbero voler utilizzare tale servizio. Ad esempio, il servizio FAQ in questo laboratorio sarebbe ideale per inserire pagine di domande frequenti in un sito Web esterno. Tuttavia, è realistico pensare che un’azienda che si occupa di formazione sul cloud potrebbe voler integrare il servizio FAQ all’interno dei suoi materiali di training per flash card o documenti per la formazione. Se si trattasse semplicemente di un sito Web statico, il processo di integrazione per l’azienda di formazione sarebbe molto difficile. Fornendo un’API che può essere utilizzata in un formato standardizzato, il microservizio rende possibile lo sviluppo di un ecosistema intorno al servizio, nonché casi d’uso inizialmente non presi in considerazione.

API RESTFUL

REST (Representational State Transfer) indica le architetture che rispettano sei vincoli:

  • Separazione dei problemi tramite un modello client-server.
  • Lo stato è archiviato interamente nel client e la comunicazione tra client e server è stateless.
  • Il client memorizzerà nella cache i dati per migliorare l’efficienza della rete.
  • È presente un’interfaccia uniforme (sotto forma di API) tra il server e il client.
  • Man mano che il sistema diventa complesso, vengono introdotti livelli. Possono esserci più livelli di componenti RESTful.
  • Segue un modello code-on-demand, in cui il codice può essere scaricato in modo immediato (nel nostro caso implementato in Lambda) e modificato senza dover aggiornare i client.

Questo laboratorio segue un modello RESTful. I client inviano richieste alle funzioni Lambda back-end (server). La logica del servizio è incapsulata all’interno della funzione Lambda e fornisce un’interfaccia uniforme per i client.

PROCEDURE CONSIGLIATE PER CREARE UN’API RESTFUL

Un obiettivo chiave della creazione di un’API è quello di consentire lo sviluppo di un ecosistema di innovazione intorno al tuo set di servizi. Pertanto, è importante rendere l’API intuitiva e facile da usare. Ecco uno schema di metodo e denominazione comune da seguire:

OperazioneURLFunzioneGET/questionsConsente di tornare a tutte le domandeGET/questions/17Restituisce la domanda numero 17POST/questionsConsente di creare una nuova domandaPUT/questions/17Consente di aggiornare la domanda numero 17PATCH/questions/17Consente di aggiornare parzialmente la domanda numero 17DELETE/questions/17Consente di eliminare la domanda numero 17

Nota come si ottiene una domanda specifica; l’endpoint dell’API NON è /question/name ma /questions/identifier. Ciò consente allo sviluppatore dell’API di fornire la funzionalità che consente di ottenere gruppi di domande (anche tutte le domande) con l’endpoint /questions, oltre alle risposte di un singolo record con /questions/identifier. Per ulteriori informazioni, consulta la sezione delle risorse aggiuntive alla fine della guida di questo laboratorio.

Di seguito sono disponibili alcuni buoni esempi di API RESTful:

  • AWS Elemental MediaConvert
  • Spotify
  • Twitch
  • Netflix Genie
  • Slack

AMAZON API GATEWAY E AWS LAMBDA

Un microservizio che usa Amazon API Gateway è costituito da una risorsa definita e metodi associati (GET, POST, PUT, ecc.) in API Gateway nonché il target back-end. In questo laboratorio, il target back-end sarà una funzione Lambda. Tuttavia, il target back-end potrebbe essere un altro endpoint HTTP (un’API o un server Web di attesa di una terza parte), un proxy di servizio AWS o un’integrazione fittizia da usare come segnaposto.

AMAZON API GATEWAY

API Gateway è un servizio gestito fornito da AWS che semplifica la creazione, la distribuzione e la gestione delle API. API Gateway include funzionalità per:

  • Trasformare il corpo e le intestazioni delle richieste di API in entrata affinché abbiano una corrispondenza con i sistemi back-end
  • Trasformare il corpo e le intestazioni delle risposte di API in uscita per soddisfare i requisiti relativi alle API
  • Controllare l’accesso alle API tramite AWS Identity and Access Management
  • Creare e applicare chiavi API per lo sviluppo di una terza parte
  • Abilitare l’integrazione Amazon CloudWatch per il monitoraggio delle API
  • Memorizzare nella cache le risposte di API tramite Amazon CloudFront per tempi di risposta più rapidi
  • Distribuire un’API in più fasi, consentendo una differenziazione agevole tra sviluppo, test, produzione e controllo delle versioni
  • Connettere domini personalizzati a un’API
  • Definire modelli per standardizzare le trasformazioni delle richieste e delle risposte delle API

TERMINOLOGIA DI AMAZON API GATEWAY E AWS LAMBDA

  • Risorsa: rappresentata come percorso ed endpoint dell’URL. Ad esempio: api.mysite.com/questions. È possibile associare metodi HTTP con le risorse e definire target back-end diversi per ciascun metodo. In un’architettura di microservizi, una risorsa rappresenterebbe un singolo microservizio all’interno del sistema.
  • Metodo: in API Gateway, un metodo è identificato dalla combinazione di un percorso di una risorsa e un verbo HTTP, come GET, POST e DELETE.
  • Richiesta di metodo: le impostazioni relative alla richiesta di metodo in API Gateway archiviano le impostazioni di autorizzazione dei metodi e definiscono i parametri della stringa di query dell’URL e le intestazioni delle richieste HTTP ricevute dal client.
  • Richiesta di integrazione: le impostazioni relative alla richiesta di integrazione definiscono il target back-end utilizzato con il metodo. Consentono anche di definire i modelli di mappatura, per trasformare la richiesta in entrata in modo da renderla come il target back-end si aspetta.
  • Risposta di integrazione: le impostazioni relative alla risposta di integrazione consentono di definire le mappature tra la risposta del target back-end e la risposta del metodo in API Gateway. È anche possibile trasformare i dati restituiti dal target back-end in modo da renderli come gli utenti finali e le applicazioni si aspettano.
  • Risposta di metodo: le impostazioni relative alla risposta di metodo definiscono i tipi di risposta del metodo, nonché i relativi tipi di contenuti e intestazioni.
  • Modello: in API Gateway un modello definisce il formato, noto anche come schema o forma, di alcuni dati. I modelli vengono creati e utilizzati per semplificare la creazione dei modelli di mappatura. Poiché API Gateway è progettato per essere compatibile principalmente con i dati in formato JSON (JavaScript Object Notation), API Gateway sfrutta lo schema JSON per definire lo schema previsto dei dati.
  • Fase: in API Gateway, una fase definisce uno stadio del processo attraverso cui la distribuzione di un’API è accessibile. In genere, viene utilizzata per deviare tra versioni, nonché tra endpoint di produzione ed endpoint di sviluppo e così via.
  • Piano: un piano di Lambda è una funzione Lambda di esempio che può essere utilizzata come base per creare nuove funzioni Lambda.

Reviews

Start your review of Introduzione ad Amazon API Gateway (Italiano) | Introduction to Amazon API Gateway (Italian)

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.