Cloud foundry CloudFoundry用户提供的服务与环境变量

Cloud foundry CloudFoundry用户提供的服务与环境变量,cloud-foundry,Cloud Foundry,全部, 我正在寻找一种方法来指定特定于环境的配置值。我很难理解何时使用用户提供的服务与环境变量。看来我可以通过任何一种方式完成我需要的 一些比较点 用户提供的服务: 空间范围 由同一空间中的应用共享 应用程序必须显式绑定到它 逻辑分组相关属性(例如URL、用户名、密码) 环境变量: 特定于应用程序 我的特定用例涉及连接到MQ。在CloudFoundry之外,我会使用主机名、队列名等特定于环境的配置文件。我认为CF环境变量非常类似,但我认为数据库也是如此,但我看到了很多为数据库使用用户提供

全部,

我正在寻找一种方法来指定特定于环境的配置值。我很难理解何时使用用户提供的服务与环境变量。看来我可以通过任何一种方式完成我需要的

一些比较点

用户提供的服务:

  • 空间范围
  • 由同一空间中的应用共享
  • 应用程序必须显式绑定到它
  • 逻辑分组相关属性(例如URL、用户名、密码)
环境变量:

  • 特定于应用程序
我的特定用例涉及连接到MQ。在CloudFoundry之外,我会使用主机名、队列名等特定于环境的配置文件。我认为CF环境变量非常类似,但我认为数据库也是如此,但我看到了很多为数据库使用用户提供服务的示例


谢谢

您阐述的用例非常适合Spring云配置

特定于环境的设置将在config repo中外部化

下面是一篇很好的文章,解释如何为给定的环境/概要文件利用外部属性-

然后,您的下一个问题是,您不想将凭证放入git回购中。这是正确的

为了避免像这样损害信誉,SpringCloudConfig允许与Vault集成。Vault是来自HashiCorp的加密凭据存储。您必须安装并设置它

查看DZone的这篇文章,了解如何将Vault与SC配置集成-

至于您关于用户提供的服务的问题,您可以使用CUPS,但更好的方法是使用服务代理。AWS、GCP和Azure提供了自己的Service Broker互动程序,Ops团队可以将其安装在PCF上。有了它,您可以以安全的方式访问AWS/GCP/Azure提供的任何资源


您始终可以编写自己的service broker-。

您阐述的用例非常适合Spring云配置

特定于环境的设置将在config repo中外部化

下面是一篇很好的文章,解释如何为给定的环境/概要文件利用外部属性-

然后,您的下一个问题是,您不想将凭证放入git回购中。这是正确的

为了避免像这样损害信誉,SpringCloudConfig允许与Vault集成。Vault是来自HashiCorp的加密凭据存储。您必须安装并设置它

查看DZone的这篇文章,了解如何将Vault与SC配置集成-

至于您关于用户提供的服务的问题,您可以使用CUPS,但更好的方法是使用服务代理。AWS、GCP和Azure提供了自己的Service Broker互动程序,Ops团队可以将其安装在PCF上。有了它,您可以以安全的方式访问AWS/GCP/Azure提供的任何资源


您可以随时编写自己的service broker-。

如果您希望存储凭据,我建议您使用Cloud Foundry或Hashicorp之类的服务


我相信更简化的方法是Credhub,因为它的设计考虑到了CF。它有一个服务代理,使应用程序能够获取凭据。

如果您希望存储凭据,我建议您使用Cloud Foundry或Hashicorp等服务


我相信更简化的方法是Credhub,因为它的设计考虑到了CF。它有一个服务代理,使应用程序能够获取凭据。

在核心,用户提供的服务和环境变量是完全相同的。用户提供的服务只是与CloudFoundry一起使用的一种不同的抽象,并为您的数据提供某种结构。但最终,所有内容都会作为环境变量呈现给应用程序

对我来说,最大的问题是如何在我的应用程序中使用这些信息。如果我使用的应用程序框架可以轻松地从环境变量中提取配置,那么我会使用环境变量。我这样做是为了我的Python/Flask应用程序,我听说它也适用于RubyonRails(尽管我不是Rails用户)

我通常会选择Java/Spring应用程序的用户提供服务,因为使用SpringCloudConnector使用这些服务稍微容易一些。不过这是一个折腾,因为SpringBoot也使得使用环境变量的值变得非常容易

我发现环境变量也稍微容易处理。在CF中,没有cli命令来查看用户提供的服务。您必须将服务绑定到某个东西上,然后查看
cf env
,这很尴尬

不管怎样,不要过分强调。选择任何对你的应用更容易的



仅供参考,@poy的解决方案也很好。但是这需要更多的工作,所以你必须决定你的项目是否真的需要它。

在核心,用户提供的服务和环境变量是完全一样的。用户提供的服务只是与CloudFoundry一起使用的一种不同的抽象,并为您的数据提供某种结构。但最终,所有内容都会作为环境变量呈现给应用程序

对我来说,最大的问题是如何在我的应用程序中使用这些信息。如果我使用的应用程序框架可以轻松地从环境变量中提取配置,那么我会使用环境变量。我这样做是为了我的Python/Flask应用程序,我听说它也适用于RubyonRails(尽管我不是Rails用户)

我通常会选择Java/Spring应用程序的用户提供服务,因为使用SpringCloudConnector使用这些服务稍微容易一些。不过这是一个折腾,因为SpringBoot也使得使用环境变量的值变得非常容易

我发现环境变量也稍微容易处理。在CF中,没有用于查看用户提供的命令的cli命令