【发布时间】:2018-09-29 00:02:27
【问题描述】:
我正在使用 GAE 来部署我的应用程序,并且我有一些环境变量想要传递给我的 GAE 实例。比如我每次使用DB时,unix socket的赋值目前是这样的:
unix_socket='<my_path_to_my_sockets>/{instance}'
.format(instance=properties.get_property('data.instance'))
这很好,但问题是它是一个共享代码,每次有人进行本地测试时,它都会更改路径并将更改推送到存储库。当有人拉新更改时,它需要更改以发出数据库请求,因为每个人都有不同的套接字更改路径。所以我创建了以下语句:
unix_socket= (os.environ['CLOUDSQL_INSTANCES_DIR']
if 'CLOUDSQL_INSTANCES_DIR' in os.environ
else '/home/cpinam/cloudsql/')
+ properties.get_property('cloud.instance')
因此,如果有人在其系统中具有环境变量,那么它会使用该变量并避免使用绝对路径。问题是这个环境变量指的不是我的电脑而是GAE实例。
问题是,我怎样才能使用我的环境变量而不是服务器实例的任何环境变量?可能吗?
PS:我知道我可以通过 app.yaml 文件传递环境变量,但这意味着要修改该文件。
谢谢
【问题讨论】:
-
在 gae 实例中引用环境变量是正确的行为,否则您希望它如何在生产服务器中工作?人们是否自定义安装 cloudsql 目录?不是默认安装会放在同一个位置吗?
-
@marcadian 只有在本地开发下才需要环境变量。问题是代码引用的是 gae 环境变量而不是我的局部变量,我想同时引用这两个变量
标签: python google-app-engine environment-variables