Comment exécuter aws lambda localement (Java) à des fins de test?
J'ai pu trouver des informations sur les nœuds, mais pas sur Java.
J'utilise ces images de docker https://github.com/lambci/docker-lambda
Autant que je sache, il n’ya pas de magie pour déclencher la fonction lambda localement. Jetez un coup d'œil à: http://docs.aws.Amazon.com/lambda/latest/dg/Java-programming-model-req-resp.html
et
http://docs.aws.Amazon.com/lambda/latest/dg/Java-gs.html
En fonction de votre code lambda, avez-vous besoin de générer l'entrée et (éventuellement le contexte) et de les transmettre à la fonction en écrivant votre propre petit wrapper de test.
À moins que vous ne procédiez de la sorte pour les tests unitaires, il n’a pas de sens de résoudre le problème. Si vous effectuez cette opération à des fins de test, vous aurez probablement besoin de simuler d'autres services AWS externes que votre lambda pourrait utiliser.
Pour ceux qui cherchent à tester localement avec Python, nous avons créé un outil pour cela:
https://github.com/sportarchive/aws-lambda-python-local
Il vous permet d’exécuter, de tester et de déployer vos fonctions sur Lambda à l’aide d’un fichier Makefile. Très pratique.
acclamationsnico
Vous pouvez utiliser AWS Toolkit pour Eclipse si vous souhaitez effectuer des tests locaux pour les fonctions Amazon Lambda et créer des applications sans serveur dans Amazon.
Mais depuis le 11 août 2017, Amazon fournit AWS SAM Local, un outil CLI qui nous permet de tester et de déboguer localement nos fonctions AWS Lambda. SAM Local prend en charge les fonctions Lambda écrites en Node.js, Java et Python.
Veuillez voter pour implémenter le support Intellij IDEA pour Amazon Lambda ici:
Un certain nombre de projets sont en cours pour exécuter la pile AWS entière localement.
Java je crois que l'option principale est Localstack
Si vous êtes sur Javascript, vous pouvez aller Serverless
SAM Local - http://docs.aws.Amazon.com/lambda/latest/dg/test-sam-local.html Et Docker-lambda - https: // github .com/lambci/docker-lambda ont bien fonctionné pour les API nécessitant uniquement des sources javaee et de projet .. Je tente toujours de comprendre comment définir le chemin de classe pour inclure les dépendances Gradle.