在node.js中使用bluemix.getServiceCreds()函数的正确方法是什么?

时间:2015-09-12 21:53:26

标签: node.js ibm-cloud demo ibm-watson

我已经从Bluemix克隆了 Concept Insights 演示并进行了一些小改动以使用我自己的语料库。它在本地运行正常,但是当我将其部署到Bluemix时,我在尝试访问我的语料库时收到授权错误。我确定该错误是由 app.js 提前调用 bluemix.getServiceCreds('concept_insights') 的结果,显然用一些必须存储在Bluemix环境中的服务凭证替换我的服务凭证。

有人可以解释一下这个函数的用途,以及我正在尝试做的正确方法吗?我可能只是删除了对该函数的调用,但我担心如果我这样做,我可能会丢失一部分大图。这是一种将我的凭据保留在代码库之外的方法吗?如果是这样,我该如何使其发挥作用?

1 个答案:

答案 0 :(得分:0)

bluemix.getServiceCreds('concept_insights')从Bluemix创建的concept_insights变量中获取VCAP_SERVICES服务凭据。 (见VCAP_SERVICES
您可能希望使用环境中的凭据,而不是在app.js文件中对其进行硬编码。

当您的应用在本地运行时,您需要对app.js中的凭据进行硬编码,但是当它在Bluemix中运行时,这些凭据会被覆盖。如果您不希望发生这种情况,请删除bluemix.getServiceCreds('concept_insights')

var credentials = {
  url: 'https://gateway.watsonplatform.net/concept-insights/api',
  username: '<username>',
  password: '<password>',
  version: 'v2'
};

创建服务时,请确保使用Standard计划。 Standard plan

如果您使用Beta计划,则必须使用https://gateway.watsonplatform.net/concept-insights/api作为url