【发布时间】:2015-05-06 00:14:31
【问题描述】:
我刚开始使用 BlueMix,在我的空间中我有:
- 云集成服务:使用基本安全连接,我为此创建了一个 API 端点;然后在该云集成服务中,我通过导入一个 swagger 1.2 文件添加了相应的 API,并将该 customAPI 发布到我的组织;
- 一个非常简单的 node.js 应用程序;
从云集成服务> API 视图中,我可以获得不同资源的 URL(例如 http://endpoint_ip:endpoint_port/api/version/path_to_resource),因此我可以在我的 node.js 应用程序中对这些 URL 进行硬编码并且它可以工作。
但是,如果我将云集成服务甚至 customAPI 绑定到我的 node.js 应用程序,我不会在 VCAP_SERVICES 中获得有关端点 URL 的任何信息;但我已经看到了 API URL 可用的 VCAP_SERVICES 示例。
下面是我的 VCAP_SERVICES
{"CloudIntegration": [
{
"name": "Cloud Integration-b9",
"label": "CloudIntegration",
"plan": "cloudintegrationplan",
"credentials": {
"userid": "apiuser@CloudIntegration",
"password": "S!2w3e40",
"apis": [
{
"name": "Catalog Manager API",
"desc": "Catalog Manager API",
"resource": ""
}
]
}
}
]
}
我想要实现的是避免在我的应用程序中对 URL 进行硬编码,因为我可以将 BlueMix 服务绑定到它,并且可能从环境中获取信息。
难道我做错了什么?或者这不是它应该工作的方式?
我也不明白为什么 VCAP_SERVICES.CloudIntegration[0].credentials.apis[0].resource 中没有任何内容,即使我有我的 customAPI 指定资源。
【问题讨论】:
-
您是否重新启动了您的应用程序?如果不重新启动或重新暂存,VCAP_SERVICES 更改将不会反映。
-
@Jack-Junjie Cai:是的,我重新启动了应用程序。事实上,每次我添加/绑定新服务时,它都会要求我重新启动/重新暂存应用程序
标签: integration ibm-cloud