2016-11-06 64 views
2

我一直在使用Cloud Endpoints v2的小型Google App Engine(標準環境)項目。我的代碼主要基於Google提供的quickstartGoogle App Engine錯誤:URL查找失敗:http://metadata.google.internal

一切工作正常,但我在它具有不找了幾個星期後,今天重新部署,而我得到以下錯誤,當我嘗試調用端點:

error: An error occured while connecting to the server: DNS lookup failed for URL: metadata.google.internal

這之前沒有發生過。這似乎是在Python導入終結點軟件包時發生的。

我的終結點沒有做任何事情 - 我沒有改變EchoApi示例的源代碼。無論我嘗試通過API Explorer還是通過Curl訪問API,錯誤都會在GCP Logging控制檯中結束。

我在部署期間沒有收到任何錯誤。

編輯#1

一些進一步的信息:

錯誤從附帶的google-endpoints包我已經包括在我lib文件夾谷歌的代碼中的起源,每 的文檔。具體而言,錯誤發生在google/api/control/wsgi.py的第54行。

基本上,它使用urllib2向metadata.google.internal發出請求。

我猜這個地址只能在Google Cloud中使用,無論出於何種原因,託管我應用程序的實例都無法對其進行DNS查找。

編輯:#2

挖遠一點。

看來這個錯誤來源於google-endpoints-api-management軟件包。 10月19日承諾對該軟件包所做的更改似乎已引入其他平臺報告。查詢metadata.google.internal以檢查代碼是否在Google容器引擎中運行,然後爆炸,因爲元數據地址無法解析。

這裏的提交: https://github.com/cloudendpoints/endpoints-management-python/commit/0a37d0e443091053ed03e455e06d3a0ae770999f

在谷歌的端點包只需要谷歌的端點-API管理> = 1.0.0b1。在我的結尾,事情在版本1.0.0b2上工作正常,但後來我建立了一個新的lib文件夾,該文件夾降低了1.0.0b5,事情橫行。所需的軟件包在b2和b5之間沒有改變,所以我想我可能暫時只能降級到b2。還沒有嘗試過。

向Google Dev發送了一封電子郵件。也許他會提供進一步的提示。

編輯:2016年11月7日

測試降級谷歌的終結點的API管理包1.0.0b2。似乎正在工作,克魯吉修正了它。如果你正在使用lib文件夾,下面將清理較新的容易出錯的wsgi。py文件並放回較舊的:

pip install -t lib google-endpoints-api-management==1.0.0b2 --upgrade 

不漂亮,但它可能會讓你重新恢復業務。

在附註中,Google工程師立即回覆說他很快就會看到這個問題。幸運的是,endpoints v2最終會出現beta,因爲我非常喜歡它。

+0

具有相同的問題,相同的示例,相同的回溯。起初以爲這是因爲app.yaml中設置的instance_class和basic_scaling werent,但這不是問題 – dgmt

+0

@dgmt很高興我不是唯一的問題。我花了幾個小時,假設問題與配置有關。我已經做了進一步的發現,在上面的第二個編輯中概述。 – HondaGuy

回答

2

這將在google-endpoints-api-management軟件包(將爲1.0.0b6)的即將發佈的補丁中修復。它可能會在11月6日星期一的某個時候發佈。

如果你想立即繼續測試,並且這個錯誤阻止了你,你可以回到1.0.0b4,直到1.0.0b6出來。該版本的所有東西仍然可以正常工作。

感謝您將此引入我們的注意!我們正在盡最大努力在測試期間爲我們的第一個常規發佈做好準備,以消除所有這些皺紋。

編輯:1.0.0b6已發佈並解決此問題。感謝您在我們測試階段的耐心!

+0

pip install -t lib google-endpoints-api-management == 1.0.0b4 --extra-index-url = https://gapi-pypi.appspot.com/admin/nurpc-dev --ignore-installed 收集google-endpoints-api-management == 1.0.0b4 找不到滿足要求的版本google-endpoints-api-management == 1.0.0b4(來自版本:0.2.0,0.2.1,0.2.2, 0.2.4,0.2.5,0.2.7,1.0.0b1,1.0.0b2,1.0.0b5) 找到的谷歌的端點-API管理== 1.0.0b4 沒有匹配的分佈沒有1.0。 0b4,只有1.0.0b2 – dgmt

+0

除了lib版本,這個解決方案適用於我 – dgmt

+0

該補丁解決了這個問題。謝謝,布拉德! – HondaGuy

0

(發佈解決方案代表OP)

Google已經發布了google-endpoints-api-management軟件包的1.0.0b6版本來解決這個問題。它解決了我的問題。對於遇到此問題的任何人,請清理您的lib文件夾並重新安裝google-endpoints軟件包。這將帶來新的google-endpoints-api-management軟件包。

感謝Brad在Google上爲此採取了非常快速的行動。