我正在尝试理解 Google App Engine 的 dispatch.yaml
文件。
我们有一个带有前端和后端的普通网络应用程序。我们还有开发和生产环境。两种环境在 GAE 上都有两项服务 - frontend
和 default
,后者是后端。
我们有一个带有前端和后端的普通网络应用程序。我们还有开发和生产环境。我们在 GAE 上有两个服务——前端和默认,这是后端。我们在 GAE 上有两个项目 - staging
,这是我们的开发环境,以及 production
,这是我们的生产环境。暂存环境是从我们的前端和后端的开发分支构建的。生产环境是从我们的前端和后端的 master 构建的。
我们希望在暂存和生产环境中使用自定义路由。
我曾尝试使用 dispatch_staging.yaml
和 dispatch_prod.yaml
来区分文件,但 GAE 无法识别这些文件名。我想我们可以重命名前端服务,但看起来无法绕过 default
。
如何使用dispatch.yaml
指定正在构建的环境?
最佳答案
我知道这是一个老问题,但我刚刚发现了一些有趣的东西,可以帮助每个想要部署到不同环境的人。
经过反复试验,我发现 gcloud
需要调用作为参数给出的调度文件 dispatch.yaml
.如果您将其命名为其他名称,例如 dispatch-staging.yaml
或 dev-dispatch.yaml
它不会工作。
但是,这是我发现的技巧,该文件不必位于项目的根文件夹中。
所以,在我们的项目中我这样做了:
-
<project_root>/dispatch.yaml
- 用于生产 -
<project_root>/deploy-staging/dispatch.yaml
- 用于分期
现在我可以做 cd <project_root>
然后:
-
gcloud --project <production> app deploy ./dispatch.yaml
-
gcloud --project <staging> app deploy ./deploy-staging/dispatch.yaml
换句话说,gcloud
不关心 dispatch.yaml
在哪个目录中只要文件被称为dispatch.yaml
,它就会被找到.
关于google-app-engine - 多开发环境如何使用GAE的dispatch.yaml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46016022/