我们可以在运行时更改/修改PCF(Pivotal Cloud Foundy)中的环境吗?

时间:2020-08-07 19:00:39

标签: pivotal-cloud-foundry pivotal-web-services

我们使用Pivotal Cloud Foundry的YML文件来设置环境。一切都很好。根据DEVOPS,如果必须修改/创建环境变量,则必须修改YML并再次推送应用程序。我想知道在PCF应用程序运行时是否可以修改/创建环境变量。如果无需重新部署应用程序就可以做到,这真的很酷。如果无法完成,是否是因为Java处理环境的方式?

谢谢

1 个答案:

答案 0 :(得分:0)

我们可以在运行时更改/修改PCF(Pivotal Cloud Foundy)中的环境吗?

是,不是。

您可以在应用程序运行时使用cf set-env(设置或更新)和cf unset-env(删除)来修改与应用程序关联的环境变量。

这将在您运行命令时更新Cloud Controller中的环境变量。 但是,这将更新正在运行的应用程序容器内部的环境变量。为了使您的应用程序能够看到所做的更改,您必须cf restartcf restagecf push

这与特定的语言无关(即您使用哪种语言都没有关系)。这是必需的,因为使用一组固定的环境变量创建了运行应用程序的容器。当这些更改时,必须重新创建容器。也就是说,即使可以在运行时更改容器,在Linux中,进程的环境变量也不能在运行时从外部进行更新(有technically some ways to do this,但实际上在实践中不太可能这样做)。应该重新启动该过程本身,以更改环境变量。

如果要在运行时更新配置,可以查看类似Spring Cloud Config server & its refresh capabilities的内容。就是说,事实证明,大多数应用程序和框架都假定应用程序在启动时被读取一次,因此您的应用程序还需要支持更改要在运行时更改的配置。