Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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 从lambda函数调用VPC中的EC2实例的Api在nodejs中超时(有时工作正常)_Node.js_Amazon Web Services_Amazon Ec2_Aws Lambda_Node Request - Fatal编程技术网

Node.js 从lambda函数调用VPC中的EC2实例的Api在nodejs中超时(有时工作正常)

Node.js 从lambda函数调用VPC中的EC2实例的Api在nodejs中超时(有时工作正常),node.js,amazon-web-services,amazon-ec2,aws-lambda,node-request,Node.js,Amazon Web Services,Amazon Ec2,Aws Lambda,Node Request,我们的服务器运行在VPC下的EC2上。我们从一个Lambda函数中使用它的API,该函数具有对VPC的所有访问权限 由于我们的lambda函数是从API网关(使用VPC链接)调用的,所以我们只有29秒的窗口。 有时lambda会成功执行,有时会超时(请求甚至不会到达ec2服务器) 我们没有在EC2服务器中进行任何繁重的处理。从技术上讲,运行在EC2上的服务器应该在2秒内给出响应。我们尝试用rest客户端(postman)运行它,它总是在2秒内响应 我们不确定为什么它在Lambda函数中失败 我们

我们的服务器运行在VPC下的EC2上。我们从一个Lambda函数中使用它的API,该函数具有对VPC的所有访问权限

由于我们的lambda函数是从API网关(使用VPC链接)调用的,所以我们只有29秒的窗口。 有时lambda会成功执行,有时会超时(请求甚至不会到达ec2服务器)

我们没有在EC2服务器中进行任何繁重的处理。从技术上讲,运行在EC2上的服务器应该在2秒内给出响应。我们尝试用rest客户端(postman)运行它,它总是在2秒内响应

我们不确定为什么它在Lambda函数中失败

我们正在使用nodeJS的“request”模块从Lambda进行API调用

在通过API网关调用不同的lambda函数时,我们也观察到了相同的行为

这个问题非常令人困惑,因为有时它会成功执行,而有时它会中断

我们不确定是它的网络问题,还是我们的代码有问题

下面是我们如何使用API的

    return new Promise((resolve, reject) => {
  request.get({url:url}, function optionalCallback(err, httpResponse, body) {
if (err) {
   console.error('failed:'+err);
   reject(err);
}
console.log('successful!  Server responded with:',body);
resolve(body);
})),

另外,我们在EC2中没有任何SSL配置 任何帮助都是值得的。
谢谢,

您是否确保分配给Lambda函数的每个子网都有到EC2实例的路由(即,本地路由没有受到干扰)?您的EC2实例是否允许基于IP白名单或安全组的Lambda连接?(如果是前者,请确保所有相关IP都被列入白名单,并考虑切换到后者)我们已经创建了多个子网和安全组,还将所有子网和安全组添加到lambda。添加不必要的子网或安全组是否会使lambda连接到终端服务器的速度变慢?