在shub部署项目上设置变量

时间:2017-11-14 16:21:49

标签: python deployment scrapy environment scrapinghub

我尝试设置scrapy设置以在本地和scrapinghub上使用测试和生产环境。 我想知道是否有任何方法可以在shub deploy上设置此变量(例如,如下所示):

enter image description here

然后在settings.py:

if env == "test":
     var1 = some_ip
     var2 = username
elif env == "prod":
     var1 = some_ip
     var2 = username

或者......也许有更简洁的方法吗?

感谢您阅读!

PS:我想根据蜘蛛/项目所在的环境自动设置,而不是手动更改变量。

编辑:找到更好的解决方案。检查the answer

2 个答案:

答案 0 :(得分:2)

如果要使用环境变量控制它,可以执行以下操作:导出包含DEPLOY_TARGETtest的环境变量prod并执行以下命令进行部署

shub deploy $DEPLOY_TARGET

答案 1 :(得分:1)

最后,我按照以下步骤解决了我的问题:

所以现在我的设置如下:

settings tree

  • 然后我的2/3 = 1 2.0/3 = 1.5 2/3.0 = 1.5 2.0/3.0 = 1.5 看起来像这样:

__init__.py file

  • 接下来,修改__init__.py如下:

_environment.py. this is a function helper that gets programmatically the environment where is Scrapy at the moment

我希望自己有所帮助!

PS:请记住,你需要在scrapinghub上有两个项目,一个用于生产,一个用于测试,你需要从同一个项目部署如下:

scrapinghub.yml

然后你必须(reference):

  • _environment.py部署进行测试。
  • shub deploy test部署到生产。
  • shub deploy prod部署进行测试。