如何从 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 版本之间的更多信息。
希望对您有所帮助。
我正在尝试在具有多个版本的 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 版本之间的更多信息。
希望对您有所帮助。