2

我的应用程序的实时版本与其端点一起部署(没有问题)。 我也想轻松地测试其他版本(例如分期)。在GAE上使用端点V2进行版本控制

With endpointV1:没问题。

随着endpointV2: 一切,如果我部署到真人版(在https://[PROJECT-ID].appspot.com但对于其他版本无法正常工作

部署在https://staging-dot-[PROJECT-ID].appspot.com部署成功升级后,但在前端工作正常调用后端,请求被后端接收到的(我可以看到它在GAE日志和跟踪列表),但它不会使它或者虽然endpointV2和响应404 NOT FOUND:

"errors": [ { "domain": "global", "reason": "notFound", "message": "\u003chtml\u003e\u003chead\u003e\n\u003cmeta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\"\u003e\n\u003ctitle\u003e404 NOT_FOUND\u003c/title\u003e\n\u003c/head\u003e\n\u003cbody text=#000000 bgcolor=#ffffff\u003e\n\u003ch1\u003eError: NOT_FOUND\u003c/h1\u003e\n\u003c/body\u003e\u003c/html\u003e\n" }

我现在使用f原着maven插件:

<plugin> 
    <groupId>com.google.cloud.tools</groupId> 
    <artifactId>appengine-maven-plugin</artifactId> 
    <version>1.3.1</version> 
    <configuration> 
     <!-- deploy configuration --> 
    </configuration> 
</plugin> 
<plugin> 
    <groupId>com.google.cloud.tools</groupId> 
    <artifactId>endpoints-framework-maven-plugin</artifactId> 
    <version>1.0.0</version> 
</plugin> 

我调整了appengine.xml和Google Cloud插件中的版本。我如何配置端点以使用特定模块版本而不是仅使用主版本?

+0

你是什么意思“版本”?终端版本的应用版本? – piotrpo

+0

我有同样的问题。我有一个使用endpoints1的项目。如果项目部署在appengine的游乐场项目上,尝试迁移到endpoints2似乎可行。在生产项目中将相同的项目部署到非默认版本(例如,1-dot-xxxx,而2-dot-xxxx是默认设置,仍然使用旧的appengine),然后访问1-dot-version我们一个404. – cputoaster

+0

@Julien你能否详细说明答案?迁移到版本v2后,我面临同样的问题。 –

回答

2

虽然不是一个真正的答案,我看到了这一点:

在部署传统类型的端点(V1),一切工作正常,https://3-dot-xx.appspot.com/_ah/api/discovery/v1/apis将展示部署到第3版

这些API在部署新型端点(v2),例如2点 - ,这取决于版本上部署的最后一个V1端点。

  • ,如果它是一个新的版本,与之前没有部署端点V1,它的工作原理和新的端点显示在2点状
  • ,如果有一个终点V1之前在这里部署,它会显示旧V1 apis,并在访问时自然生成404,因为实际运行的GAE版本不同
  • 如果版本从未部署(例如asdf-dot-)或使用默认(不带-dot-等),它会显示默认版本并正确访问它。
  • 如果本来就没有V1服务部署,但V2服务,它部署一个新的V2服务时

所以做工精细,它好像有会阻止你使用的稳定名称的错误测试/临时环境,如果你已经有一个V1服务运行在他们身上。如果Google的某个人能够确认此错误并提出适当的解决方法,然后我必须执行大量昂贵的更改以更改URL,那将会非常有帮助。

+0

为我解决了这个问题:我正在使用过去与endpointV1一起使用的临时版本名称。使用新名称时问题消失。我认为这是一个endpointV2漏洞......但是一旦问题得到确认,就很容易解决它! – Julien

+0

使用新版本名称适用于我,而且在删除现有版本(并且API不再可访问)后再次使用端点V2进行部署 –

0

对我来说简短的答案是:不重复使用先前与端点V1一起使用的版本名称。

E.g.我有一个testing-dot-MYPROJECT.appspot.com

我现在使用不同的版本:test-dot-MYPROJECT.appspot.com

对于漫长的答案,看看cputoaster的答案。

相关问题