在GAE上使用端点V2进行版本控制
我的应用程序的实时版本与其端点一起部署(没有问题)。 我也想轻松地测试其他版本(例如分期)。在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插件中的版本。我如何配置端点以使用特定模块版本而不是仅使用主版本?
虽然不是一个真正的答案,我看到了这一点:
在部署传统类型的端点(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,那将会非常有帮助。
为我解决了这个问题:我正在使用过去与endpointV1一起使用的临时版本名称。使用新名称时问题消失。我认为这是一个endpointV2漏洞......但是一旦问题得到确认,就很容易解决它! – Julien
使用新版本名称适用于我,而且在删除现有版本(并且API不再可访问)后再次使用端点V2进行部署 –
对我来说简短的答案是:不重复使用先前与端点V1一起使用的版本名称。
E.g.我有一个testing-dot-MYPROJECT.appspot.com
。
我现在使用不同的版本:test-dot-MYPROJECT.appspot.com
。
对于漫长的答案,看看cputoaster的答案。
你是什么意思“版本”?终端版本的应用版本? – piotrpo
我有同样的问题。我有一个使用endpoints1的项目。如果项目部署在appengine的游乐场项目上,尝试迁移到endpoints2似乎可行。在生产项目中将相同的项目部署到非默认版本(例如,1-dot-xxxx,而2-dot-xxxx是默认设置,仍然使用旧的appengine),然后访问1-dot-version我们一个404. – cputoaster
@Julien你能否详细说明答案?迁移到版本v2后,我面临同样的问题。 –