考虑使用IronWorker来运行一些公共服务,但是我想知道在工作人员本身中是否有一种方法可以知道它在什么环境下运行。例如,在我们的主要代码库中,我们将服务器var ENV设置为等于“开发”、“暂存”或“生产”之一。基于这个变量,我们的应用程序知道要加载哪个配置文件(通过dirs /development、config /暂存和config /产中的配置文件)。我想为一个工人做一些类似的设置。
我注意到,当我通过cli上传一个工作人员时,我可以这样做:
iron_worker上载工作者/示例/hello_world --env暂存
它允许我有一个iron.json配置文件,其中包含开发、暂存和生产键。例如,
{
"production": {
"token": "AAAAAAAAAAAAAAAAAAAAAAAAAAA",
"project_id": "000000000000000000000001"
},
"staging": {
"token": "BBBBBBBBBBBBBBBBBBBBBBBBBB",
"project_id": "000000000000000000000002"
},
"development": {
"token": "CCCCCCCCCCCCCCCCCCCCCCCCCC",
"project_id": "000000000000000000000003"
},
"test": {
"token": "DDDDDDDDDDDDDDDDDDDDDDDDDD",
"project_id": "000000000000000000000004"
}
}
但是,在worker本身中,我无法从cli访问env var,因此当工作人员需要加载某些配置var时,它不知道应该查看哪个dir。
在这里的文档中,http://dev.iron.io/worker/reference/dotworker/显示您可以在.worker文件中设置一个环境变量,但这意味着我需要为每个环境设置一个单独的工作文件,而且(可能吗?)根据我要部署到的环境交换它们。
发布于 2014-12-19 15:49:28
有一些棘手的方法:
1) iron.json。格式与所述格式相同,无更改。
2) .worker文件。通过环境,从本地系统到IronWorker环境。将这一行添加到.worker文件中:
set_env 'IRON_ENV', ENV['IRON_ENV']3)上传代码命令。而不是
iron_worker upload workers/example/hello_world --env staging使用不同的语法:
IRON_ENV=staging iron_worker upload workers/example/hello_world4)检查工人方面的环境(当然,任何可供选择的语言):
puts ENV['IRON_ENV']https://stackoverflow.com/questions/27568398
复制相似问题