0

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

谢谢

4

1 回答 1

2

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

是和不是。

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

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

这与语言细节无关(即,您使用的语言无关紧要)。这是一个要求,因为运行应用程序的容器是使用一组固定的环境变量创建的。当这些变化时,必须重新创建容器。也就是说,即使容器可以在运行时更改,在 Linux 中,进程的环境变量也不能在运行时从外部更新(技术上有一些方法可以做到这一点,但实际上你不太可能这样做)。应该重新启动进程本身以更改环境变量。

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

于 2020-08-08T19:28:17.463 回答