Bluemix服务端点是否可公开访问?

时间:2015-04-21 21:56:49

标签: service docker cloud cloudfoundry ibm-cloud

我正在使用IBM Bluemix开发CF应用程序。一旦服务被配置并绑定到应用程序,是否要求其提供的凭据引用可公开访问的URL或IP地址?

我问,因为我一直在试验Cloudfocker,它提供了Cloud Foundry运行时环境的本地近似,以实现更快的应用开发工作流程。但要做任何认真的工作,您需要在真正的Bluemix中访问绑定到您的应用程序的服务。 (你也需要Bluemix的一套构建包,但我暂时忽略了这一点。)

例如,假设我正在开发使用数据库的应用程序。我想从我本地计算机上运行的Cloudfocker环境直接连接到数据库服务实例。我能这样做吗?

我进行了一些实验,结果各不相同:Cloudant服务分发了一个我可以从任何地方访问的合法网址,但Mongodb服务给了我一个IP,似乎拒绝来自非Bluemix客户端的连接(见下文) )。

# My endpoint is: mongodb://23.246.199.67:10027/db

# Within a Bluemix app, works
vcap@18jf19lbdo5:~$ nc -v 23.246.199.67 10027
Connection to 23.246.199.67 10027 port [tcp/*] succeeded!
^C
vcap@18jf19lbdo5:~$ 


# Outside Bluemix, fails
mamacdon@markm-vm:~$ nc -v 23.246.199.67 10027
nc: connect to 23.246.199.67 port 10027 (tcp) failed: Connection timed out
mamacdon@markm-vm:~$

这种方法是否可行,或者我不得不求助于某种隧道解决方案?

3 个答案:

答案 0 :(得分:5)

部分服务可公开访问。这取决于服务。当我在本地开发时,我让我的应用程序检测环境(检查VCAP_SERVICES环境变量)并在本地运行时连接到本地/测试数据库。

答案 1 :(得分:4)

在Bluemix中提供的数据库服务中,可从Bluemix应用程序外部访问的服务包括:Cloudant,dashDB和SQL数据库。 您可以从VCAP_SERVICES环境变量中找到凭据信息(URL,用户名,密码,数据库名称和端口号)。

对于dashDB和SQL数据库,您还需要下载用于连接的驱动程序(如果您没有预先安装DB2客户端或Data Studio)。例如,在dashDB中:

  1. 单击您的dashDB服务实例
  2. 您可以启动dashDB 使用“启动”按钮右上角的服务。
  3. 在dashDB仪表板加载后,在左侧单击:Setup - > 连接应用程序
  4. 下载dashDB驱动程序,并从页面中注明连接所需的凭据信息(URL,用户名,密码,数据库名称和端口号)

答案 2 :(得分:0)

其他答案使我确信没有适用于CFv2中所有Bluemix服务的通用解决方案。 (旧版本的CF提供了cf tunnel命令,但不再支持它。)

好消息是,Cloud Foundry即将推出的“Diego”版本将支持SSH直接进入应用程序实例,这将启用端口隧道。因此,您最终可以获得对应用程序内可用服务的外部访问权限。

有关详细信息,请参阅this mailing list thread