如何在Bluemix Watson Visual Recognition中处理服务绑定上的API密钥重新生成?

时间:2017-05-24 19:22:14

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

我有一个绑定到Bluemix应用程序的Watson Visual Recognition服务。我使用blue-green deploy管理应用程序部署并进行冒烟测试。

我在烟雾测试中包括的一项检查功能取决于视觉识别服务。因为冒烟测试在部署后立即运行,并且因为看起来在重新绑定时重新生成视觉识别服务API密钥 - 然后需要一段时间才能生效 - 冒烟测试失败。记录等待变得有效,但它引起了头痛。我尝试了两种解决方法:

  • 在我的代码中添加重试循环,等待Visual Recognition服务密钥有效。然后我的烟雾测试可以调用它,确保在获得有效密钥之前没有任何东西被推送。我可以看到密钥对于免费呼叫相对较快(大约30秒内)变得有效,但随后需要几分钟才能附加付费呼叫的权利。等待密钥对付费电话有效会为我的部署增加大约五分钟,这不是理想的,因为我们的团队每天推送多次,部署可以开始备份。
  • 创建永久凭据并使用用户提供的服务将它们绑定到我的应用程序。这意味着部署可以立即开始使用该密钥,这很好,但我已经绕过了正常的服务绑定机制,这似乎是错误的。

有没有我错过的选项?

1 个答案:

答案 0 :(得分:2)

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

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

  

将服务实例绑定到应用程序会触发为服务实例配置的凭据,并将其传递到VCAP_SERVICES环境变量中的应用程序运行时。有关在应用程序中使用这些凭据的详细信息,请参阅使用绑定服务实例。

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

如果重新绑定服务需要≥5分钟,请重置您的凭据,这对您的部署过程总体上不方便,我会从您的应用程序解除绑定并通过用户提供的环境变量访问凭据。