sql >> データベース >  >> NoSQL >> MongoDB

HerokuアプリをAtlasMongoDBクラウドサービスに接続する

    問題が解決する可能性があると思う

    免責事項: HerokuもMongoDBAtlasも使用していませんが、調査中です。

    私が見つけたGithubの問題によると、MongoDB AtlasでサーバーのIPアドレスをホワイトリストに登録していない場合は、そのエラーメッセージが表示されます。

    MongoDB Atlasのドキュメントを読んで、Heroku dynosと組み合わせてこれを行う唯一の方法は、0.0.0.0/0を追加することです。 (つまり、すべてのアドレス)をMongoDBAtlasホワイトリストに追加します。

    試してみて、接続をインスタンス化できるかどうかを報告してください。

    SSLの場合

    SSLの質問に答えようとしていますが、完全にはわかりませんが、私が読んだ内容に基づいて、HerokuでSSLを有効にする必要はないと思います。

    MongoDBサーバーが証明書の検証を実行した場合、それに接続するためのNode.jsコードは次のようになります(Node.jsドライバーのドキュメントから取得):

    var MongoClient = require('mongodb').MongoClient,
      f = require('util').format,
      fs = require('fs');
    
    // Read the certificates
    var ca = [fs.readFileSync(__dirname + "/ssl/ca.pem")];
    var cert = fs.readFileSync(__dirname + "/ssl/client.pem");
    var key = fs.readFileSync(__dirname + "/ssl/client.pem");
    
    // Connect validating the returned certificates from the server
    MongoClient.connect("mongodb://localhost:27017/test?ssl=true", {
      server: {
          sslValidate:true
        , sslCA:ca
        , sslKey:key
        , sslCert:cert
        , sslPass:'10gen'
      }
    }, function(err, db) {
      db.close();
    });
    

    MongoDBサーバーがSSL証明書をチェックしない場合は、次のようなコードを使用できます(これもNode.jsドライバーのドキュメントから取得)。

    var MongoClient = require('mongodb').MongoClient;
    
    MongoClient.connect("mongodb://localhost:27017/test?ssl=true", function(err, db) {
      db.close();
    });
    

    AtlasのドキュメントにNode.jsから接続するための次のサンプルコードが含まれていることを考えると、しないと思います。 HerokuでSSLを有効にする必要があります:

    var MongoClient = require('mongodb').MongoClient;
    
    var uri = "mongodb://kay:[email protected]:27017,mycluster0-shard-00-01-wpeiv.mongodb.net:27017,mycluster0-shard-00-02-wpeiv.mongodb.net:27017/admin?ssl=true&replicaSet=Mycluster0-shard-0&authSource=admin";
    MongoClient.connect(uri, function(err, db) {
      db.close();
    });
    


    1. Hadoopの分散キャッシュの概要

    2. AWS管理:MongoDBホスティングコストを30%節約する方法

    3. 他のluaスクリプトで定義されているlua関数をredisで呼び出すことは可能ですか?

    4. 最新のMongoDBバージョンにアップグレードするためのヒント