Come distribuire un'API Serverless Node.js con AWS API Gateway?

Come Distribuire Un Api Serverless Node Js Con Aws Api Gateway



AWS è una piattaforma di cloud computing con un vasto portafoglio di servizi. Dall'archiviazione dei dati alla manipolazione e all'analisi dei dati, questi servizi coprono diversi aspetti del settore IT. Oggi AWS supporta anche diversi linguaggi di sviluppo e ambienti runtime. Uno degli esempi più comuni di tali servizi è AWS Lambda

AWSLambda è un servizio di elaborazione basato sugli eventi di AWS che consente ai suoi utenti di eseguire il proprio codice senza fornire o gestire i server. Lambda gestisce in modo efficiente tutta l'infrastruttura informatica e l'amministrazione delle risorse. Esistono più linguaggi di sviluppo supportati dal servizio Lambda, ad esempio Go, Ruby, Python, ecc. Lambda è anche considerato un servizio conveniente in quanto comporta costi solo per il tempo di elaborazione consumato dall'utente. Non sono previsti costi aggiuntivi quando il codice fornito alla funzione Lambda non è nello stato di esecuzione.

Per saperne di più : Nozioni di base su AWS Lambda







Contorno rapido



In questo articolo vengono illustrati i seguenti aspetti:



Cos'è un framework serverless?

Il termine “Senza server” si riferisce alla terminologia in cui la fornitura e la manutenzione dei server sono gestiti da software di terze parti o fornitori di servizi cloud. Tali framework consentono agli utenti di concentrarsi sulla logica aziendale principale invece di mantenere i server. Oggi, i Serverless Framework hanno attirato l’attenzione dei giganti della tecnologia e offrono enormi vantaggi.





Inoltre, questa è anche una soluzione economica perché i server sono forniti e gestiti dai fornitori di servizi. In AWS, Lambda è considerato un servizio Serverless poiché richiede solo il codice dell'utente per funzionare. Con AWS Lambda, gli utenti possono creare e scalare facilmente le applicazioni in diversi ambienti runtime in modo conveniente.

Cos'è un'API?

API è l'acronimo di 'Interfaccia di programmazione applicazioni'. L'introduzione formale delle API prevede che si tratti di un insieme di definizioni e protocolli che consentono ai due componenti di un software o di un'applicazione di scambiarsi informazioni utili per la comunicazione.



Un'applicazione in tempo reale dell'API avviene utilizzando un browser Web. Ogni volta che un utente cerca un sito web, la richiesta viene recapitata al server su cui risiede il sito web. Questa comunicazione tra il server e il browser avviene tramite l'API.

Cos'è API Gateway?

API Gateway è un servizio completamente gestito di AWS simile a uno strumento di gestione API. Utilizzando il gateway API, gli sviluppatori possono creare, gestire, pubblicare e scalare facilmente diverse API. Allo stesso modo, il gateway API consente agli utenti di comunicare con gli altri microservizi in esecuzione sul lato server. Prende l'input dell'utente, lo elabora e quindi lo indirizza ai microservizi appropriati. Questi microservizi elaboreranno quindi questo input per la generazione di output.

Quali sono i diversi tipi di API in API Gateway?

Il gateway API fornisce servizi di gestione per tre diversi tipi di API come indicato di seguito:

API HTTP: Questa API è ampiamente utilizzata nello sviluppo web che è limitato solo al lato client. Tali API possono essere classificate come private o pubbliche.

API di riposo: Il termine REST sta per 'API di trasferimento dello stato di rappresentanza'. È uno degli approcci più comunemente utilizzati che separano il frontend e il backend dell'applicazione. Le API REST sono di natura stateless e sono flessibili per lo sviluppo e l'implementazione.

API WebSocket: Tali API vengono utilizzate quando è coinvolta la comunicazione socket. L'API WebSocket consente agli utenti di creare socket per la comunicazione bidirezionale full duplex nello sviluppo Web. Queste API sono scritte in JavaScript.

