【问题标题】:MongoDB connection from lambda using SSL doesn't work使用 SSL 来自 lambda 的 MongoDB 连接不起作用
【发布时间】:2018-09-16 21:23:41
【问题描述】:

我正在尝试使用 Lambda 连接到 MongoDB-Atlas。在本地代码运行完美,但使用 AWS Lambda 我得到与 SSL 依赖相关的错误(我认为......)。

我想使用 mongodump,所以我添加了最新版本的 mongodump 二进制文件,版本 r3.6.3,我还添加了 libssl.so.1.0.0、libsasl2.so.3、libgo.so.9 和 libcrypto。所以.1.0.0。它们都在我上传到 Lambda 的文件夹的根目录中。

这就是我在代码中的相关 mongo 查询的样子:

mongodump -d test -u adminUser -p "notmyrealpassword" -o "/tmp/FriApr062018_1523037710445/" --authenticationDatabase admin --ssl --port 27017 -h "host0.mongodb.net,host1.mongodb.net,host2.mongodb.net"

这是文件夹的样子:

index.js  libcrypto.so.1.0.0  libgo.so.9  libsasl2.so.3  libssl.so.1.0.0  mongodump  node_modules  package.json

当我尝试使用 Lambda 运行它时,我收到了这个错误(同样,代码在本地机器上运行良好):

/var/task/mongodump: /var/task/libssl.so.1.0.0: no version information available (required by /var/task/mongodump)
/var/task/mongodump: /var/task/libcrypto.so.1.0.0: no version information available (required by /var/task/mongodump)

【问题讨论】:

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


    【解决方案1】:

    您需要将LD_LIBRARY_PATH 环境变量设置为包含共享对象文件的目录,以便 mongodump 知道在哪里可以找到它们。请参阅this Stack Exchange answer 了解其他告诉 mongodump 在哪里查找共享对象文件的方法。 编辑 - 看起来它能够找到共享对象,只是不运行它们,所以这可能不是问题。

    如果您在 mongodump 能够找到错误后遇到错误,请仔细检查您的共享对象文件是否构建在与运行 Lambda 函数的currently used Amazon Linux AMI 兼容的环境中。

    从no version information available 错误和a StackOverflow answer about what that error means 看来,OpenSSL libssl 和 libcrypto 共享对象很可能是使用比 Amazon Linux AMI 上可用的版本更高的 major.minor.patch 版本构建的。因此,您可能需要自己构建它们,以便它们在目标操作系统中兼容。 This article 讨论了一些合理的方法来做到这一点。它适用于 python 项目,但也应该适用于构建 C 模块。

    【讨论】:

    • 如果我理解正确,您的解决方案是针对 mongodump 无法找到文件的情况。但是,在我的情况下,文件是远程的,mongodump 能够找到它们并保存它们,但是当我使用 lambda 时,它无法连接......
    • 这很好;如果它是 No such file or directory 错误,我的第一段将适用。我已经更新了我的答案,提供了一些可以帮助您专门修复 no version information available 错误的详细信息。
    猜你喜欢
    • 2020-10-01
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 2021-11-12
    • 2020-06-02
    • 1970-01-01
    • 2019-08-11
    • 2014-06-17
    相关资源
    最近更新 更多