2016-12-27 3 views
1

Ich benutze Spring Boot und erstellt eine Web-Anwendung mit einer Mongodb-Datenbank. Lokal verwende ich die Eingabeaufforderung "mongod" und "mongo", wo ich die Daten abfragen kann, die ich auf der Benutzeroberfläche eingegeben habe.Zugriff auf MongoDB-Werte/Daten nach Bindung an Cloud Foundry?

Meine aktuelle Anwendung verwendet MongoDb läuft auf localhost mit Standard-Port 27017. Meine Web-Anwendung spiegeln die Daten, die in der Datenbank gespeichert sind. Wenn ich diese Anwendung an Cloud Foundry übergebe und den MONGODB-Dienst bindet, verwendet sie eine andere Datenbank. Wo und wie kann ich auf alle eingegebenen Daten zugreifen? Auf dem lokalen Rechner kann ich db.collection.find() benutzen und alle meine Daten abfragen.

Problem

Sobald ich meine Bewerbung schieben Gießerei Wolke, alle meine Daten, die lokal gespeichert wurde, ist damit nicht verbunden. Ich kann Werte in PCF MongoDB speichern. Aber ich weiß nicht, wie ich die Daten anzeigen soll, die ich darin habe. Gibt es einen Befehl oder eine Methode, um alle Daten anzuzeigen, die ich in PCF MongoDB eingegeben habe?

Versuch

Ein Blick auf meine VCAP_SERVICES konnte ich meine Datenbanknamen, Benutzernamen und Passwort sehen. Aber sie sehen aus, als wären sie verschlüsselt, sie haben Buchstaben und Zahlen gemischt. Beispiel unten, wie VCAP aussieht (Replika Werte, gleiches Format)

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

ich in einem CLI

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

Also für database, Benutzername und Kennwort des Code versucht, mit mir einfach kopiert und eingefügt dem verschlüsselte Suche Benutzername und Passwort

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

und ich bekomme eine Verbindung fehlgeschlagen. Vielleicht muss ich den richtigen Benutzernamen und das Passwort eingeben. Wo kann ich einen Benutzernamen und ein Passwort festlegen? Ich benutze Spring Boot und es wurde automatisch für mich behandelt. Also habe ich nie einen Benutzernamen oder ein Passwort erstellt.

Antwort

1

Hier sind fünf Vorschläge (dank Daniel.Mikusa für die letzte):

  • Schieben Sie einen Web-Client für mongodb und binden Sie es an Ihre Datenbank. Es scheint eine Cloudfoundry Wrapper für Mongo Express zu geben: https://github.com/komushi/cf-mongo-express.

  • Sie können sich möglicherweise mit dem mongo-Client-Programm auf die gleiche Weise mit dem remote mongodb verbinden, wie Sie sich mit Ihrem lokalen mongodb verbinden. Sie können die Anmeldeinformationen (Benutzername, Passwort, db-namen) in der Umgebung der App finden:

    cf env <your-app-name> 
    

    Zugang zur mongodb Instanz kann jedoch von Maschinen außerhalb Ihrer CloudFoundry Installation blockiert werden. In diesem Fall möchten Sie vielleicht die nächste Option ausprobieren.

  • Schieben Sie einen Andock-Container, in dem der Mongo-Client installiert ist, in cloudfoundry. Ssh in den Docker-Container und benutze den Mongo-Client von dort. Das Verschieben von Andockcontainern auf CF ist nicht in allen Cloudfoundry-Installationen aktiviert.

  • Schließlich könnten Sie Ihre Domain-Objekte über REST-Controller verfügbar machen.Möglicherweise mit Federdaten Rest: http://projects.spring.io/spring-data-rest/.

  • Verwenden Sie cf ssh und einen SSH-Tunnel. Binden Sie die mongodb-Instanz an eine App, führen Sie cf env aus, um den Host, den Port und die Anmeldeinformationen abzurufen (oder einen Dienstschlüssel zu erstellen). Führen Sie dann cf ssh -N -L <localport>:<service-fqdn-or-ip>:<remote-port> app-name aus (die App, zu der Sie eine Verbindung herstellen, spielt keine Rolle, es ist nur die, durch die wir tunneln). Verbinden Sie nun einen Client mit localhost:<localport> und verwenden Sie die Anmeldeinformationen, die Sie von cf env erhalten haben.

+0

Hallo, Mit dem Befehl, den Sie mir gezeigt haben. Es stellt den VCAP bereit, der auch in der Benutzeroberfläche angezeigt wird. Die Datenbank, der Benutzername und das Passwort sind verschlüsselt (Buchstaben und Zahlen mit Hypern gemischt). Wie kann ich mich auf diesem Server anmelden, um die Daten anzuzeigen, hinzuzufügen oder zu ändern? – Jesse

+0

Woher wissen Sie, dass sie verschlüsselt sind? In der Regel sind dies nur unverschlüsselte, zufällig generierte Strings. Ihre App benötigt sie zum Herstellen einer Verbindung, sodass Sie sie möglicherweise auch von Ihrer Workstation aus verwenden können. Bist du auf PWS? – user152468

+0

OK. Habe gerade deine Bearbeitung gesehen. Der Datenbankname und der Benutzername sehen wie UUIDs aus. Das Passwort wurde wahrscheinlich geändert. Wenn Sie keine Verbindung herstellen können, wird dies aus Sicherheitsgründen von außerhalb Ihrer Cloudfoundry-Installation blockiert. In diesem Fall würde ich mich für die Frühjahrsdatenruhe entscheiden. – user152468

Verwandte Themen