Démarrer avec AWS

Création d'une application Web simple

Déploiement d'une application Web et ajout de fonctionnalités d'interactivité avec une API et une base de données

Module 2 – Création d'une fonction sans serveur

Dans ce module, vous allez apprendre à créer une fonction sans serveur à l'aide d'AWS Lambda.

Introduction

Dans ce module, vous allez écrire une petite portion de code à l'aide de Python, JavaScript ou Java afin de pouvoir l'utiliser ultérieurement pour ajouter des fonctionnalités d'interactivité à votre page Web. Vous emploierez également le service AWS Lambda, un service de calcul permettant de créer des fonctions sans serveur. Grâce à une fonction sans serveur, un développeur n'a pas besoin de gérer des logiciels et du matériel. En effet, les applications sont, à la place, divisées en plusieurs fonctions pouvant être invoquées et dimensionnées individuellement.

Les fonctions sans serveur s'initialisent lorsqu'un événement que vous définissez dans le code se produit. Par ailleurs, elles sont très peu onéreuses car vous êtes facturé uniquement pour le nombre d'événements traités, et non pour la durée d'inactivité. Enfin, vous n'avez absolument pas à vous soucier de la gestion des serveurs !

Opérations que vous allez apprendre à effectuer

  • Créer une fonction Lambda à l'aide de la console AWS et de Python, JavaScript ou Java
  • Créer des événements JSON dans la console AWS pour tester votre fonction

Concepts clés

Service de calcul : il s'agit d'un service permettant de bénéficier d'une certaine puissance de traitement pour les calculs.

Fonction sans serveur : il s'agit d'une portion de code exécutée par un service de calcul, à la demande.

Déclencheur Lambda : il s'agit du type d'événement qui permet à une fonction sans serveur Lambda de s'exécuter. Il peut correspondre à un autre service AWS ou à une entrée externe.

 Durée nécessaire

5 minutes

 Services utilisés

