【发布时间】:2021-12-31 13:09:08
【问题描述】:
我正在开发一个 Google Cloud Django 项目。
如果我在开发或生产模式下运行,我正在尝试签入settings.py。
我添加了以下代码块来测试运行程序的软件是在我的机器上还是在 Google 云服务器上。
# | settings.py |
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine'):
#code to execute in production
else:
#code to execute in development
我注意到if 状态是always false,所以我决定调试os.environ 字典。
调试的结果是环境的键SERVER_SOFTWARE的值等于gunicorn/20.1.0。
正如stackoverflow question 的正确答案所写,在生产环境中运行时(如在 Google Cloud Server App Engine 上),SERVER_SOFTWARE 的值应该是 Google App Engine/XYZ,其中 X、Y 和 Z 代表 Google Cloud 的版本。但是,正如我所说,在 App Engine 上运行时,我的价值不是那样,而是 gunicorn/20.1.0。
那么,我如何让程序知道我是在开发还是生产中运行?
【问题讨论】:
-
您的 Django 应用程序是在 App Engine 标准还是灵活 (AEF) 环境中运行?您链接的答案提到了 App Engine 标准环境。仅限。
-
我猜我是在标准版上运行的
-
你说 - 你猜。你可否确认?检查您的 app.yaml 文件中是否有
env: flex
标签: python django google-app-engine google-cloud-platform