【问题标题】:Node.js MongoClient with hashicorp Vault databasesNode.js MongoClient 与 hashcorp Vault 数据库
【发布时间】:2021-07-29 16:43:07
【问题描述】:

我对 Node.js 比较陌生。我正在使用现有的 Node.js express 应用程序。它在服务器启动时创建一个新的 Mongodb 连接,并将其分配给一个全局变量以供其他地方使用。所有这些都可以正常工作。

#In Server.js
async function startServer() {
  logger.info("Connecting to the database...");
  clientConnect(dbSecrets).then(function (client){
    if (!client) {
      logger.error("Error connecting to the DB. Shutting down...", new LogMsg(filename, functionName, null, null).toJSON());
      process.exit(-1);
    }
    global.entityDb = client;
    .........

#CLient Creation In Mongo.js
clientConnect: async ( dbSecrets ) => (
        client = await (() => (new Promise(( resolve, reject ) => (
                    MongoClient.connect(`mongodb://${dbSecrets.mongoUsername}:${dbSecrets.mongopassword}@${configuration.db.host}`, {
                            useNewUrlParser: true,
                            useUnifiedTopology: true,
                            family: 4
                        },
                        ( error, client ) => {
                            if ( error ) {
                                logger.error(error);
                                reject(error);
                            }
                            resolve(client);
                        })
                )
            )).catch(( error ) => {
                logger.error(`(mongo.js - clientConnect()) - ${error.toString()}`);
                return false;
            })
        )()),

  

    clientClose: async ( client ) => {
        client.close();
        return true;
    },

dbSecrets 的值在应用程序启动时从 Hashicorp Vault Key Value Secret 注入并传递到新的 MongoClient。我想更新应用程序以使用hashicorp vault databases,这些用户名/密码值可能会过期。是否可以创建 MongoClient 以便如果 dbSecrets 中的值被更新,那么随后重新连接到数据库将使用新值?

全局变量能否以某种方式用于 URI?

【问题讨论】:

    标签: node.js mongodb express global-variables hashicorp-vault


    【解决方案1】:

    仅供参考,而是通过不让连接在应用程序(Kubernetes Pod 中的容器)的生命周期内过期来解决这个问题。它会在当前凭据到期之前更新它们的租约,而不是尝试加载新凭据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-24
      • 2020-01-23
      • 2016-10-22
      • 2021-11-06
      • 2021-11-06
      相关资源
      最近更新 更多