gpt4 book ai didi

spring - 如何更新 cf vcaps env 中的 postgres uri 值

转载 作者:行者123 更新时间:2023-11-29 14:26:21 26 4
gpt4 key购买 nike

我在 CF(Cloud foundry)中为我的 spring 应用程序绑定(bind)了一个 Postgres 服务可用的 VCAPS 环境如下:

"postgresql": [
{
"binding_name": null,
"credentials": {
"dbname": "JDusZ6EpE1ixbTKS",
"end_points": [
{
"host": "10.11.241.2",
"network_id": "SF",
"port": "46371"
}
],
"hostname": "10.11.241.2",
"password": "SuVzOf2m5L5oNYSG",
"port": "46371",
"ports": {
"5432/tcp": "46371"
},
"uri": "postgres://eyv6avf27X9Z55Gx:SuVzOf2m5L5oNYSG@10.11.241.2:46371/JDusZ6EpE1ixbTKS",
"username": "eyv6avf27X9Z55Gx"
},
"instance_name": "mypostgres",
"label": "postgresql",
"name": "mypostgres",
"plan": "v9.6-dev",
"provider": null,
"syslog_drain_url": null,
"tags": [
"postgresql",
"relational"
],
"volume_mounts": []
}
],

我需要修改 uri 的值以包含当前模式,我想它需要如下:

 "uri": "postgres://eyv6avf27X9Z55Gx:SuVzOf2m5L5oNYSG@10.11.241.2:46371/JDusZ6EpE1ixbTKS?currentSchema=mycurrentschema"

这有可能吗?如果不是,为 spring 应用程序分配当前模式的最佳做法是什么?

提前致谢

最佳答案

您有几个选择。

  1. 您可以咨询您的服务提供商,即您从中获得服务的服务经纪人的运营商。服务代理是设置凭据的代理,因此您可以要求他们默认包含架构。

  2. 您可以使用 cf create-service-key 创建服务 key 。服务 key 类似于服务绑定(bind),但可以自由 float ,因此它不会附加到您的应用程序。只要服务 key 存在,它就存在。然后,您可以使用 cf cups 创建用户提供的服务,并手动设置您的应用所需的任何凭据或 uri。这种方法的缺点是您必须做更多的工作来管理服务信息。

  3. 您可以将当前 uri 读入您的应用程序并在创建数据源之前修改它。如果您使用 Spring Cloud 连接器,这并不是特别容易,因为它会为您创建数据源。我不推荐使用 SCC。

    相反,您可以使用 Spring Boot 执行此操作 CloudFoundryVcapEnvironmentPostProcessor和属性(property)占位者。请参阅引用的 Javadoc 以了解其工作原理。

    另一种选择是使用 java-cvenv .这为您提供了一种获取凭据信息(如 URL)并使用它来创建您自己的数据源的简单方法,这使您可以在必要时对 URL 等内容进行轻微修改。

希望对您有所帮助!

关于spring - 如何更新 cf vcaps env 中的 postgres uri 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57474030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com