ошибка подключения при подключении к AWS DocumentDB через лямбду - PullRequest
0 голосов
/ 27 февраля 2020

получая следующую ошибку при подключении к AWS DocumentDB с node.js через лямбду

{"errorMessage": "ENOENT: нет такого файла или каталога, открыть 'rds-комбинированный-ca -bundle.pem '"," errorType ":" Ошибка "," stackTrace ": [" Object.fs.openSyn c (fs. js: 646: 18) "," Object.fs.readFileSync (fs . js: 551: 33) "," Object. (/Var/task/base/mongoose.base.js:8:13)","Module._compile (module. js: 652: 30) "," Object.Module._extensions .. js (module. js: 663: 10) "," Module.load (module. js: 565: 32) "," tryModuleLoad ( module. js: 505: 12) "," Function.Module._load (module. js: 497: 3) "," Module.require (module. js: 596: 17) "," require (внутренний / модуль. js: 11: 18) "," Объект. (/var/task/library/mongoLib/room.lib.js:1:84)","Module._compile (module. js: 652: 30) "," Object.Module._extensions .. js (module. js: 663: 10) "," Module.load (module. js: 565: 32) ", "tryModuleLoad (module. js: 505: 12)", "Function.Module._load (module. js: 497: 3)"]}

вот мой node js файл в лямбде

var ca = fs.readFileSync(path.join('./','rds-combined-ca-bundle.pem'));

var options = {
        keepAlive: true,
        poolSize: 30,
        socketTimeoutMS: 30000,
        autoReconnect: true,
        reconnectTries: Number.MAX_VALUE,
        reconnectInterval: 500,
        useCreateIndex: true,
        auth: {authdb: 'admin'},
        useFindAndModify: false,
        sslValidate: true,
        sslCA:ca,
        useNewUrlParser: true
}

var uri = 'mongodb://'+globalData.getConfigurationSettings("documentdb_username")+':'+globalData.getConfigurationSettings("documentdb_password")+'@'+globalData.getConfigurationSettings("documentdb_server")+':'+globalData.getConfigurationSettings("documentdb_port")+'/'+globalData.getConfigurationSettings("documentdb_db_name")+'?ssl=true&replicaSet=rs0&readPreference=secondaryPreferred';

mongoose.connect(uri, options)
.then(() => console.log('Connection to DB successful'))
.catch((err) => console.error(err,'Error'));

Ответы [ 2 ]

1 голос
/ 27 февраля 2020

Это должно быть:

var ca = fs.readFileSync(path.join(__dirname + '/rds-combined-ca-bundle.pem'));

Или вы можете определить:

import caBundle from "./rds-combined-ca-bundle.pem";

var options = {
            ............
            sslCA:caBundle,
1 голос
/ 27 февраля 2020

Ошибка происходит от ENOENT: no such file or directory, open 'rds-combined-ca-bundle.pem

, похоже, что файла там не существует. ты можешь проверить путь? ты встраивал сертификат в лямбду?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...