Come distribuire un'API Node.js serverless con API Gateway?

Per la distribuzione di un'API Serverless Node.js con API Gateway, utilizzeremo il bucket S3, la funzione Lambda e il gateway API. Il bucket S3 conterrà il codice dell'applicazione. L'URI univoco del bucket verrà fornito alla funzione Lambda come gestore. Il gateway API verrà aggiunto come trigger alla funzione Lambda che elaborerà l'input dell'utente e fornirà l'output appropriato.

Di seguito sono riportati i passaggi per la distribuzione di un'API Serverless Node.js con il gateway API:

Passaggio 1: crea una funzione Lambda

Per creare una funzione Lambda, accedi al file “Lambda” servizio da parte di Console di gestione AWS :

Saperne di più: 'Come creare una funzione Lambda con Python Runtime' .

Nell'interfaccia della funzione Lambda, fare clic su “Crea funzione” pulsante:

Dall'interfaccia Crea funzione, seleziona “Autore da zero” opzione:

Poi arriva il 'Informazioni di base' sezione. In questa sezione, fornisci il nome per la funzione Lambda nel file “Nome funzione” :

Clicca sul “Crea funzione” pulsante situato nella parte inferiore dell'interfaccia:

Ecco, il funzione è stato creato con successo :

Passaggio 2: crea il gateway API

Il passaggio successivo consiste nel creare un gateway API. A questo scopo accedi al “Gateway API” servizio da parte di Console di gestione AWS :

Scorri verso il basso l'interfaccia API Gateway e fai clic su 'Costruire' opzione da API REST bloccare:

Sul 'Crea API' interfaccia, Selezionare il seguente opzione evidenziata . Mentre stiamo costruendo a API di riposo da zero, abbiamo scelto le seguenti opzioni:

Nel Impostazioni sezione sulla stessa interfaccia, fornire il nome dell'API nel file 'Nome API' campo di testo:

Clicca sul 'Crea API' pulsante:

Dopo aver creato con successo l'API, fare clic su 'Azioni' e seleziona le seguenti opzioni evidenziate per configurare le risorse e i metodi dell'API:

Successivamente, fornisci il nome dell'API nel file 'Nome risorsa' campo di testo. Nel Percorso delle risorse, gli utenti possono specificare il percorso delle risorse. Questo percorso specificato verrà quindi combinato con i metodi originali per gestire le richieste. Clicca il “Crea risorsa” pulsante:

Dopo aver creato la risorsa, fare clic su 'Azioni' nuovamente la scheda e scegli il file “Crea risorsa” metodo per definire metodi e risorse all'interno dell'API:

Fornire il nome del 'Nome risorsa' campo e fare clic su “Crea risorsa” pulsante:

Dopo aver configurato le risorse nidificate, tocca 'Azioni' pulsante e fare clic su “Crea metodo” pulsante dal menu a discesa :

Vogliamo testare il funzionamento della nostra API utilizzando il file Richiesta OTTIENI in Node.js. Pertanto, nell'interfaccia Metodi, selezioneremo il file 'OTTENERE' richiesta:

Dopo aver selezionato il Richiesta OTTIENI , clicca sul 'controllo' pulsante per confermare le modifiche:

Sul 'OTTENERE' dell'interfaccia del metodo, fornire il nome per la funzione Lambda creata in precedenza ed effettuare le seguenti configurazioni. Dopodiché premi il 'Salva' pulsante per confermare le modifiche:

Dopo aver fatto clic su 'Salva' pulsante, verrà visualizzata la seguente finestra di dialogo. Clicca il 'OK' pulsante:

Allo stesso modo, crea un altro metodo seguendo passaggi simili a quelli che abbiamo seguito per il primo metodo. Gli utenti possono creare più metodi all'interno di un'API in base alle proprie esigenze. Dopo aver configurato tutti i metodi, fare clic su 'Azioni' scheda e selezionare il 'Distribuisci API' opzione:

