ibm-cloud - 如何在 Bluemix Watson Visual Recognition 中处理服务绑定(bind)上的 API key 重新生成?

标签 ibm-cloud ibm-watson watson visual-recognition

我有一个绑定(bind)到 Bluemix 应用程序的 Watson Visual Recognition 服务。我正在使用 blue-green deploy 管理应用程序部署通过冒烟测试。

我在冒烟测试中包含的检查之一是依赖于视觉识别服务的功能。由于冒烟测试在部署后立即运行,并且看起来视觉识别服务 API key 在重新绑定(bind)时重新生成 - 然后需要一段时间才能生效 - 冒烟测试失败。等待生效的过程有记录,但这令人头疼。我尝试了两种解决方法:

  • 在我的代码中添加重试循环,以等待视觉识别服务 key 有效。然后,我的冒烟测试可以调用此方法,确保在获得有效 key 之前不会推送任何内容。我可以看到,免费通话的 key 相对较快地变得有效(大约 30 秒内),但随后需要几分钟才能附加到付费通话的权利。等待 key 对付费调用有效会增加我的部署时间大约五分钟,这并不理想,因为我们的团队每天推送多次并且部署可以开始备份。
  • 创建永久凭据并使用用户提供的服务将其绑定(bind)到我的应用程序。这意味着部署可以立即开始使用该 key ,这很好,但我绕过了正常的服务绑定(bind)机制,这似乎是错误的。

是否有我错过的选项?

最佳答案

如果服务正在重置您的凭据,我将以“未绑定(bind)模式”运行。

From the CF docs ,将服务绑定(bind)到应用程序的定义如下:

Binding a service instance to your application triggers credentials to be provisioned for the service instance and delivered to the application runtime in the VCAP_SERVICES environment variable. For details on consuming these credentials with your application, see Using Bound Service Instances.

它提供了一种通过 VCAP_SERVICES 环境变量来管理和使用服务实例的有用方法。

如果重新绑定(bind)服务需要 >=5 分钟,重置您的凭据,并且总体上会给您的部署过程带来不便,我会将其与您的应用程序解除绑定(bind),并通过用户提供的环境变量访问凭据。

关于ibm-cloud - 如何在 Bluemix Watson Visual Recognition 中处理服务绑定(bind)上的 API key 重新生成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44166894/

相关文章:

ios - 如何开始使用 Watson Data Analytics for iOS App?

node.js - Watson Node.js SDK for Conversation Service 的更新

ibm-cloud - 如何获取 Watson Text to Speech 服务的用户名和密码?

java - 无法将更改推送到 Liberty for Java "Starter Code"、HelloResource.java 或 index.html、返回到 bluemix

ibm-cloud - Bluemix Watson 语音转文本优先选项

scala - 如何查看应用 K-Means 算法后添加到集群中的数据点?

ibm-cloud - 在多个区域上使用 bluemix 中的应用程序,如果一个区域关闭,则立即重定向到另一个区域

java - 尝试调用 Watson Translation Service

ibm-cloud - 如何为 IBM Watson Conversation 服务设置德语

node.js - 使用 NodeJS Promise 查询 MongoDB