Quando si parla di web application, la scalabilità è un elemento fondamentale per soddisfare le esigenze delle aziende. In quest’ottica, sta acquisendo sempre più popolarità l'uso di applicazioni serverless in combinazione con React, ampiamente utilizzato per la creazione di interfacce utente dinamiche. In questo articolo, esploriamo come costruire applicazioni serverless con React utilizzando AWS Lambda, per soddisfare le esigenze di scalabilità.
Cos'è un'applicazione serverless?
In un contesto tecnico, "serverless" non significa che non ci siano server coinvolti; piuttosto, si riferisce al fatto che non è necessario gestire fisicamente i server da parte dello sviluppatore. L'infrastruttura sottostante è gestita dal provider di servizi cloud, consentendo agli sviluppatori di concentrarsi esclusivamente sulla logica dell'applicazione.
AWS Lambda è uno dei servizi cloud più utilizzati per implementare un'architettura serverless. Consente di eseguire il codice in risposta a eventi, senza doversi preoccupare dell'infrastruttura sottostante. Questo lo rende un'opzione ideale per la creazione di applicazioni serverless.
Vantaggi dell'architettura serverless
Scalabilità automatica
Con un'architettura serverless, il servizio si espande e si riduce automaticamente in base alla quantità di traffico. Questo significa che è possibile gestire carichi di lavoro variabili senza dover prevedere o gestire manualmente l'allocazione delle risorse.
Riduzione dei costi
Dato che le spese vengono applicate esclusivamente in base all'effettivo utilizzo delle risorse, le applicazioni serverless possono dimostrarsi economicamente vantaggiose in confronto a un'infrastruttura tradizionale basata su server. In aggiunta, è da notare che molti servizi cloud offrono regolarmente un livello di servizio gratuito, il che agevola notevolmente l'inizio di progetti senza oneri iniziali.
Semplicità nella gestione
Senza la necessità di configurare o mantenere server, ci si può concentrare completamente sulla scrittura del codice dell'applicazione. Ciò semplifica notevolmente il processo di sviluppo e distribuzione.
Costruire un'app serverless con React e AWS Lambda
Analizziamo ora come creare un'applicazione serverless con React e AWS Lambda:
Inizializzazione di un progetto React
Per iniziare, ci deve assicurare di avere Node.js e npm installati nel proprio sistema. Quindi, si procede con la creazione di un nuovo progetto React utilizzando il seguente comando:
1
npx create-react-app serverless-react-app
1
cd serverless-react-app
Aggiunta delle dipendenze AWS Amplify
Per facilitare l'integrazione di AWS Lambda nell'app React, utilizzeremo AWS Amplify, una libreria che semplifica l'accesso ai servizi AWS. Installa Amplify con il comando:
1
npm install aws-amplify @aws-amplify/ui-react
Configurazione AWS Amplify
Dopo aver installato Amplify, si esegue il comando di configurazione per inizializzare il proprio progetto:
1
amplify configure
Per autenticarsi con il proprio account AWS e configurare un profilo, vanno seguite le istruzioni.
Creare una Funzione Lambda
Per aggiungere una funzione Lambda al progetto, eseguire il comando:
1
amplify add function
Rispondi alle domande relative alla configurazione della funzione Lambda - come il nome e il runtime. Amplify genererà automaticamente un file di esempio per la tua funzione Lambda.
Collegare la funzione Lambda all'app React
Ora che la funzione Lambda è stata creata, è possibile chiamarla dall'app React. Modifica il codice dell'app React per utilizzare la funzione Lambda:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
import React, { useEffect, useState } from 'react'; import { API } from 'aws-amplify'; function App() { const [data, setData] = useState(''); useEffect(() => { fetchData(); }, []); async function fetchData() { try { const response = await API.get('lambdaFunction', '/items'); setData(response); } catch (error) { console.error(error); } } return ( <div className="App"> <h1>App Serverless con React</h1> <p>{data}</p> </div> ); } export default App;
In questo esempio, stiamo utilizzando la libreria Amplify per effettuare una richiesta GET alla funzione Lambda chiamata "lambdaFunction". I dati restituiti dalla funzione Lambda vengono quindi visualizzati nell'app React.
Distribuzione dell'App React Serverless
Una volta completato il codice dell'app React, è possibile distribuirla in modo serverless utilizzando Amplify:
1
amplify publish
Questo comando pubblicherà l'applicazione e tutte le risorse necessarie sulla tua infrastruttura AWS. Il risultato è un'app React completamente scalabile e gestita senza alcuna preoccupazione per l'infrastruttura sottostante.
Le applicazioni serverless offrono un'infrastruttura altamente scalabile e gestibile per le applicazioni React. AWS Lambda e AWS Amplify semplificano il processo di sviluppo e distribuzione, consentendo di investire energie e risorse nella logica dell'applicazione. Hai bisogno di approfondire il mondo React? Mettiti in contatto con i nostri tecnici, raccontaci il tuo progetto.