我可以将外部服务 VCAP_SERVICES 注入我的应用吗?

Can I inject external service VCAP_SERVICES into my app?

如果我在一个 space、MY_ANALYTICS_SPACE 中有一个 MessageHub 服务,而我在另一个 space [=18] 中有一个应用程序=]MY_WEBAPPS_SPACE。这些 space 代表组织的两个不同部分,并且被设计为保持独立。

但是,像 MessageHub 这样的企业级集成技术可能跨越多个 space。

当服务和应用程序处于不同的 space 时,是否可以将 MessageHub 的连接详细信息注入到我的应用程序的 VCAP_SERVICES 中?

感谢您的提问。

是的,此功能由 user-provided 服务功能提供。

这里有一些示例 shell 脚本调用可以实现此目的:

cf target -s MY_ANALYTICS_SPACE
cf create-service messagehub standard common-messagehub
cf create-service-key common-messagehub Credentials-1
JSON=$(cf service-key common-messagehub Credentials-1 | tail -n +3)
cf target -s MY_WEBAPPS_SPACE
cf create-user-provided-service common-messagehub -p "${JSON}" \
    || cf update-user-provided-service common-messagehub -p "${JSON}"