google-app-engine - 多开发环境如何使用GAE的dispatch.yaml?

标签 google-app-engine google-cloud-platform app-engine-flexible

我正在尝试理解 Google App Engine 的 dispatch.yaml 文件。

我们有一个带有前端和后端的普通网络应用程序。我们还有开发和生产环境。两种环境在 GAE 上都有两项服务 - frontenddefault,后者是后端。

我们有一个带有前端和后端的普通网络应用程序。我们还有开发和生产环境。我们在 GAE 上有两个服务——前端和默认,这是后端。我们在 GAE 上有两个项目 - staging,这是我们的开发环境,以及 production,这是我们的生产环境。暂存环境是从我们的前端和后端的开发分支构建的。生产环境是从我们的前端和后端的 master 构建的。

我们希望在暂存和生产环境中使用自定义路由。

我曾尝试使用 dispatch_staging.yamldispatch_prod.yaml 来区分文件,但 GAE 无法识别这些文件名。我想我们可以重命名前端服务,但看起来无法绕过 default

如何使用dispatch.yaml指定正在构建的环境?

最佳答案

我知道这是一个老问题,但我刚刚发现了一些有趣的东西,可以帮助每个想要部署到不同环境的人。 经过反复试验,我发现 gcloud需要调用作为参数给出的调度文件 dispatch.yaml .如果您将其命名为其他名称,例如 dispatch-staging.yamldev-dispatch.yaml它不会工作。 但是,这是我发现的技巧,该文件不必位于项目的根文件夹中。 所以,在我们的项目中我这样做了:

  1. <project_root>/dispatch.yaml - 用于生产
  2. <project_root>/deploy-staging/dispatch.yaml - 用于分期

现在我可以做 cd <project_root>然后:

  1. gcloud --project <production> app deploy ./dispatch.yaml
  2. 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/

相关文章:

python - 客户端,Google Flex App Engine和Cloud SQL之间的高延迟

google-app-engine - Google Datastore 模拟器从本地数据库中删除数据

java - Jericho HTML 解析器可以在 Google App Engine for Java 上运行吗?

mysql - GCP SQL Cloud - 空 MySQL 数据库占用 1.2GB 存储空间

python-3.x - Cloud Run 连接到 Cloud SQL 模块时出错 Python

google-app-engine - 滚动重启导致 App Engine 应用程序脱机。有没有办法更改配置以防止这种情况发生?

google-app-engine - 如何在应用引擎 flex (Python 3.7) 中本地模拟 Google 云任务服务?

google-app-engine - 如何删除搜索索引本身

python - 应用引擎 : "URLFetch is not available in this environment."

email - 发送包含许多大附件的电子邮件时,Gmail API 推送通知过多