gpt4 book ai didi

python - 将环境变量传递给 GAE 实例

转载 作者:太空宇宙 更新时间:2023-11-04 02:27:56 24 4
gpt4 key购买 nike

我正在使用 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 文件传递​​环境变量,但这意味着要修改该文件。

谢谢

最佳答案

App Engine 无法以您想要的方式支持您想要的内容。

您可能需要考虑几种替代方法。听起来您的主要约束是希望让各个开发人员能够将替代配置存储在他们可能在生产中找到的配置中。您可能需要考虑允许开发人员将所述配置存储在他们的本地数据存储实例中。

你的代码看起来像这样:

if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/'):
unix_socket = os.environ['CLOUDSQL_INSTANCES_DIR']
...
else:
unix_socket = your_configuration_type.get("CLOUDSQL_INSTANCES_DIR")
...

另一种选择是概述的方法 here在您自己的 client_secrets.json 版本中存储相关的环境变量,并确保该文件在 .gitignore 中列出。

关于python - 将环境变量传递给 GAE 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49904890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com