2

我有一个绑定到 Bluemix 应用程序的 Watson Visual Recognition 服务。我正在使用带有冒烟测试的蓝绿色部署来管理应用程序部署。

我在冒烟测试中包括的一项检查是依赖于 Visual Recognition 服务的功能。因为冒烟测试在部署后立即运行,并且因为看起来 Visual Recognition 服务 API 密钥在重新绑定时重新生成 - 然后需要一段时间才能生效 - 冒烟测试失败。等待变为有效的过程已记录在案,但这令人头疼。我尝试了两种解决方法:

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

有没有我错过的选择?

4

1 回答 1

2

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

在 CF 文档中,将服务绑定到应用程序由以下内容定义:

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

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

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

于 2017-05-25T00:29:45.677 回答