【问题标题】:How do I deploy multiple versions of my app with routes using Google App Engine?如何使用 Google App Engine 使用路由部署我的应用的多个版本?
【发布时间】:2018-09-30 03:29:50
【问题描述】:

我在 https://myproject.appspot.com 上有一个 AppEngine 项目,如果我想打破向后兼容性,我希望能够提供不同版本的 myproject。方便的方法是有这样的东西:

https://myproject.appspot.com/v2 --> 我的myproject的第二版

https://myproject.appspot.com/v3 --> 我的myproject 的第 3 版

我知道我可以通过以下方式部署自定义版本:gcloud app deploy --version=v3。但是,如何修复此路由?显然,不同的版本会得到它们各自的 URL:s,如下所述:https://cloud.google.com/appengine/docs/standard/go/how-requests-are-routed。模式是https://[VERSION_ID]-dot-[MY_PROJECT_ID].appspot.com。这意味着我将拥有https://v2-dot-myproject.appspot.comhttps://v3-dot-myproject.appspot.com

那么,我该如何进行路由呢? AFAIK 我无法将此添加到dispatch.yaml。在那里我只能路由到服务而不是版本或确切的 URL。

【问题讨论】:

  • https://[VERSION_ID]-dot-[MY_PROJECT_ID].appspot.com 不能用于您的测试吗?

标签: google-app-engine routing yaml gcloud


【解决方案1】:

https://[VERSION_ID]-dot-[MY_PROJECT_ID].appspot.com 格式是在 GAE 中管理版本的首选方式。这使您可以使用split traffic between versions,这对于金丝雀测试或 a/b 拆分测试非常强大。

如果您真的有兴趣拥有https://myproject.appspot.com/[version numbers],那么您可以推出一个版本的应用程序,其中https://myproject.appspot.com/v2https://myproject.appspot.com/v3 路由都在同一个版本中,但是您将无法拆分流量通过 GAE 路由。

【讨论】:

    【解决方案2】:

    您无需专门执行任何操作来获取此路由,GAE 会自动为您完成。

    只需按照您提到的方式部署并检查相应的 URL。

    【讨论】:

      【解决方案3】:

      谷歌在这里描述了它:how-requests-are-routed

      页面说可以通过向url添加版本号来将请求路由到特定的url,如下所示

      https://[SERVICE_ID]-dot-[MY_PROJECT_ID].appspot.com

      如果我有一个名为http://mycuteproject.appspot.com的项目,那么在阅读以上页面后,我会认为http://20190705t200049.mycuteproject.appspot.com可以访问特定版本。但不是这样的,url应该是https://20190705t200049-dot-mycuteproject.appspot.com

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-13
        • 1970-01-01
        • 2021-01-22
        • 2020-04-09
        • 2021-05-19
        • 2011-10-21
        • 2017-01-14
        • 2020-01-12
        相关资源
        最近更新 更多