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 次 |
最近记录: |