首页 > 解决方案 > 从 lambda 函数到 VPC 中的 EC2 实例的 Api 调用在 nodejs 中超时(有时它工作正常)

问题描述

我们在 VPC 下的 EC2 上运行服务器。我们从一个可以访问 VPC 的 Lambda 函数中使用它的 API。

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

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

我们不确定为什么它会从 Lambda 函数中失败。

我们正在使用 nodeJS 的“请求”模块从 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);

}); });

PS 我们没有在 EC2 中配置任何 SSL 任何帮助都会很重要。谢谢,

标签: node.jsamazon-web-servicesamazon-ec2aws-lambdanode-request

解决方案


推荐阅读