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的答案。

相關問題