Comment tester les fonctions de aws lambda localement

J’ai une application mobile développée avec node.js express. Je l’ai essayé pour le déployer en tant que service lambda. Pour cela, j’ai créé un projet Framework sans serveur ( https://github.com/serverless ). Auparavant, je testais l’application mobile localement en démarrant l’application backend express. Maintenant, je ne trouve pas de méthode pour tester mon application mobile localement sans backend local. jaws run command jaws run seulement une fois que je l’ai appelé.

Existe-t-il une méthode permettant de démarrer la fonction lambda en tant que service Web? Ou existe-t-il une alternative au Framework sans serveur?

Il ne semble pas qu’il y ait moyen de le faire pour le moment, mais la version 1.4.0 est sur le point d’être publiée et devrait, entre autres, inclure une nouvelle commande “jaws serve” qui devrait résoudre votre problème.

Voici le PR: https://github.com/jaws-framework/JAWS/pull/269

UPDATE: vous pouvez maintenant utiliser le nouveau plugin serverless-serve pour cela.

UPDATE 2: serverless-serve n’a pas été mis à jour depuis longtemps, il semble que serverless-offline soit une bien meilleure option pour émuler les fonctions Lambda.

Je ne sais pas si cette question est toujours pertinente ou non, mais j’utilise DEEP Framework pour tester le code localement et / ou le déployer sur AWS Lambda. Regarde ça:

 npm install deepify -g deepify run-lambda --help [email protected] - Run Lambda function locally Usage example: deepify run-lambda path/to/the/lambda -e='{"Name":"John Doe"}' Arguments: path: The path to the Lambda (directory of handler itself) Options: --event|-e: JSON ssortingng used as the Lambda payload --skip-frontend-build|-f: Skip picking up _build path from the microservices Frontend --db-server|-l: Local DynamoDB server implementation (ex. LocalDynamo, Dynalite) --version|-v: Prints command version --help|-h: Prints command help 

Divulgation: Je suis l’un des consortingbuteurs à ce cadre

Le plugin Bespoken sevrerless rend votre Lambda local accessible de l’extérieur. Il est très utile à la fois pour les tests locaux avec Postman et pour les services Webhook (comme Alexa, Slack, Twilio, etc.).

L’architecture est montrée ici: entrez la description de l'image ici

Pour l’utiliser, il vous suffit d’installer le plugin, puis d’exécuter:

 sls proxy 

Vous pouvez ensuite commencer à envoyer des demandes à votre service localement:

entrez la description de l'image ici

Nous pensons que c’est un outil très utile pour tester avec serverless.

Comme 1.4 n’est pas encore sorti …

La semaine dernière, j’avais besoin de la même chose. J’ai donc créé un petit serveur fictif pouvant être exécuté localement: https://github.com/martinlindenberg/JawsLocalServer

  • Tous les en-têtes et tous les parameters ont été copiés dans l’object événement transmis au gestionnaire.
  • L’object de contexte est un object simple qui transmet les données à l’object de réponse.

À compter de la date de cette publication, vous pouvez exécuter des fonctions localement en effectuant la sls function run [name-of-function] . Tout JSON utilisé dans event.json votre fonction sera passé à votre fonction.

Pour tester vos points de terminaison, vous pouvez également utiliser Serverless Offline, une serverless-serve projet serverless-serve .

C’est peut-être trop tard .. Mais maintenant, vous pouvez essayer Serverless-Offline ( https://www.npmjs.com/package/serverless-offline ) fonctionne à merveille

C’est aussi la page github correspondante ( https://github.com/dherault/serverless-offline )

Vous pouvez maintenant utiliser lambda-local .

Installez-le comme ceci:

 sudo -H npm install -g lambda-local 

Ajoutez vos parameters en tant qu’object JSON à un fichier, dans cet exemple, event.json , et appelez le fichier index.js comme index.js :

 lambda-local -l index.js -h handler -e event.json