Creazione di un'applicazione Web di base

TUTORIAL

Modulo 2: Creazione di una funzione serverless

In questo modulo creerai una funzione serverless utilizzando AWS Lambda

Panoramica

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 elaborazione che ti consente di creare funzioni serverless, eliminando la necessità di gestire software e hardware. Invece, 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.

Obiettivi

In questo modulo completerai le seguenti operazioni:

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

Concetti chiave

Servizio di calcolo: un servizio che fornisce potenza di calcolo 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 minimo richiesto per il completamento

5 minuti

 Servizi utilizzati

 Ultimo aggiornamento

4 aprile 2023

Implementazione

    • Python
      1. In una nuova scheda del browser, accedi alla console di AWS Lambda.
      2. Assicurati di creare la tua funzione nella stessa regione in cui hai creato l'app Web nel modulo precedente. Questa informazione è visibile all'inizio della pagina, accanto al nome dell'account.
      3. Fai clic sul pulsante arancione Crea funzione.
      4. In Nome funzione, immetti HelloWorldFunction.
      5. Seleziona Python 3.8 dal menu a discesa del runtime e lascia invariato il resto delle impostazioni predefinite.

      6. Fai clic sul pulsante arancione Crea funzione.

      7. All'inizio della schermata dovresti visualizzare una casella verde contenente il seguente messaggio "Funzione HelloWorldFunction creata correttamente".

      8. Nella scheda Origine codice, sostituisci il codice in lambda_function.py 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 as 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. Salva le modifiche passando al menu File e selezionando Salva.

      10. Scegli Implementa per implementare le modifiche.

      11. Testiamo la nuova funzione. Scegli il pulsante arancione Test per creare un evento di test selezionando Configura evento di test.

      12. In Nome evento, immetti HelloWorldTestEvent.

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

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

      14. Scegli il pulsante Salva nella parte inferiore della pagina.

    • JavaScript
      1. In una nuova scheda del browser, accedi alla console di AWS Lambda.
      2. Assicurati di creare la tua funzione nella stessa regione in cui hai creato l'app Web nel modulo precedente. Questa informazione è visibile all'inizio della pagina, accanto al nome dell'account.
      3. Fai clic sul pulsante arancione Crea funzione.
      4. In Nome funzione, immetti HelloWorldFunction.
      5. Seleziona Node.js 16.x dal menu a discesa di runtime e lascia invariate le altre impostazioni predefinite.

      6. Fai clic sul pulsante arancione Crea funzione.

      7. All'inizio della schermata dovresti visualizzare una casella verde contenente il seguente messaggio "Funzione HelloWorldFunction creata correttamente".

      8. In Origine codice, sostituisci il codice in index.js 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. Scegli il pulsante Implementa accanto al pulsante arancione Test nella parte superiore dell'editor di codice.

      10. Scegli il pulsante arancione Test situato nella parte superiore dell'editor di codice.

      11. In Nome evento, immetti HelloWorldTestEvent.

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

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

      13. Scegli il pulsante Salva per creare l'evento di test.

      14. Scegli nuovamente il pulsante arancione Test per eseguire l'evento di test. Il risultato verrà visualizzato nella sezione Risultati di esecuzione dell'editor di codice.

    • Java
      1. In una nuova scheda del browser, accedi alla console di AWS Lambda.
      2. Assicurati di creare la tua funzione nella stessa regione in cui hai creato l'app Web nel modulo precedente. Questa informazione è visibile all'inizio della pagina, accanto al nome dell'account.
      3. Fai clic sul pulsante arancione Crea funzione.
      4. In Nome funzione, immetti HelloWorldFunction.
      5. Seleziona Java 11 (Corretto) dal menu a discesa di runtime e lascia invariato il resto delle impostazioni predefinite.

      6. Fai clic sul pulsante arancione Crea funzione.

      7. All'inizio della schermata dovresti visualizzare una casella verde contenente il seguente messaggio "Funzione HelloWorldFunction creata correttamente".

      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 implementazione nella forma di un file JAR o di un archivio ZIP contenente il codice della funzione. Ai fini di questo tutorial, abbiamo fornito un file JAR scaricabile con il codice funzione aggiornato.

      10. Passa a Codice funzione e carica il file JAR.

      11. Aggiorna il gestore con com.example.app.LambdaRequestHandler::handleRequest.

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

      13. Scegli Seleziona un evento di test nella parte superiore dello schermo per testare la nuova funzione.

      14. Da quel menu a discesa, seleziona Configura eventi di test.

      15. In Nome evento, immetti 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.

    1. Nella sezione HelloWorldFunction in alto nella pagina, seleziona la scheda Test.
    2. A inizio pagina dovresti visualizzare una casella verde chiaro con il testo seguente: Risultato esecuzione: completata. Puoi scegliere Dettagli per visualizzare l'evento restituito dalla funzione.
    3. Ben fatto! Adesso la tua funziona Lambda è attiva.

Architettura applicativa

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

Diagramma dell'architettura che mostra AWS Amplify e AWS Lambda ospitati nel cloud AWS, con connessione a utenti esterni da Amplify.

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

Questa pagina è stata utile?

Collegamento di una funzione serverless a un'applicazione Web