AWS S3 notification d'Événement à l'aide d'une fonction Lambda en Java
Je suis en train d'utiliser une fonction Lambda pour S3 Mettre une notification d'événement. Mon Lambda fonction doit être appelée une fois j'ai mis/ajouter un nouveau fichier JSON dans mon compartiment S3.
Le défi que j'ai est qu'il y a pas assez de documents pour cette œuvre de ces Lambda fonction en Java. La plupart de doc que j'ai trouvé sont pour Node.js
Je veux, ma Lambda fonction doit être appelée, et dans cette fonction Lambda, je veux consommer ajouté que json, puis les envoyer JSON à AWS ES.
Mais que toutes les classes que je devrais utiliser pour cela? Quelqu'un a une idée à ce sujet? S3 abd ES sont en place et en cours d'exécution. La génération automatique de code pour le lambda est
`
@Override
public Object handleRequest(S3Event input, Context context) {
context.getLogger().log("Input: " + input);
//TODO: implement your handler
return null;
}
Quelle est la prochaine étape??
- Eh bien, le feu vers le haut! Activer et télécharger un fichier. La première "classe" que vous avez besoin est juste le contour des yeux-jetez un oeil à la session d'entrée. Le reste devrait devenir évident par la suite. L'entrée devrait être un S3 notification d'événement vous dire à propos de l'objet venez de télécharger.
Vous devez vous connecter pour publier un commentaire.
Manipulation S3 événements Lambda peut être fait, mais vous devez garder à l'esprit, le S3Event objet ne transporte que la référence à l'objet et non l'objet lui-même. Pour obtenir de l'objet réel que vous avez à invoquer le SDK AWS vous-même.
Demander un S3 Objet à l'intérieur d'une fonction lambda devrait ressembler à ceci:
Maintenant assez difficile à insérer cet objet dans ElasticSearch. Malheureusement, le SDK AWS ne pas fournir toutes les fonctions de ce. L'approche par défaut serait de faire un appel RESTE contre l'AWS ES de point de terminaison. Il existe différents échantillons de leur sur la façon de procéder à l'appel d'une ElasticSearch instance.
Certaines personnes semblent aller avec le projet suivant:
Jest - Elasticsearch Java Reste Client
DocumentMapper documentMapper = new DocumentMapper.Builder("groupId", null, rootObjectMapperBuilder).build(null);
Enfin, voici les étapes à suivre pour S3 --> Lambda --> ES intégration à l'aide de Java.
Utilisation ci-dessous de code Java dans votre fonction lambda pour aller chercher un nouvel objet ajouté dans S3 et l'envoyer à ES.
Utiliser le Facteur ou le Sens de créer des index & correspondant de la cartographie dans l'ES.
Une fois cela fait, téléchargez et exécutez proxy.js sur votre machine. Assurez-vous d'installer ES mesures de Sécurité proposées dans le présent post
L'installation d'essai et Kibana en exécutant http://localhost:9200/_plugin/kibana/ URL de votre machine.
Tout est réglé. Aller de l'avant et de l'ensemble de votre tableau de bord Kibana. Le tester en ajoutant de nouveaux objets dans votre compartiment S3