Implémentation

  • Création et configuration de votre fonction Lambda
    • Python
    • JavaScript
    • Java
    • Python
      1. Dans un nouvel onglet de votre navigateur, connectez-vous à la console AWS Lambda.
      2. Veillez à noter le nom de la région dans laquelle vous créez votre fonction. Cette information est indiquée dans la partie supérieure de la page, en regard du nom de votre compte.
      3. Cliquez sur le bouton Créer une fonction, de couleur orange.
      4. Sous Nom de la fonction, saisissez HelloWorldFunction.
      5. Sélectionnez Python 3.8 dans le menu déroulant Exécution.
      Full Stack tutorial CreateFunction Python

      6. Cliquez sur le bouton Créer une fonction, de couleur orange.

      7. Une section verte doit s'afficher dans la partie supérieure de votre écran et comporter le message « La fonction a été créée avec succès ».

      8. Sous Code de la fonction, remplacez le code par les éléments suivants :

      # 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. Cliquez sur le bouton Enregistrer, de couleur orange, dans la partie supérieure de votre écran.

      10. Testez maintenant la nouvelle fonction. Cliquez sur Sélectionner un événement de test dans la partie supérieure de votre écran.

      11. Dans le menu déroulant, cliquez sur Configurer les événements de test.

      12. Sous Nom de l'événement, saisissez HelloWorldTestEvent.

      13. Copiez et collez l'objet JSON suivant afin de remplacer celui par défaut :

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

      14. Cliquez sur le bouton Créer, de couleur orange, dans la partie inférieure de la page.

    • JavaScript
      1. Dans un nouvel onglet de votre navigateur, connectez-vous à la console AWS Lambda.
      2. Veillez à noter le nom de la région dans laquelle vous créez votre fonction. Cette information est indiquée dans la partie supérieure de la page, en regard du nom de votre compte.
      3. Cliquez sur le bouton Créer une fonction, de couleur orange.
      4. Sous Nom de la fonction, saisissez HelloWorldFunction.
      5. Sélectionnez Node.js 12.x dans le menu déroulant Exécution.
      Full Stack tutorial CreateFunction JavaScript

      6. Cliquez sur le bouton Créer une fonction, de couleur orange.

      7. Une section verte doit s'afficher dans la partie supérieure de votre écran et comporter le message « La fonction a été créée avec succès ».

      8. Sous Code de la fonction, remplacez le code par les éléments suivants :

      // 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. Cliquez sur le bouton Enregistrer, de couleur orange, dans la partie supérieure de votre écran.

      10. Testez maintenant la nouvelle fonction. Cliquez sur Sélectionner un événement de test dans la partie supérieure de votre écran.

      11. Dans le menu déroulant, cliquez sur Configurer les événements de test.

      12. Sous Nom de l'événement, saisissez HelloWorldTestEvent.

      13. Copiez et collez l'objet JSON suivant afin de remplacer celui par défaut :

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

      14. Cliquez sur le bouton Créer, de couleur orange, dans la partie inférieure de la page.

    • Java
      1. Dans un nouvel onglet de votre navigateur, connectez-vous à la console AWS Lambda.
      2. Veillez à noter le nom de la région dans laquelle vous créez votre fonction. Cette information est indiquée dans la partie supérieure de la page, en regard du nom de votre compte.
      3. Cliquez sur le bouton Créer une fonction, de couleur orange.
      4. Sous Nom de la fonction, saisissez HelloWorldFunction.
      5. Sélectionnez Java 11 dans le menu déroulant Exécution.
      Full Stack tutorial CreateFunction Java

      6. Cliquez sur le bouton Créer une fonction, de couleur orange.

      7. Une section verte doit s'afficher dans la partie supérieure de votre écran et comporter le message « La fonction a été créée avec succès ».

      8. Vous avez créé une fonction Lambda avec une classe de gestionnaire nommée Hello. Dans la mesure où Java est un langage compilé, vous ne pouvez pas visualiser ou modifier le code source dans la console Lambda, mais vous pouvez changer sa configuration, l'invoquer et configurer des déclencheurs.

      9. Pour modifier le code de la fonction, vous devez créer un paquet de déploiement qui le contient, sous la forme d'une archive au format JAR ou ZIP. Le fichier JAR comportant le code de la fonction mis à jour, et à utiliser dans le cadre de ce tutoriel, est disponible ici.

      10. Rendez-vous dans la section Code de la fonction, puis chargez le fichier JAR.

      Full Stack tutorial UploadJar

      11. Remplacez le gestionnaire par com.example.app.LambdaRequestHandler::handleRequest.

      Full Stack tutorial UpdateHandler

      12. Cliquez sur le bouton Enregistrer, de couleur orange, dans la partie supérieure de votre écran.

      13. Testez maintenant la nouvelle fonction. Cliquez sur Sélectionner un événement de test dans la partie supérieure de votre écran.

      14. Dans le menu déroulant, cliquez sur Configurer les événements de test.

      15. Sous Nom de l'événement, saisissez HelloWorldTestEvent.

      16. Copiez et collez l'objet JSON suivant afin de remplacer celui par défaut :

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

      17. Cliquez sur le bouton Créer, de couleur orange, dans la partie inférieure de la page.

  • Test de votre fonction Lambda
    1. Cliquez sur le bouton Test, de couleur grise, situé dans la partie supérieure de la page.
    2. Une section vert clair doit s'afficher dans la partie supérieure de la page et comporter le message « Exécution réussie ». Vous pouvez cliquer sur Détails pour consulter les informations relatives à l'événement que la fonction a renvoyé.
    3. Félicitations ! Vous disposez désormais d'une fonction Lambda exploitable.

Architecture de l’application

Maintenant que le module est terminé, votre architecture ressemble à la suivante :

full-stack amplify console arch diagram module 2

Le service AWS Lambda a été ajouté, mais il n'est pas encore connecté à AWS Amplify ou aux utilisateurs. Cette opération sera effectuée au cours du prochain module.

Ce module vous a-t-il été utile ?

Merci
Merci de nous indiquer ce que vous avez aimé.
Nous sommes désolés de vous décevoir.
Quelque chose est-il obsolète, déroutant ou inexact ? Aidez-nous à améliorer ce didacticiel en fournissant des commentaires.

Association de la fonction sans serveur à l'application Web