Node.js AWS Lambdas的本地开发服务器
是否有在本地运行AWS Lambdas的开发服务器?我的要求是Node.js AWS Lambdas的本地开发服务器,node.js,amazon-web-services,aws-lambda,Node.js,Amazon Web Services,Aws Lambda,是否有在本地运行AWS Lambdas的开发服务器?我的要求是 nodejsserver,无ruby或go或除node和npm软件包以外需要安装的任何东西 创建一个我可以通过wget/curl或API测试工具查询的服务器,以将各种事件发送到 我应该能够指定服务器用作lambda的js文件,当我更改该文件时,服务器应该重新启动/更新 您是否查看了SAM Local 这里的解决方案不需要serverless或claudiajs 为此,我通常只编写自己的小express脚本。我总是使用Lambda代
server,无nodejs
或ruby
或除go
和node
软件包以外需要安装的任何东西npm
- 创建一个我可以通过
/wget
或API测试工具查询的服务器,以将各种事件发送到curl
- 我应该能够指定服务器用作lambda的
文件,当我更改该文件时,服务器应该重新启动/更新js
serverless
或claudiajs
为此,我通常只编写自己的小express
脚本。我总是使用Lambda代理集成,这样更简单
像这样的
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 --watch '{src,scripts}/**/*.js' scripts/server.js
你有没有尝试过无服务器框架,带有AWS API网关和本地Lambda simulation的无服务器离线插件?也许IDE可以为你工作?对不起,SAM Local是用GO编写的,专为SAM设计的,我不想安装GO stuff或SAM(SAM Local使用)。谢谢。虽然不是一个很好的服务器,但至少是JS,它在本地从命令行运行:似乎是合法的,因为其他的答案和评论有很大的悬念,或者不是JS,我会接受这个答案。