我创建了一个credhub
实例,并使用下面的cf command
cf创建服务credhub默认my-secrets -c“ {\” secretMessage \“:\” 1234567 \“}”
我的spring boot应用程序获得了secretMessage
值,没有任何问题。现在我执行了update-service
命令,并使用以下命令旋转了secretMessage
cf update-service my-secrets -c“ {\” secretMessage \“:\” 1234567-updated \“}”
但是,除非直到我在PCF中重新启动该应用程序,否则我的spring-boot应用程序不会选择更新的应用程序。
有没有办法在不重新启动的情况下拿起旋转凭证?
答案 0 :(得分:1)
但是,除非直到我在PCF中重新启动该应用程序,否则我的spring-boot应用程序不会选择更新的应用程序。
有没有办法在不重新启动的情况下拿起旋转凭证?
否,这是预期的行为。
https://docs.pivotal.io/credhub-service-broker/using.html#update
您的服务实例已绑定到您的应用程序。与绑定到应用程序的所有服务实例一样,它通过VCAP_SERVICES
环境变量提供信息。仅当您重新启动应用程序时,才会更新包括VCAP_SERVICES
在内的环境变量。
您可能正在考虑,等我的VCAP_SERVICES
具有来自CredHub的占位符,这些不是自动更新吗?很不幸的是,不行。 Diego生命周期负责查找CredHub占位符并解决它们。这将在您的应用程序启动之前运行。然后将实际值放入VCAP_SERVICES
中。这样,您的应用程序就可以看到实际值,而不是占位符,同时又不了解CredHub。