nic*_*ick 6 google-app-engine google-cloud-platform
目前,我有我的应用程序启动和运行时,app.yaml并dispatch.yaml在应用程序的根,我通过谷歌云CLI部署。
目前这很有效,但当我转向拥有dev,staging和prod环境时,我可以看到它不再可行。
我看到的主要问题是我必须编辑app.yaml文件中的变量,以便它们适合环境(例如,我env_variables用来存储 mysql 凭据......)。
我在文档中找不到任何指向正确管理方法的内容,有什么想法吗?
另外...当从 GIT 存储库部署时,似乎app.yaml需要在存储库中,这是正确的吗?对我来说似乎不对……一定有更好的方法!
您可以使用配置文件或数据存储设置来跟踪此环境信息。在本次演讲的第 26 分钟,我给出了一些示例,说明如何在不需要不同app.yaml文件的情况下自定义环境。
gcloud app deploy还接受命令行上的 yaml 文件列表,默认值为app.yaml.
注意:假设您使用不同的应用程序来实现每个环境,而不是同一应用程序的不同服务/模块,恕我直言,这将是不必要的复杂化。请参阅如何将一个 App Engine 应用部署到多个项目
就我个人而言,我为每个环境使用不同的 git 分支。
当然,我只有 2 个环境:开发/暂存环境和生产环境,但同样的原则适用:
分支结构反映了环境中的流程:
master分支用于dev环境staging被从master树枝上拉下来production被从staging树枝上拉下来要将代码更改从一个环境传播到另一个环境,您需要将相应的子分支合并到较新的父分支版本(其中包含您要选取的更改),并将合并的子分支代码部署到相应的环境。
每个分支都有自己的文件版本app.yaml。您必须密切注意此文件中的冲突,只要对它的更改从一个分支传播到另一个分支,这些冲突就可能会弹出。
另请参阅Google App Engine Java 中的环境特定变量(可能还有其链接/相关帖子)。
| 归档时间: |
|
| 查看次数: |
4712 次 |
| 最近记录: |