如何在本地testingaws lambda函数

我有一个用node.js express开发的移动应用程序后端。 我试过将它部署为lambda服务。 为此,我创build了一个无服务器框架项目( https://github.com/serverless )。 以前我通过启动快速后端应用程序在本地testing移动应用程序。 现在我无法find一个方法来testing我的手机应用程序本地没有本地后端。 jaws run命令只运行一次,我叫它。

有什么方法来启动lambda函数作为一个Web服务? 还是有没有其他的无服务器框架?

目前看起来没有办法做到这一点,但版本1.4.0即将发布,其中包括一个新的命令“下巴服务”,应该解决您的问题。

这是PR: https : //github.com/jaws-framework/JAWS/pull/269

更新:你现在可以使用新的serverless-serve插件。

更新2:无服务器 – 服务器有一段时间没有更新,现在看起来像无服务器 – 离线是一个更好的select来模拟Lambda函数。

我不确定这个问题是否仍然相关,但是我正在使用DEEP框架在本地testing代码和/或将它部署在AWS Lambda上。 看一下这个:

 npm install deepify -g deepify run-lambda --help run-lambda@1.6.8 - 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 string 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 

披露:我是这个框架的贡献者之一

由于1.4还没有发布…

上周我需要完全一样的东西。 因此,我创build了一个可以在本地运行的小模拟服务器: https : //github.com/martinlindenberg/JawsLocalServer

  • 所有的头文件和参数被复制到传递给处理程序的事件对象中。
  • 上下文对象是一个将数据转发给响应对象的简单对象

Bespoken sevrerless插件使您当地的Lambdas可以从外部访问。 这对于Postman本地testing以及基于Webhook的服务(如Alexa,Slack,Twilio等)都是非常有用的。

架构如下所示: 在这里输入图像描述

要使用它,只需安装插件,然后运行:

 sls proxy 

然后,您可以开始在本地发送请求到您的服务:

在这里输入图像描述

我们认为这是一个非服务器testing非常有用的工具。

截至本文发布date,您可以通过执行sls function run [name-of-function]来在本地sls function run [name-of-function] 。 你的函数的event.json使用的任何json将被传递到你的函数。

为了testing您的端点,您还可以使用无服务器脱机 ,这是serverless-serve项目的一个分支。

这可能为时已晚。但现在你可以尝试Serverless-Offline( https://www.npmjs.com/package/serverless-offline )就像一个魅力

这也是它的github页面( https://github.com/dherault/serverless-offline