Javascript 我可以在lambda中创建一个只能本地访问的服务器吗?

Javascript 我可以在lambda中创建一个只能本地访问的服务器吗?,javascript,node.js,express,lambda,Javascript,Node.js,Express,Lambda,我上传了一个zip文件,我有以下两个文件: // server.js 'use strict'; const express = require('express'); const bodyParser = require('body-parser'); const addRequestId = require('express-request-id')(); const app = express(); app.use(bodyParser.urlencoded({ extended: f

我上传了一个zip文件,我有以下两个文件:

// server.js
'use strict';

const express = require('express');
const bodyParser = require('body-parser');
const addRequestId = require('express-request-id')();
const app = express();

app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(addRequestId);

app.listen(8000);

exports.app = 'app';

如您所见,我想创建一个可以在lambda中使用的内部服务器。此超时,我收到一条错误消息:

{“errorMessage”:“2017-03-09T07:52:01.439Z 45210dff-049d-11e7-84cc-8367ae894495任务在3.00秒后超时”}

问题就发生在app.listen(8000)(也就是说,如果我注释掉这一行,那么函数就会运行

现在可以在lambda中创建服务器了吗

编辑


请不要评论lambda是如何用于短期/一次性操作的。问题不是lambda的正确实现和使用;我知道您应该使用API网关进行路由。当然,这不是完整的示例。为了这个等式,我需要一台服务器运行5秒钟,以执行此lambda。AWS Lambda中不允许这样做吗?

Lamda的设计目的是在短时间内运行,然后关闭。它的功能与传统服务器不同,而是作为一种“功能”它运行一个特定的任务。这个任务可以为一个用户提供一个html文件,但不需要等待用户来处理。没有人说这是我的意图;我非常理解lambda的时间线。这是一个非常简单的示例。为了我的示例,假设我需要一个服务器来执行这个一次性应用程序,并且请求完成后,服务器将停止运行。请记住Lambda的意思是,先启动任务,然后拆除任务。事实上,时间限制为5分钟,这将不适合任何长期任务。目前,通过web端点公开Lambda的最佳解决方案是使用AWS API网关并将其调用到Lambda中@詹姆逊:我理解。我更新了我的问题。为了这个例子,我需要服务器在我的lambda中运行。问题不是关于正确的架构设计,而是如果这是可能的,你是否配置了lambda使用VPC?lambda被设计为运行很短的时间,然后关闭。这不是意味着像传统服务器一样工作,而是作为“功能”它运行一个特定的任务。这个任务可以为一个用户提供一个html文件,但不需要等待用户来处理。没有人说这是我的意图;我非常理解lambda的时间线。这是一个非常简单的示例。为了我的示例,假设我需要一个服务器来执行这个一次性应用程序,并且请求完成后,服务器将停止运行。请记住Lambda的意思是,先启动任务,然后拆除任务。事实上,时间限制为5分钟,这将不适合任何长期任务。目前,通过web端点公开Lambda的最佳解决方案是使用AWS API网关并将其调用到Lambda中@詹姆逊:我明白。我更新了我的问题。为了这个例子,我需要服务器在我的lambda中运行。问题不是关于正确的架构设计,而是如果这是可能的,你是否已经将lambda配置为使用VPC?
// main entry point for the handler
'use strict';
const server = require('./server').app;

exports.handler = function(event, context, callback) {
    // Do stuff
}