Node.js 在不重新启动应用程序的情况下设置Heroku环境变量
是否可以在不重新启动应用程序的情况下设置Heroku环境变量 我的应用程序通过OAuth2连接到不同的在线服务。对于我连接到的每个服务,我需要设置OAuth2 ID和密码。为了将这些配置变量保留在代码之外,我使用了环境变量,并在Node.js 在不重新启动应用程序的情况下设置Heroku环境变量,node.js,git,heroku,environment-variables,Node.js,Git,Heroku,Environment Variables,是否可以在不重新启动应用程序的情况下设置Heroku环境变量 我的应用程序通过OAuth2连接到不同的在线服务。对于我连接到的每个服务,我需要设置OAuth2 ID和密码。为了将这些配置变量保留在代码之外,我使用了环境变量,并在process.env(node.js)中读取它们 每次我向我的应用程序添加新服务时,我都需要为ID和secret添加相应的环境变量。在推送最新代码之前,我需要这样做,这样当应用程序下一次启动新的服务连接时,OAuth2 ID和secret变量就可用了 目前我的工作流程如
process.env
(node.js)中读取它们
每次我向我的应用程序添加新服务时,我都需要为ID和secret添加相应的环境变量。在推送最新代码之前,我需要这样做,这样当应用程序下一次启动新的服务连接时,OAuth2 ID和secret变量就可用了
目前我的工作流程如下:
Heroku配置:Set\u ID=foo\u SECRET=bar
git推送heroku master
就我个人而言,我也希望有一种方法来满足你的要求。在更大的应用程序上,当运行多种进程类型时,系统范围的硬重启可能会很痛苦。很多时候,我设置了一些环境变量,这些变量对于应用程序立即获取信息并不重要,例如涉及未来功能的环境变量,或者设置为可以使用旧值,但希望新值以滚动重启方式生效的环境变量。目前,无法避免应用程序重启。但是您可以使用命令heroku config:edit一次编辑您的环境,甚至粘贴一个新的环境集,避免多次重新启动 在中,根据heroku配置帮助:
(…)
命令
配置:交互编辑编辑配置变量
配置:获取并显示应用程序的单个配置值
配置:设置一个或多个配置变量
配置:取消设置一个或多个配置变量
这样你就可以跑了
heroku config:edit
此外,您可能想看看这个问题(提案):
无法更改正在运行的进程的环境变量。你只能在应用程序中操作它。但是,如果你需要在应用程序已经运行的情况下更改环境变量,那么你肯定是做错了。谢谢你的评论,但是如果你注意到的话,我实际上是在添加环境变量,而不是更改现有的环境变量。所以我不认为这算是“做错了什么”?在应用程序已经运行之后,您正在设置服务机密。对我来说,服务秘密是一种在应用程序运行时不应该改变的配置。但是,这是尚未部署的服务的服务机密。所以它不应该影响其他任何事情。我在这里真正想要的是部署一个新服务,并将该服务的env vars设置为原子操作,即只导致单个应用程序重新启动的操作。这是向heroku提出的吗?