谷歌应用引擎是否支持环境变量?

Ale*_*zzi 3 google-app-engine environment-variables

我注意到开发人员控制台似乎没有公开我可以配置静态环境变量的任何地方.

是否期望GAE我将这些变量作为部署的一部分从我的构建服务器中捆绑出来?如果是这样,是否有关于GAE/Google Cloud的文档涵盖了为什么或详细说明了这一理念?

Dan*_*kov 9

几年过去了,还是不行。

我的解决方法是在部署过程中(本地或使用 CI)编译 app.yaml。例如,我有一个模板文件 app.tml.yaml 文件

runtime: python37
handlers:
- url: /static
  static_dir: app/static/
- url: /.*
  script: auto
env_variables:
  DJANGO_GC_DATABASE_PASSWORD: ${DJANGO_GC_DATABASE_PASSWORD}
Run Code Online (Sandbox Code Playgroud)

然后我在部署之前envsubst < ./app.tml.yaml > app.yaml和之后gcloud app deploy像往常一样调用 envsubst 。部署完成后,带有敏感数据的 app.yaml 将被删除。变量从本地 .env 文件读取或在 CI 系统中设置。

我在这篇文章中还发现了其他方法:https : //dev.to/mungell/google-cloud-app-engine-environment-variables-5990但对我来说它们不够方便或通用。


Jos*_*h J 6

可以在应用程序中定义环境变量 app.yaml

python/php /(也许是go?)应用程序的一个例子.Java使用不同的格式.

env_variables:
  MY_ENV_VAR: 'some value here'
Run Code Online (Sandbox Code Playgroud)

https://cloud.google.com/appengine/docs/python/config/appconfig#Python_app_yaml_Defining_environment_variables

您可以在CI过程中设置这些值,如果您需要在部署之前以编程方式将它们附加到app.yaml.

  • 只是为了完整起见,他们是否在任何地方记录了不提供环境变量背后的原因?或者是否有意见/理论? (3认同)
  • 为了解决Omega的问题,他们提供环境变量.您必须使用`app.yaml`在部署时定义它们.他们没有提供的是一个动态设置/取消设置这些变量而不需要推送代码的界面.它有时很不方便,但它也意味着你不会在没有明确推送代码的情况下意外地从网上改变某些东西. (3认同)