SERVERLESS REACT APPLICATIONS

image

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

  1. 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.

  2. 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.

  3. 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:

  1. 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
  2. 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
  3. 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.

  4. 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.

  5. 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.

  6. 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.