我目前正在将一个应用程序迁移到依赖于各种外部连接的环境变量的 Google App Engine。看起来 app.yaml 文件是我应该设置这些配置的地方,但是我如何管理这些变量可能不同的不同环境(开发、测试、暂存、生产)?
最简单的解决方案是仅使用不同的 app.yaml 文件为每个环境创建一个分支吗?
最佳答案
app.yaml
可以为应用程序的其余部分设置环境变量,但它无法检查它们并做不同的事情取决于他们的传入值。因此,您确实需要向您使用的任何部署过程提供不同的 app.yaml
文件。
至于准备正确的 app.yaml
作为 GAE 部署的初步步骤的最佳方法,这是一个更微妙的 devops 问题。正如你提到的,你的 git 或 hg 或其他任何东西中的分支都可以工作,但就个人而言(也许只是运气不好?-)我经常发现我的结构越简单越好,并且分支旨在长期存在(如反对打算很快合并回主干的临时偏差)让我更头疼。
所以,如果由我来决定,我将有一个带有所需 if/else 逻辑的 preapp.yaml
模板(也许是 jinja2,等等),并准备正确的 app。 yaml
,作为任何部署的第一步,使用简单的 Python 脚本。
当前测试版 gcloud preview deployment-manager
使用的架构类型(用于所有类型的配置文件,因此具有更多不可避免的复杂性),参见 https://cloud.google.com/deployment-manager/ ,所以我当然可能对这种方法有偏见(但正如我提到的,我的偏见主要来自以前糟糕的部署经验:-)。
关于google-app-engine - App Engine : different app. 基于环境的 yaml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28282640/