Nozioni di base su AWS

Creazione di un'applicazione Web di base

Distribuzione di un'applicazione Web e maggiore interattività con un'API e un database

Modulo 2: Creazione di una funzione serverless

In questo modulo creerai una funzione serverless utilizzando AWS Lambda.

Introduzione

In questo modulo scriverai una piccola parte del codice, in Python, JavaScript o Java, da utilizzare successivamente nel modulo in modo da rendere più interattiva la tua pagina Web. Utilizzerai AWS Lambda, un servizio di calcolo che ci consente di creare funzioni serverless. (Con una "funzione serverless" lo sviluppatore non deve gestire software e hardware, in quanto le applicazioni vengono suddivise in singole funzioni che è possibile richiamare e dimensionare individualmente).

Queste funzioni serverless si attivano in base a un evento specifico che definirai nel codice. Questo servizio è anche molto conveniente poiché vengono addebitati solo gli eventi elaborati, non il tempo di inattività. Ma l'aspetto migliore sta nel non doversi preoccupare della gestione dei server.

Avrai modo di approfondire i seguenti aspetti

  • Creazione di una funzione Lambda dall'inizio utilizzando la Console AWS console (in Python, JavaScript o Java)
  • Creazione (JSON) di eventi nella Console AWS per testare la funzione

Concetti chiave

Servizio di calcolo: servizio che fornisce potenza di elaborazione computazionale.

Funzione serverless: parte di codice che verrà eseguita da un servizio di calcolo on demand.

Trigger Lambda: il tipo di evento che attiverà l'esecuzione di una funzione (serverless) Lambda. Può essere un altro servizio AWS o un input esterno.

 Tempo richiesto per il completamento

5 minuti

 Servizi utilizzati

