是否可以設置Heroku環境變量而不需要重啓應用程序?在不重啓應用程序的情況下設置Heroku環境變量
我的應用通過OAuth2連接到不同的在線服務。對於我連接的每個服務,我需要設置OAuth2 ID和祕密。爲了讓這些配置變量保持在我的代碼之外,我使用了環境變量,並在process.env
(node.js)中讀取它們。
每次我向應用程序添加新服務時,都需要爲ID和祕密添加相應的環境變量。我需要在推送最新代碼之前執行此操作,以便當應用程序下一次啓動新服務連接時,OAuth2 ID和密碼變量可用。
目前我的工作流程如下:heroku config:set <SERVICE>_ID=foo <SERVICE>_SECRET=bar
git push heroku master
目前,這兩項操作將重新啓動
- 使用Heroku的工具區設置環境變量應用程序。我真的更喜歡第一次操作不重新啓動應用程序,因爲這些配置變量的更改不需要生效,直到步驟2)。通過在第1步重新啓動)我的應用程序將會遇到不必要的停機時間。
那麼,有什麼辦法可以防止步驟1)重新啓動應用程序?
您無法更改正在運行的進程的環境變量。你只能從應用程序內操縱它。但是如果你在應用程序已經運行的時候需要改變一個環境變量,那麼你總是在做一些錯誤的事情。 – poke
感謝您的評論,但如果您會注意到,我實際上是添加了一個環境變量,而不是更改現有的環境變量。所以我認爲這不算是「做錯事」? – fiznool
在應用程序已經運行之後,您正在設置服務機密。服務祕密對我來說是一種在應用程序運行時不應該改變的配置。 – poke