Cloud foundry PCF Credhub Service broker-无法旋转凭据并要求重新启动

Cloud foundry PCF Credhub Service broker-无法旋转凭据并要求重新启动,cloud-foundry,Cloud Foundry,我创建了一个credhub实例,并使用下面的cf命令存储了我的秘密 cf create service credhub默认我的秘密-c“{\“secretMessage\”:\“1234567\”} 我的spring boot应用程序会毫无问题地拾取secretMessage值。现在我执行了updateservice命令,并用下面的命令旋转了secretMessage cf更新服务我的秘密-c“{\“secretMessage\”:\“1234567 updated\”} 但我的spring b

我创建了一个
credhub
实例,并使用下面的
cf命令存储了我的秘密

cf create service credhub默认我的秘密-c“{\“secretMessage\”:\“1234567\”}

我的spring boot应用程序会毫无问题地拾取
secretMessage
值。现在我执行了
updateservice
命令,并用下面的命令旋转了
secretMessage

cf更新服务我的秘密-c“{\“secretMessage\”:\“1234567 updated\”}

但我的spring boot应用程序不会选择更新的,除非我在PCF中重新启动应用程序

有没有办法在不重新启动的情况下提取已旋转的凭据

但我的spring boot应用程序不会选择更新的,除非我在PCF中重新启动应用程序

有没有办法在不重新启动的情况下提取已旋转的凭据

不,这是预期的行为

您的服务实例已绑定到您的应用程序。与绑定到应用程序的所有服务实例一样,它通过
VCAP\u SERVICES
环境变量提供信息。环境变量,包括
VCAP\u服务
,仅在重新启动应用程序时更新


你可能会想,等等,我的
VCAP\u服务
有来自CredHub的占位符,这些占位符不应该自动更新吗?不幸的是,没有。迭戈生命周期负责查找CredHub场所持有者并解决他们。这将在应用程序启动之前运行。然后,它将实际值放入
VCAP\u服务
。这就是你的应用程序可以看到实际值而不是占位符的方式,同时对CredHub一无所知。

很抱歉打扰你,但你能看看这个吗谢谢@Daniel:
VCAP\u服务
对于CredHub,内容不包含实际凭证的值,而是指向
“CredHub ref”:“/credhub service broker/credhub/f96e4398-9784-4224-a568-c81XXXXX/credentials“
。我猜它指的是凭证,无论何时请求,都可以轻松旋转,而无需重新启动应用程序。
VCAP\u credhub服务的内容不包含实际凭证的值。
->这取决于您查看的位置:)如果您查看Cloud Controller,那么您是对的。如果您查看应用程序容器中的值,则不会。迭戈生命周期负责查找CredHub place Holder并解决它们。然后,它将实际值放入
VCAP\u服务
。这就是你的应用程序在不了解CredHub的情况下如何看到实际价值&而不是占位符。我做了
cf ssh
并执行了
echo VCAP\u SERVICES
。。。我仍然无法看到凭证l,而只有credhubref在那里。我认为有两种方法可以看到实际值。1.)运行
cf ssh”“-t-c”/tmp/lifecycle/launcher/home/vcap/app bash“”“
,它使用启动器启动bash shell。2.)查看use
cf ssh
,然后查看
cat/proc//environ
,其中
pid
是应用程序进程的进程id。