Implementazione

  • Creazione e configurazione della funzione Lambda
    • Python
    • JavaScript
    • Java
    • Python
      1. In una nuova scheda del browser, accedi alla Console di AWS Lambda.
      2. Assicurati di prendere nota della regione in cui viene creata la funzione. Questa informazione è visibile all'inizio della pagina, accanto al nome dell'account.
      3. Fai clic sul pulsante arancione "Crea funzione".
      4. In "Nome funzione" digita HelloWorldFunction.
      5. Seleziona Python 3.8 dall'elenco a discesa runtime.
      Full Stack tutorial CreateFunction Python

      6. Fai clic sul pulsante arancione "Crea funzione".

      7. All'inizio della schermata dovresti visualizzare una casella verde contenente il seguente messaggio "Creazione funzione completata".

      8. Sostituisci il codice in "Codice funzione" con quanto segue:

      # import the JSON utility package since we will be working with a JSON object
      import json
      # define the handler function that the Lambda service will use an entry point
      def lambda_handler(event, context):
      # extract values from the event object we got from the Lambda service
          name = event['firstName'] +' '+ event['lastName']
      # return a properly formatted JSON object
          return {
          'statusCode': 200,
          'body': json.dumps('Hello from Lambda, ' + name)
          }

      9. Fai clic sul pulsante arancione "Salva" all'inizio della schermata.

      10. Testiamo la nuova funzione. Fai clic su "Seleziona un evento di test" all'inizio della schermata.

      11. Nel menu a discesa visualizzato fai clic su "Configura eventi di test".

      12. In "Nome evento" digita HelloWorldTestEvent.

      13. Copia e incolla l'oggetto JSON seguente per sostituire quello predefinito:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      14. Fai clic sul pulsante arancione "Crea" in fondo alla pagina.

    • JavaScript
      1. In una nuova scheda del browser, accedi alla Console di AWS Lambda.
      2. Assicurati di prendere nota della regione in cui viene creata la funzione. Questa informazione è visibile all'inizio della pagina, accanto al nome dell'account.
      3. Fai clic sul pulsante arancione "Crea funzione".
      4. In "Nome funzione" digita HelloWorldFunction.
      5. Seleziona Node.js 12.x dall'elenco a discesa runtime.
      Full Stack tutorial CreateFunction JavaScript

      6. Fai clic sul pulsante arancione "Crea funzione".

      7. All'inizio della schermata dovresti visualizzare una casella verde contenente il seguente messaggio "Creazione funzione completata".

      8. Sostituisci il codice in "Codice funzione" con quanto segue:

      // Define handler function, the entry point to our code for the Lambda service
      // We receive the object that triggers the function as a parameter
      exports.handler = async (event) => {
          // Extract values from event and format as strings
          let name = JSON.stringify(`Hello from Lambda, ${event.firstName} ${event.lastName}`);
          // Create a JSON object with our response and store it in a constant
          const response = {
              statusCode: 200,
              body: name
          };
          // Return the response constant
          return response;
      };

      9. Fai clic sul pulsante arancione "Salva" all'inizio della schermata.

      10. Testiamo la nuova funzione. Fai clic su "Seleziona un evento di test" all'inizio della schermata.

      11. Nel menu a discesa visualizzato fai clic su "Configura eventi di test".

      12. In "Nome evento" digita HelloWorldTestEvent.

      13. Copia e incolla l'oggetto JSON seguente per sostituire quello predefinito:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      14. Fai clic sul pulsante arancione "Crea" in fondo alla pagina.

    • Java
      1. In una nuova scheda del browser, accedi alla Console di AWS Lambda.
      2. Assicurati di prendere nota della regione in cui viene creata la funzione. Questa informazione è visibile all'inizio della pagina, accanto al nome dell'account.
      3. Fai clic sul pulsante arancione "Crea funzione".
      4. In "Nome funzione" digita HelloWorldFunction.
      5. Seleziona Java 11 dall'elenco a discesa runtime.
      Full Stack tutorial CreateFunction Java

      6. Fai clic sul pulsante arancione "Crea funzione".

      7. All'inizio della schermata dovresti visualizzare una casella verde contenente il seguente messaggio "Creazione funzione completata".

      8. Hai creato una funzione Lambda con una classe gestore denominata Hello. Poiché Java è un linguaggio compilato, non puoi visualizzare o modificare il codice sorgente nella console Lambda, ma puoi modificarne la configurazione, richiamarlo e configurar trigger.

      9. Per aggiornare il codice della funzione, dovrai creare un pacchetto di distribuzione nella forma di un file JAR o di un archivio ZIP contenente il codice della funzione. Ai fini di questo tutorial, abbiamo fornito il file JAR con il codice funzione aggiornato da utilizzare qui.

      10. Vai al "Codice funzione" e carica il file JAR.

      Full Stack tutorial UploadJar

      11. Aggiorna "Gestore" con com.example.app.LambdaRequestHandler::handleRequest.

      Full Stack tutorial UpdateHandler

      12. Fai clic sul pulsante arancione "Salva" all'inizio della schermata.

      13. Testiamo la nuova funzione. Fai clic su "Seleziona un evento di test" all'inizio della schermata.

      14. Nel menu a discesa visualizzato fai clic su "Configura eventi di test".

      15. In "Nome evento" digita HelloWorldTestEvent.

      16. Copia e incolla l'oggetto JSON seguente per sostituire quello predefinito:

      {
      "firstName": "Ada",
      "lastName": "Lovelace"
      }

      17. Fai clic sul pulsante arancione "Crea" in fondo alla pagina.

  • Test della funzione Lambda
    1. Fai clic sul pulsante grigio "Test" a inizio pagina.
    2. A inizio pagina dovresti visualizzare una casella verde chiaro con il testo seguente: "Risultato esecuzione: completata". Puoi fare clic sui dettagli per visualizzare l'evento restituito dalla funzione.
    3. Ben fatto! Adesso la tua funziona Lambda è attiva.

Architettura dell'applicazione

Adesso che hai completato il modulo, la nostra architettura avrà il seguente aspetto:

full-stack amplify console arch diagram module 2

Come puoi notare, abbiamo aggiunto il servizio AWS Lambda, ma non è ancora collegato ad AWS Amplify o ai nostri utenti. Lo faremo nel modulo successivo.

Questo modulo è stato utile?

Grazie
Facci sapere cosa ti è piaciuto.
Spiacenti di non esserti stati d'aiuto
C'è qualcosa di obsoleto, ambiguo o approssimativo? Aiutaci a migliorare questo tutorial con il tuo feedback.

Collegamento di una funzione serverless a un'applicazione Web