Premiers pas avec aws-lambda

Installation ou configuration

  1. Connectez-vous à votre console AWS et cliquez sur Lambda sous le Services tab.

  2. Sous Fonctions, vous pourrez Créer une fonction Lambda à l’aide du bouton portant le même libellé. [![entrez la description de l’image ici][1]][1]

  3. Un écran s’affichera où vous pourrez sélectionner un plan. Ce sont simplement des points de départ vers les fonctions Lambda existantes pour démarrer rapidement avec Lambda. [![entrez la description de l’image ici][2]][2]

  4. Sur l’écran suivant, vous pouvez configurer tous les déclencheurs que vous souhaitez utiliser pour “désactiver” cette fonction Lambda. Vous pouvez choisir entre aucun déclencheur (via une configuration manuelle ultérieure en fonction de votre tâche), API Gateway (pour créer un client REST sans serveur), Alexa Skills ou une pléthore d’autres pour déclencher la fonction que vous allez créer. [![entrez la description de l’image ici][3]][3]

  5. Vous terminerez la configuration sur l’écran suivant en définissant le Nom, la Description, en choisissant un Runtime, en choisissant de modifier la fonction en ligne, en téléchargeant un fichier .zip ou en téléchargeant un depuis Amazon S3, choisissez un Rôle (utile pour les interactions basées sur les autorisations entre les services AWS), définissez la mémoire et les limites, et préparez votre application pour une utilisation en direct. [![entrez la description de l’image ici][4]][4] [![entrez la description de l’image ici][5]][5]

  6. Enfin, vous allez revoir votre fonction et la créer. Étant donné que Lambda utilise le modèle Pay-Per-Use, aucun chargeur n’est engagé jusqu’à ce que vous commenciez à utiliser votre fonction nouvellement créée. [![entrez la description de l’image ici][6]][6]

[1] : http://i.stack.imgur.com/nlYn9.jpg [2] : http://i.stack.imgur.com/pktAb.jpg [3] : http://i.stack.imgur.com/8Bykj.jpg [4] : http://i.stack.imgur.com/phQxo.jpg [5] : http://i.stack.imgur.com/88dQG.jpg [6] : http://i.stack.imgur.com/KpTTs.jpg

Java AWS-Lambda S3 déclenché

Une fonction AWS-Lambda peut être attachée à un certain événement de compartiment. Chaque fois qu’un fichier/dossier est créé ou supprimé, un événement peut déclencher l’exécution de la fonction lambda.

Une simple fonction Lambda pour imprimer le nom d’un fichier téléchargé

Il s’agit d’un projet lambda à une classe pour imprimer le nom d’un fichier téléchargé. Pour maven, nous devons ajouter ces dépendances :

    <dependencies>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-lambda-java-core</artifactId>
        <version>1.1.0</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-lambda-java-events</artifactId>
        <version>1.3.0</version>
        <type>jar</type>
    </dependency>
</dependencies>

Passons maintenant à notre classe HelloWorld :

package com;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.S3Event;
import com.amazonaws.services.s3.event.S3EventNotification;

public class HelloWorld implements RequestHandler< S3Event, String> {
    @Override
    public String handleRequest(S3Event event, Context ctx) {
     S3EventNotification.S3EventNotificationRecord record=event.getRecords().get(0);
     System.out.println("Bucket Name is "+record.getS3().getBucket().getName());
     System.out.println("File Path is "+record.getS3().getObject().getKey());
     return null;
    }
}

L’étape suivante consiste à créer le projet à l’aide de mvn.

Après avoir construit le projet, nous devons le télécharger sur AWS-Lambda. Allez dans Lambda, choisissez “créer une fonction lambda”. Ignorez la partie où vous choisissez le plan, car Java n’est généralement pas là.

Ignorez également “Configurer les déclencheurs” car nous allons le configurer à partir d’un emplacement différent. La page suivante, entrez un nom pour votre première fonction lambda, puis une petite description et choisissez Java comme runtime.

Pour le “Type d’entrée de code”, choisissez “Télécharger à partir d’un fichier .ZIP”, puis sélectionnez votre fichier .zip à l’emplacement suivant pour le télécharger.

La partie délicate de cette page est le champ Handler. Dans le champ du gestionnaire, vous devez spécifier l’emplacement de la classe qui implémente le RequestHandler. Cette classe est le point d’entrée du lambda et votre fonction Lambda ne fonctionnera pas si elle n’est pas spécifiée correctement. Pour notre gestionnaire de cas, c’est “com.HelloWorld”

Attacher un déclencheur S3 à Lambda :

Ici, nous allons attacher un déclencheur au téléchargement du fichier S3

  • Allez en S3, choisissez le bucket, puis “Propriétés”.
  • Dans la section “Propriétés”, allez dans “Événements”.
  • Ajouter les détails de l’événement. Dans le champ “Événements”, choisissez comment vous souhaitez déclencher votre Lambda. Nous choisirons “ObjectCreated(All)” Notez que la fonction lambda et le compartiment doivent être sur la même région amazon
  • Pour “Sends to”, cochez la fonction Lambda et choisissez votre fonction lambda dans la liste.

Surveillance de la sortie Lambda

Maintenant, nous allons télécharger un fichier dans le compartiment contenant le déclencheur lambda. Pour voir les sorties et les journaux lambda, allez dans “CloudWatch”, puis choisissez “Logs”, puis choisissez votre fonction Lambda. Vous pouvez voir de nombreuses entrées sous “Log Streams”, choisissez la dernière et ouvrez-la. Vous devriez pouvoir y voir la sortie de l’exécution lambda.