AWS Lambdas的本地开发服务器
有没有一个在本地运行AWS Lambdas的开发服务器? 我的要求是
-
nodejs
服务器,没有ruby
或go
任何需要安装node
和npm
软件包以外的其他东西 - 创build一个服务器,我可以通过
wget
/curl
查询或APItesting工具发送各种事件 - 我应该能够指定服务器使用的
js
文件作为lambda,并且当我更改该文件时服务器应该重新启动/更新
这是一个不需要serverless
或claudiajs
的解决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