如何从 Google App Engine 中的单个 app.yaml 文件部署 java 应用程序的多个版本

How to deploy multiple versions of an java application from a single app.yaml file in Google App Engine

我正在尝试在具有多个版本的 App Engine 上部署 java spring 应用程序。我正在使用 docker 图像来部署应用程序。我想创建一个 app.yaml 文件,我可以在其中定义我的应用程序的两个版本,并从一个文件 运行 它们。

我无法理解如何在单个文件中为两个版本编写 app.yaml。目前我的 yaml 文件看起来像:

runtime: java
api_version: '1.0'
env: flexible
threadsafe: true

现在如何在同一个 yaml 中添加第二个版本详细信息并同时部署。

我认为不可能同时从同一个 app.yaml 部署一个 gcloud 应用程序部署和部署 2 个版本。

我认为您可以做的是尝试使用具有您的版本名称的不同 $ENV_VARIABLES 执行 2 gcloud deploy 来解决您需要的问题。所有这些都在 docker 图像中,因此您可以将其自动化。之后你也可以将它们之间的流量拆分 2 并实现我认为你正在寻找的东西。

在你的 docker 图片中会是这样的:

RUN gcloud app deploy -v $ENV_VAR && gcloud app deploy -v $ENV_VAR2 --no-promote

RUN gcloud app services set-traffic [SERVICE] --splits:$ENV_VAR1:.5, $ENV_VAR2:.5

有关如何 set-traffic 版本之间的更多信息。

希望对您有所帮助。