如何在CF中测试服务实例

时间:2017-01-15 07:13:39

标签: mongodb ssh cloud cloudfoundry pivotal-cloud-foundry

我从市场创建了服务的服务实例,例如mongoDB的例子和我的问题,如果我想在本地开发(在我的本地机器上)并连接到这个服务实例我该怎么办?

我想针对已创建的支持服务实例测试我的应用程序,我怎么能做到这一点简单......? 示例将非常有用

更新 我尝试连接到云代工厂的MongoDB实例 从我的locall应用程序。 (如果我放了应用程序,我能够成功连接,但我想从本地PC连接,即在本地运行我的应用程序)

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": []
    },

当我通过推送连接到此数据库时,我执行了以下操作

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

... 现在我将上面的配置复制到我的项目中(在config / config.json下) 并尝试通过此连接从我的本地应用程序连接

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

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

错误

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)

知道怎么过来这个, 当我的应用程序在CF上运行时我使用URI,但现在我无法从本地我的电脑上运行它并连接到CF中的服务实例,任何想法?

2 个答案:

答案 0 :(得分:0)

瑞恩

mongodb服务是Bluemix中提供的实验服务,您只能通过Cloud Foundry应用程序访问,因此您无法从本地计算机连接它。

如果您想在Bluemix中使用MongoDB数据库并让应用程序连接到它,您可以使用Compose for MongoDB服务:

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

创建此服务的实例后,它还将创建默认凭据。您可以从绑定到服务的Bluemix应用程序通过VCAP_SERVICES访问凭据,也可以通过cf命令行获取凭据:

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

Credentials-1是创建Compose for MongoDB实例时凭据的默认名称。

答案 1 :(得分:0)

您可以使用cf bind-route-service将外部路由映射到服务实例,以便使用本地应用程序进行测试,但不应该这样做。

最好在您的CloudFoundry组织中拥有一个单独的开发空间,并从一开始就在CF中测试/部署所有内容。