我有一个绑定(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/