AWS Lambdas的本地开发服务器

有没有一个在本地运行AWS Lambdas的开发服务器? 我的要求是

  • nodejs服务器,没有rubygo任何需要安装nodenpm软件包以外的其他东西
  • 创build一个服务器,我可以通过wget / curl查询或APItesting工具发送各种事件
  • 我应该能够指定服务器使用的js文件作为lambda,并且当我更改该文件时服务器应该重新启动/更新

这是一个不需要serverlessclaudiajs的解决scheme。

我通常只是为了这个目的写我自己的小express脚本。 我总是使用Lambda Proxy集成,所以它更简单。

像这样的东西…

 const bodyParser = require('body-parser') const express = require('express') // Two different Lambda handlers const { api } = require('../src/api') const { login } = ('../src/login') const app = express() app.use(bodyParser.json()) // route and their handlers app.post('/login', lambdaProxyWrapper(login)) app.all('/*', lambdaProxyWrapper(api)) app.listen(8200, () => console.info('Server running on port 8200...')) function lambdaProxyWrapper(handler) { return (req, res) => { // Here we convert the request into a Lambda event const event = { httpMethod: req.method, queryStringParameters: req.query, pathParameters: { proxy: req.params[0], }, body: JSON.stringify(req.body), } return handler(event, null, (err, response) => { res.status(response.statusCode) res.set(response.headers) return res.json(JSON.parse(response.body)) }) } } 

然后,使用nodemon运行它,以便根据需要nodemon文件并重新加载。

 nodemon --watch '{src,scripts}/**/*.js' scripts/server.js 

你有没有签出SAM本地? https://github.com/awslabs/aws-sam-local