mongodb - 如何在 CF 中测试服务实例

标签 mongodb ssh cloud cloud-foundry

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

我想根据创建的支持服务实例测试我的应用程序,我如何才能简单地做到这一点......? 例子会很有帮助

更新: 我尝试连接到 cloud foundry 上的 MongoDB 实例 从我的本地应用程序。 (如果我放置应用程序,我能够成功连接,但我想从我的本地电脑连接,即在本地运行我的应用程序)

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 中的服务实例,知道吗?

最佳答案

瑞安

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

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

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

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

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

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

关于mongodb - 如何在 CF 中测试服务实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41658749/

相关文章:

linux - Ansible amazon linux 权限被拒绝(公钥)

ssh - 双显示器 : gnome-session over ssh with x11 forwarding - set resolution to fit on just one monitor

java - 构建或购买计算网格平台更好?

node.js - Mongoose 发现总是在不应该返回 true 的时候返回 true

javascript - 如何使用 mongoDB 和 node.js 重定向到查看页面

node.js - 连接 robomongo 与 modulus mongodb 服务器

windows - 在 Windows 8 上使用 SSH 连接到 Amazon EC2 的权限被拒绝

mysql - 无法使用 MySQL Workbench 连接到 Azure MySQL

linux - 在cloudlinux中重新启动syslog

mysql - Node.js 图片库的数据库解决方案