尝试通过Lambda连接到Atlas:没有与主机名关联的地址

时间:2019-02-21 05:43:37

标签: java mongodb-java mongodb-atlas

我正在尝试从Lambda脚本上载文档,但是无论何时Lambda脚本启动,我一直被困在不断获取以下内容的地方:

com.mongodb.MongoSocketException: cluster0-whnfd.mongodb.net: No address associated with hostname

错误似乎很明显,但是我可以通过Mongo Compass使用相同的URL进行连接。我正在使用的Java类如下:

public class MongoStore {

    private final static String MONGO_ADDRESS = "mongodb+srv://<USERNAME>:<PASSWORD>@cluster0-whnfd.mongodb.net/test";

    private MongoCollection<Document> collection;

    public MongoStore() {
        final MongoClientURI uri = new MongoClientURI(MONGO_ADDRESS);
        final MongoClient mongoClient = new MongoClient(uri);
        final MongoDatabase database = mongoClient.getDatabase("test");

        this.collection = database.getCollection("test");
    }

    public void save(String payload) {
        Document document = new Document();
        document.append("message", payload);

        collection.insertOne(document);
    }

}

我刚刚配置了我的Java类,还是在这里进行了一些更棘手的事情?

1 个答案:

答案 0 :(得分:-2)

刚开始从Heroku迁移Python Web应用程序时,刚创建的MongoDB Atlas数据库遇到了同样的问题。

所以我意识到DNS名称cluster0.hgmft.mongodb.net根本不存在。

当我安装了dnspython库(我的应用程序是用Python编写)时,魔术就发生了,该库MongoDB客户端能够连接到我在Mongo Atlas中的数据库。