Verrà visualizzata la seguente finestra di dialogo. Nel “Fase di distribuzione” fornire i dettagli. Poi arriva il 'Nome d'arte' campo per specificare il nome della fase. Clicca sul “Distribuisci” pulsante:

IL API è stato creato con successo :

Scorrere verso il basso l'interfaccia e fare clic su 'Salvare le modifiche' pulsante:

Passaggio 3: crea il bucket S3

In questo passaggio creeremo un bucket per archiviare il codice. Questo codice verrà associato alla funzione Lambda e l'API verrà utilizzata per recuperare gli attributi configurati all'interno del codice.

Per creare un bucket S3, cerca il file 'S3' servizio nella barra di ricerca del Console di gestione AWS. Tocca il nome del servizio dai risultati visualizzati:

Sulla console S3, fare clic su 'Crea secchio' opzione per avviare il processo:

Nel Configurazione generale sezione, fornire un identificatore univoco globale per il bucket nella sezione campo di testo evidenziato :

Mantenendo il impostazioni COME predefinito , clicca sul 'Crea secchio' pulsante nella parte inferiore dell'interfaccia:

Questo creerà il secchio. Ora, per caricare il codice nel bucket S3, abbiamo fornito un file semplice codice JS del nodo In GitHub deposito. Scarica il codice nel Formato zip :

Dopo aver scaricato il File zip , vai a Pannello di controllo S3 e scegli il secchio. Nell'interfaccia successiva, fare clic su 'Caricamento' pulsante e caricamento IL File zip al secchio:

Saperne di più: Come caricare oggetti in Amazon Simple Storage Service?

Clicca il 'Aggiungere i file' pulsante situato sulla destra dell'interfaccia, accanto al 'Aggiungi cartella' pulsante. Dopo aver aggiunto il File zip al secchio, colpisci il 'Caricamento' pulsante nella parte inferiore dell'interfaccia:

IL file è stato caricato con successo :

Dopo caricamento il file nel bucket, fare clic su Oggetto per visualizzare le proprietà:

Clicca sul 'Copia URI S3' pulsante. Questo verrà aggiunto alla funzione Lambda:

Vai a Pannello di controllo Lambda e scegli la funzione Lambda:

Scorri verso il basso fino a 'Codice' sezione e toccare “Carica da” pulsante. Dal menu a discesa, clicca sul “Posizione Amazon S3” opzione:

Incolla il 'URI S3' nella finestra di dialogo visualizzata e fare clic su 'Salva' pulsante:

Sul Interfaccia della funzione Lambda , scorri verso il basso fino a 'Impostazioni di esecuzione' e fare clic su 'Modificare' pulsante:

Nel “Gestore” campo, modificare le seguenti configurazioni. IL “nodeapi” è il nome della cartella caricata nel bucket S3 e index.js è il punto di ingresso. Successivamente fare clic su 'Salva' pulsante:

Passaggio 4: verifica

Vai a Portale API console di servizio e fare clic su “API” nome:

Dopo aver selezionato l'API, fare clic su “Stadi” pulsante dalla barra laterale e quindi fare clic sulla fase di distribuzione, ad esempio firststage:

Copia il URL e avviare il Postino strumento sul computer locale:

Creare un Richiesta OTTIENI nel Postino e incolla l'URL al suo interno. Dopo aver fatto clic su 'Inviare' pulsante, otteniamo i seguenti risultati:

Questo è tutto da questa guida.

Conclusione

Per distribuire l'API Node.js con il gateway API, carica il codice nel bucket S3, aggiungilo come gestore e il gateway API come trigger per la funzione Lambda. La richiesta avviata utilizzando Postman verrà consegnata alla funzione Lambda tramite l'API. Per creare l'API, utilizzare il servizio gateway API di AWS. Il bucket S3 aggiunto come gestore alla funzione Lambda fornirà il codice per l'elaborazione della richiesta. L'output verrà mostrato sulla console del postino. Questo articolo è un tutorial passo passo per l'implementazione dell'API Node.js con il gateway API AWS.