2016-12-27 5 views
1

私はスプリングブートを使用しており、mongodbデータベースを使用してWebアプリケーションを作成しています。ローカルでは、コマンドプロンプト "mongod"と "mongo"を使用して、UIで入力したデータを照会できます。クラウドファウンドリにバインドした後のMongoDB値/データへのアクセス方法?

私の現在のアプリケーションは、localhost上で実行されているMongoDbをデフォルトポート27017で使用しています。私のWebアプリケーションは、データベースに格納されているデータを反映しています。このアプリケーションをクラウドファウンダリにプッシュし、MONGODBサービスをバインドすると、別のデータベースが使用されます。入力されているすべてのデータをどこで、どのように表示/アクセスできますか。ローカルマシン上では、db.collection.find()を使用することができ、すべてのデータを照会します。

問題

私は雲のファウンドリに自分のアプリケーションをプッシュすると、ローカルに保存されたすべての私のデータは、それにリンクされていません。 PCF MongoDBに値を格納することができます。しかし私は私がそこにあるデータを見る方法を知らない。 PCF MongoDBに入力したすべてのデータを表示するコマンドや方法はありますか?

試み

私VCAP_SERVICESを見て、私は私のデータベース名、ユーザ名、およびパスワードを見ることができました。しかし、彼らは暗号化されているように見え、文字番号とハイフンが混在しています。 VCAPは(レプリカ値、同じ形式)どのように見えるか、以下の実施例

"database": "9faf201a-39b1-4lse-49242f404g11" 
"host": "10.100.100.333" 
"password": "2jnkj4nk22kk5lk6kj4n4k6nkj6001" 
"username": "401849301k-8g3f-5c3j-k28-583920308592f04" 

私は単純にコピー&ペーストデータベース名、ユーザ名、およびパスワードを入力するので、CLIで以下

mongo someurl.mongodomain.com:45475/database_name -u username -p password 

をコードを使用してみました暗号化されたユーザ名とパスワードを探します。

mongo myurl.com:1337/9faf201a-39b1-4lse-49242f404g11 -u 401849301k-8g3f-5c3j-k28-583920308592f04" -p 2jnkj4nk22kk5lk6kj4n4k6nkj6001 

と接続に失敗しました。たぶん私は正しいユーザー名とパスワードを入力する必要があります。ユーザー名とパスワードはどこで設定できますか?私は春のブートを使用しており、それは自動的に私のために処理されました。だから、私はユーザー名やパスワードを作成したことはありません。

答えて

1

はここ5つの提案(最後のものをDaniel.Mikusaに感謝)は:MongoDBのための

  • プッシュWebクライアントとデータベースにバインドします。 mongo express:https://github.com/komushi/cf-mongo-expressのクラウドフォンディングラッパーがあるようです。

  • ローカルのmongodbに接続するのと同様の方法で、mongoクライアントプログラムでリモートmongodbに接続することができます。あなたはあなたのアプリケーションの環境での資格情報(ユーザー名、パスワード、DB名)を見つけることができます:MongoDBのインスタンスへ

    cf env <your-app-name> 
    

    のアクセスは、しかし、あなたのCloudFoundryのインストールの外部のマシンからブロックされることがあります。この場合、次のオプションを試してみてください。

  • mongoクライアントがインストールされているドッカーコンテナをcloudfoundryにプッシュします。 Sshをドッカーのコンテナに入れ、そこからmongoクライアントを使用します。ドッキングコンテナをCFにプッシュすることは、すべてのcloudfoundryインストールで有効になっていません。

  • 最後に、REST-Controllers経由でドメインオブジェクトを公開することができます。おそらくスプリングデータの残りを使用して:http://projects.spring.io/spring-data-rest/

  • cf sshとsshトンネルを使用してください。アプリケーションにmongodbインスタンスをバインドし、cf envを実行して、ホスト、ポート、および資格情報を取得します(またはサービスキーを作成します)。その後、cf ssh -N -L <localport>:<service-fqdn-or-ip>:<remote-port> app-nameを実行してください(あなたが接続するアプリケーションは厳密には問題ではありません。トンネリングだけです)。今すぐクライアントをlocalhost:<localport>に接続し、cf envから取得した認証情報を使用してください。

+0

こんにちは、あなたが私に示したコマンドを使用します。これは、UIにも表示されるVCAPを提供します。データベース、ユーザー名、パスワードは暗号化されています(ハイフンと混在した文字と数字)。このサーバーにログインして、データを表示、追加、変更するにはどのようにすればよいでしょうか? – Jesse

+0

暗号化されていることをどのように知っていますか?通常、暗号化されていない、ランダムに生成された文字列です。あなたのアプリケーションは接続する必要があるので、あなたのワークステーションからもそれらを使用することができます。 PWSにいますか? – user152468

+0

OK。ちょうどあなたの編集を見ました。データベース名とユーザー名はUUIDのように見えます。パスワードが変更された可能性があります。接続できない場合は、セキュリティ上の理由から、クラウドフォンドリのインストール外でブロックされていると思います。この場合、私はSpringのデータ休憩に行くでしょう。 – user152468

関連する問題