如何处理Bluemix Watson Visual Recognition中的服务绑定API密钥重新生成?
问题描述:
我有一个绑定到Bluemix应用程序的Watson Visual Recognition服务。我正在使用blue-green deploy进行烟雾测试来管理应用程序部署。如何处理Bluemix Watson Visual Recognition中的服务绑定API密钥重新生成?
我在烟雾测试中包含的其中一项检查功能取决于视觉识别服务。由于冒烟测试在部署后立即运行,并且因为它看起来像是在重新绑定时重新生成了可视化识别服务API密钥 - 然后需要一段时间才能生效 - 冒烟测试失败。有效的等待记录在案,但是令人头疼。我已经尝试了两种解决方法:
- 在我的代码中添加一个重试循环,以等待Visual Recognition服务密钥有效。然后我的烟雾测试可以调用它,确保没有任何东西被推到活着,直到它有一个有效的钥匙。我可以看到,密钥对于免费通话相对较快(大约30秒内)而言是有效的,但这需要几分钟的时间才能附加到付费电话的权利。等待有效付费电话的密钥会为我的部署增加大约五分钟的时间,这并不理想,因为我们的团队每天都会推送很多次,部署可以开始备份。
- 创建永久凭据并使用用户提供的服务将它们绑定到我的应用程序。这意味着部署可以立即开始使用该密钥,这很好,但我绕过了正常的服务绑定机制,这似乎是错误的。
有没有我错过的选择?
答
如果服务正在重置您的凭据,我会以“未绑定模式”运行。
From the CF docs,绑定到一个应用程序的服务由以下定义:
绑定服务实例到你的应用程序触发凭据来支持该服务实例,并在VCAP_SERVICES环境交付给应用程序运行时变量。有关在应用程序中使用这些凭据的详细信息,请参阅使用绑定服务实例。
它提供了管理,并通过VCAP_SERVICES环境变量消耗你的服务实例的有效途径。
如果重新绑定服务需要> = 5分钟,重置您的凭据,并且总体上对您的部署过程不方便,我会将其从应用程序中解除绑定并通过用户提供的环境变量访问凭据。