英文:
How to pass startup args for my app?
问题
你好!要在Heroku上传递启动参数以便告诉应用程序加载DEV或PROD设置,你可以按照以下步骤进行操作:
-
在你的应用程序中创建一个配置文件,用于存储不同环境的设置。例如,你可以创建一个名为config.py的文件。
-
在config.py文件中,定义DEV和PROD环境的设置。你可以使用不同的变量来存储不同的设置,例如数据库连接字符串、API密钥等。
-
在Heroku上的应用程序设置中,找到"Config Vars"(配置变量)部分。在这里,你可以添加自定义的环境变量。
-
添加一个名为"ENV"的环境变量,并将其值设置为"DEV"或"PROD",以指定应用程序应该加载哪个环境的设置。
-
在你的应用程序代码中,使用环境变量来确定要加载的设置。你可以使用os.environ.get("ENV")来获取"ENV"环境变量的值,并根据该值加载相应的设置。
通过这种方式,你可以在Heroku上传递启动参数,并告诉应用程序加载不同的设置。希望对你有所帮助!如果你有任何其他问题,请随时提问。
英文:
I want to pass startup arguments in my app so I can tell the application to load in either DEV or PROD settings.
How can I do this on heroku?
答案1
得分: 1
首先在Heroku中声明环境变量,例如:
heroku config:set APPMODE=PROD
然后在你的应用程序中,导入os包并调用Getenv函数。示例代码如下:
package main
import 'os'
var appmode string
func init () {
appmode = os.Getenv("APPMODE") // PROD
}
另一种选项是使用flag包。示例代码如下:
// flagsoverflow
package main
import "flag"
var AppMode string
func init () {
AppMode = flag.String("appmode", "DEV", "help message for flagname") // 默认值为DEV
}
然后在构建应用程序时,可以使用标志选项运行:
./flagsoverflow -appmode=PROD // 将值设置为PROD
参考链接:https://devcenter.heroku.com/articles/config-vars
os包:https://golang.org/pkg/os/#Getenv
flag包:https://golang.org/pkg/flag/
英文:
First declare ENV variables in Heroku, ie:
heroku config:set APPMODE=PROD
then in you app, import the os package and call Getenv.
Example:
package main
import 'os'
var appmode string
func init () {
appmode = os.Getenv("APPMODE") // PROD
}
Other option, using the flag package.
Example:
// flagsoverflow
package main
import "flag"
var AppMode string
func init () {
AppMode = flag.String("appmode", "DEV", "help message for flagname") // Defaul Value DEV
}
Then when u build u application u can run with flag options:
./flagsoverflow -appmode=PROD // Set the Value to PROD
Refs: https://devcenter.heroku.com/articles/config-vars
os: https://golang.org/pkg/os/#Getenv
Flags: https://golang.org/pkg/flag/
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论