He creado una instancia de servicio de servicio desde el mercado, p. Ej. instancia de mongoDB y mi pregunta si quiero desarrollar localmente (en mi máquina local) y conectarme a esta instancia de servicio, ¿cómo puedo hacerlo?

Quiero probar mi aplicación contra la instancia creada del servicio de respaldo, ¿cómo puedo hacerlo de manera simple ...? El ejemplo será muy útil

ACTUALIZACIÓN: Intento conectarme a la instancia de MongoDB que está en la fundición en la nube desde mi aplicación local. (Si coloco la aplicación, pude conectarme correctamente pero quiero conectarme desde mi PC local, es decir, ejecutar mi aplicación localmente)

I got the following db (json) credentials:

     {
  "mongodb": [
    {
      "credentials": {
        "dbname": "CFad18ZNGYzzrrts",
        "hostname": "10.11.123.30",
        "password": "RttomuAV9yvhwHm_",
        "port": "36232",
        "ports": {
          "27017/tcp": "36232",
          "28017/tcp": "49255"
        },
        "uri": "mongodb://xppt7gdk1G9Y1pd3:RttomuAV9yvhwHm_@10.11.123.30:36232/CFad18ZNGYzzrrts",
        "username": "xppt7gdk1G9Y1pd3"
      },
      "label": "mongodb",
      "name": "mod",
      "plan": "v3.0-container",
      "provider": null,
      "syslog_drain_url": null,
      "tags": [
        "mongodb",
        "document"
      ],
      "volume_mounts": []
    },

cuando me conecto a esta base de datos a través de push my hice lo siguiente que funciona

if (process.env.VCAP_SERVICES) {
    var val = JSON.parse(process.env.VCAP_SERVICES)
    mongoose.connect(val['mongodb'][0].credentials.uri, function (err) {

... Ahora copio la configuración anterior a mi proyecto (en config / config.json) e intento conectarme desde mi aplicación local a través de esto y no funciona

var config = require('../config/config.json');

mongoose.connect(val['mongodb'][0].credentials.uri, function (err

El error es

failed to connect to server [10.11.123.30:36232] on first connect
    at Pool.<anonymous> (/Users/f53356/WebstormProjects/dlStackDemo/node_modules/mongodb-core/lib/topologies/server.js:325:35)
    at emitOne (events.js:96:13)
    at Pool.emit (events.js:188:7)

Alguna idea de cómo superar esto Utilizo el URI cuando mi aplicación se ejecuta en CF, pero ahora no puedo ejecutarla desde mi PC localmente y conectarme a la instancia de servicio en CF , ¿alguna idea?

3
user6124024 15 ene. 2017 a las 10:13
Eliminé la etiqueta ibm-bluemix porque el OP confirmó que esta pregunta no se trata de Bluemix. Lo que puede llevar a suposiciones incorrectas por parte de las personas que publican respuestas.
 – 
Chris Snow
17 ene. 2017 a las 23:26

2 respuestas

Puede asignar una ruta externa a su instancia de servicio con cf bind-route-service para probar con una aplicación local, pero no debe hacerlo.

Es mejor tener un espacio de desarrollo separado dentro de su organización de CloudFoundry y probar / implementar todo en CF desde el principio.

0
Anatoly Kern 9 mar. 2017 a las 07:34

Ryan

El servicio mongodb es un servicio experimental disponible en Bluemix al que puede acceder solo a través de una aplicación de Cloud Foundry, por lo que no puede conectarlo desde su máquina local.

Si desea usar una base de datos MongoDB en Bluemix y hacer que su aplicación se conecte a ella, puede usar el servicio Compose for MongoDB:

https://console.ng.bluemix.net/catalog/services/compose-for-mongodb

Una vez que cree una instancia de este servicio, también creará las credenciales predeterminadas. Puede acceder a las credenciales a través de VCAP_SERVICES desde una aplicación Bluemix que vincule al servicio o puede obtener las credenciales a través de la línea de comando cf:

$ cf service-key your-instance-name Credentials-1

Credentials-1 es el nombre predeterminado de las credenciales cuando crea la instancia de Compose for MongoDB.

0
Alex da Silva 17 ene. 2017 a las 19:32
Hola Alex, trato de usarlo contra la instalación limpia de CF (no bluemix por ahora) que incluye los servicios predeterminados como mongo postgress redis, etc., ¿es posible conectarse a él? si ahora por que?
 – 
user6124024
17 ene. 2017 a las 23:20
Además, cuando presioné mi aplicación, pude conectarme a mongodb y almacenar datos (creé una nueva instancia a través del servicio cf create ...), mi pregunta es si ejecuto mi aplicación localmente, ¿cómo puedo conectarme al servicio? instancia (que funciona bien cuando empuja la aplicación ...)
 – 
user6124024
17 ene. 2017 a las 23:25
Creo que esta es la configuración predeterminada para la fundición en la nube, pero no estoy seguro. Probablemente pueda intentar configurar su red para permitir este acceso, pero no sé cómo hacerlo. Puede intentar crear un túnel ssh como se describe aquí: docs. cloudfoundry.org/devguide/deploy-apps/ssh-services.html
 – 
Alex da Silva
18 ene. 2017 a las 00:24
Gracias pero esto no ayuda, ¿alguna otra idea?
 – 
user6124024
22 ene. 2017 a las 22:25
¿Está utilizando pcfdev o bosh-lite, o alguna otra instalación de cloudfoundry? He tenido éxito al conectarme a instancias de servicio dentro de pcfdev desde mi estación local. Intente conectarse con su cliente de línea de comandos de mongo. Si eso no funciona, entonces el firewall está bloqueando la conexión.
 – 
user152468
3 feb. 2017 a las 12:03