Как подключиться к Amazon DocumentDB из Node.js

Как подключиться к новой базе данных Amazon DocumentBD из node.js (в этом случае используется готовая настройка Elastic Beanstalk).

Это мой код, скопированный из документации (с некоторыми значениями, измененными для конфиденциальности). Это просто время ожидания, и конечное значение 'err' равно 'true'. Что я упустил? Как я могу получить лучшую ошибку?

var MongoClient = require('mongodb').MongoClient,fs = require('fs');
var ca = [fs.readFileSync("rds-combined-ca-bundle.pem")];
var connection_string = "mongodb://USERNAME:PASSWORD@docdb-2019-04-23-12-55-44.cluster-abcdefghij.eu-west-1.docdb.amazonaws.com:27017/?ssl=true&&replicaSet=rs0&readPreference=secondaryPreferred";

MongoClient.connect(
        connection_string, {
            sslValidate: true,
            sslCA: ca,
            useNewUrlParser: true
        },
        function (err,client) {
            console.log(err+" , "+ client);
        });

Надеюсь, кто-нибудь знает.

4 ответа

Решение

Тайм-аут часто указывает на то, что группы безопасности не настроены должным образом. Проверьте конфигурацию входящей группы безопасности DocumentDB, чтобы убедиться, что трафик из источника разрешен для вашего экземпляра DocumentDB.

Удаление cluster- из URL-адреса, похоже, у меня работает.

Отличное предложение от hephalump@. Хотел указать вам на точную документацию. Вы можете обратиться к пункту 7.d этой документации, в котором говорится о настройке правил для групп безопасности.

В mongo uri нам нужно заменитьsslкtlsи добавитьtlsCAFileв вариантах подключения

      var MongoClient = require('mongodb').MongoClient;
var connection_string = "mongodb://USERNAME:PASSWORD@docdb-2019-04-23-12-55-44.cluster-abcdefghij.eu-west-1.docdb.amazonaws.com:27017/?tls=true&&replicaSet=rs0&readPreference=secondaryPreferred";

MongoClient.connect(
        connection_string, {
            tlsCAFile: `rds-combined-ca-bundle.pem`
        },
        function (err,client) {
            console.log(err+" , "+ client);
        });

Ссылка: https://docs.aws.amazon.com/documentdb/latest/developerguide/connect_programmatically.html .