Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js AWS Lambdas的本地开发服务器_Node.js_Amazon Web Services_Aws Lambda - Fatal编程技术网

Node.js 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代

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

  • nodejs
    server,无
    ruby
    go
    或除
    node
    npm
    软件包以外需要安装的任何东西
  • 创建一个我可以通过
    wget
    /
    curl
    或API测试工具查询的服务器,以将各种事件发送到
  • 我应该能够指定服务器用作lambda的
    js
    文件,当我更改该文件时,服务器应该重新启动/更新

您是否查看了SAM Local

这里的解决方案不需要
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,我会接受这个答案。