【问题标题】:Connection Timeout MongoDB, AWS lambda and Nodejs连接超时 MongoDB、AWS lambda 和 Nodejs
【发布时间】:2018-07-23 08:02:57
【问题描述】:

我遇到了一个奇怪的问题。我已经安装了 MongoDB,并在 EC2 实例上开展了一个项目。我试图从本地访问数据库,它工作正常。但是,当我尝试执行我的 AWS lambda 函数时,我得到一个超时错误。因此将 lambda 函数超时时间增加到 50 秒。我正在运行一个简单的查询来查找 10 条记录中的一条记录。我收到以下错误。谁能帮我解决这个问题?

MongoNetworkError: failed to connect to server [EC2_PUBLIC_IP:PORT_NUMBER] on first connect [MongoNetworkError: connection 0 to EC2_PUBLIC_IP:PORT_NUMBER timed out]

我在 Nodejs 中使用 MONGODB-NATIVE

const MongoClient = require('mongodb').MongoClient;

MongoClient.connect(DB_URL, (err, conn) => {
  if(err) return console.error(err);

  let db = conn.db('DB_NAME');

  db.collection('COLLECTION_NAME').findOne({ value: 1232131 }, (error,results) => {
    if(error) return console.error(error);

    conn.close();
    return console.log(results);
  });
});

【问题讨论】:

    标签: node.js mongodb amazon-web-services amazon-ec2 aws-lambda


    【解决方案1】:

    单独的第一个答案对我不起作用,我仍然需要转发到我的 mongo 副本

    这是您要运行的命令。

    "ssh -i aws-ssh-key.pem -g -N -f -L 8000:127.0.0.1:27017 ec2-user@10.0.8.10"
    

    查看此链接以获取有关该命令的详细信息。

    https://stackoverflow.com/a/64890853/9206157

    【讨论】:

    • 欢迎提供指向解决方案的链接,但请确保您的答案在没有它的情况下有用:在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在它,然后引用如果目标页面不可用,您链接到的页面的最相关部分
    【解决方案2】:

    我认为这不是您的代码的问题。这是一个离题的问题,因为它是您的防火墙设置的问题。

    在 EC2 安全组中,请在默认为 27017 的入站端口中添加 MongoDB 端口,然后尝试访问数据库。

    【讨论】:

    • 感谢您的回答。我在 ec2 安全组的 Inbounds 中添加了端口,它开始工作了。
    猜你喜欢
    • 2020-09-02
    • 2017-07-25
    • 1970-01-01
    • 2017-10-22
    • 2017-12-18
    • 2020-11-14
    • 2017-05-23
    • 2019-03-14
    • 1970-01-01
    相关资源
    最近更新 更多