Google App Engine Error: DNS lookup failed for URL: http://metadata.google.internal
Google App Engine Error: DNS lookup failed for URL: http://metadata.google.internal
我一直致力于一个使用 Cloud Endpoints v2 的小型 Google App Engine(标准环境)项目。我的代码主要基于 Google.
提供的 quickstart
一切正常,但我在几周未查看后于今天重新部署,尝试调用端点时出现以下错误:
error: An error occured while connecting to the server: DNS lookup failed for URL: metadata.google.internal
这在以前是不会发生的。 Python.
导入端点包时似乎正在发生这种情况
我的端点没有做任何花哨的事情 - 我没有更改示例 EchoApi 的源代码。无论我尝试通过 API Explorer 还是通过 Curl 访问 API,错误都会出现在 GCP 日志记录控制台中。
我在部署期间没有收到任何错误。
编辑#1
一些进一步的信息:
错误源自 Google 的代码,该代码包含在我的 lib
文件夹中的 google-endpoints
包中,每个
文档。具体错误发生在google/api/control/wsgi.py
.
的第54行
基本上,它正在使用 urllib2 向 metadata.google.internal
发出请求。
我猜这个地址只能在 Google 云中使用,而且无论出于何种原因,托管我的应用程序的实例都无法对其进行 DNS 查找。
编辑:#2
再深入一点。
似乎错误源于 google-endpoints-api-management 包。 10 月 19 日提交给该软件包的更改似乎引入了额外的平台报告。查询 metadata.google.internal 以检查代码是否在 Google 容器引擎中 运行,然后它爆炸了,因为元数据地址未解析。
google-endpoints 包只需要 google-endpoints-api-management >=1.0.0b1。就我而言,在 1.0.0b2 版本上一切正常,但后来我建立了一个新的 lib 文件夹,它导致 1.0.0b5 崩溃,然后事情就发生了变化。 b2 和 b5 之间所需的包没有改变,所以我想我暂时可以降级回 b2。还没试过。
给 Google Dev 发了一封电子邮件。也许他会提供更多提示。
编辑:2016-11-07
测试将 google-endpoints-api-管理包降级到 1.0.0b2。似乎正在工作,但实际上是一个修复程序。如果您使用的是 lib 文件夹,则以下内容将清除较新的容易出错的 wsgi.py 文件并放回较旧的文件:
pip install -t lib google-endpoints-api-management==1.0.0b2 --upgrade
不太好,但它可能会让你重操旧业。
附带一提,Google 工程师立即回复说他会尽快查看此问题。幸运的是,endpoints v2 最终会结束测试版,因为到目前为止我真的很喜欢它。
这将在即将发布的 google-endpoints-api-管理包(即 1.0.0b6)补丁中修复。它可能会在 11/6 星期一的某个时间发布。
如果您想立即继续测试并且这个错误阻碍了您,您可以返回到 1.0.0b4 直到 1.0.0b6 出来。该版本的一切仍应正常工作。
感谢您提醒我们注意此事!我们正在尽最大努力在测试期间消除所有这些问题,为我们的第一个全面发布做准备。
编辑:1.0.0b6 已经发布并解决了这个问题。感谢您在我们的测试阶段耐心等待!
(代表OP发布解决方案).
Google 发布了 google-endpoints-api-管理包的 1.0.0b6 版本来解决这个问题。它为我解决了问题。对于遇到此问题的任何人,请清理您的 lib 文件夹并重新安装 google-endpoints 包。这将关闭新的 google-endpoints-api-management 包。
感谢 Google 的 Brad 对此采取了非常迅速的行动。
我一直致力于一个使用 Cloud Endpoints v2 的小型 Google App Engine(标准环境)项目。我的代码主要基于 Google.
提供的 quickstart一切正常,但我在几周未查看后于今天重新部署,尝试调用端点时出现以下错误:
error: An error occured while connecting to the server: DNS lookup failed for URL: metadata.google.internal
这在以前是不会发生的。 Python.
导入端点包时似乎正在发生这种情况我的端点没有做任何花哨的事情 - 我没有更改示例 EchoApi 的源代码。无论我尝试通过 API Explorer 还是通过 Curl 访问 API,错误都会出现在 GCP 日志记录控制台中。
我在部署期间没有收到任何错误。
编辑#1
一些进一步的信息:
错误源自 Google 的代码,该代码包含在我的 lib
文件夹中的 google-endpoints
包中,每个
文档。具体错误发生在google/api/control/wsgi.py
.
基本上,它正在使用 urllib2 向 metadata.google.internal
发出请求。
我猜这个地址只能在 Google 云中使用,而且无论出于何种原因,托管我的应用程序的实例都无法对其进行 DNS 查找。
编辑:#2
再深入一点。
似乎错误源于 google-endpoints-api-management 包。 10 月 19 日提交给该软件包的更改似乎引入了额外的平台报告。查询 metadata.google.internal 以检查代码是否在 Google 容器引擎中 运行,然后它爆炸了,因为元数据地址未解析。
google-endpoints 包只需要 google-endpoints-api-management >=1.0.0b1。就我而言,在 1.0.0b2 版本上一切正常,但后来我建立了一个新的 lib 文件夹,它导致 1.0.0b5 崩溃,然后事情就发生了变化。 b2 和 b5 之间所需的包没有改变,所以我想我暂时可以降级回 b2。还没试过。
给 Google Dev 发了一封电子邮件。也许他会提供更多提示。
编辑:2016-11-07
测试将 google-endpoints-api-管理包降级到 1.0.0b2。似乎正在工作,但实际上是一个修复程序。如果您使用的是 lib 文件夹,则以下内容将清除较新的容易出错的 wsgi.py 文件并放回较旧的文件:
pip install -t lib google-endpoints-api-management==1.0.0b2 --upgrade
不太好,但它可能会让你重操旧业。
附带一提,Google 工程师立即回复说他会尽快查看此问题。幸运的是,endpoints v2 最终会结束测试版,因为到目前为止我真的很喜欢它。
这将在即将发布的 google-endpoints-api-管理包(即 1.0.0b6)补丁中修复。它可能会在 11/6 星期一的某个时间发布。
如果您想立即继续测试并且这个错误阻碍了您,您可以返回到 1.0.0b4 直到 1.0.0b6 出来。该版本的一切仍应正常工作。
感谢您提醒我们注意此事!我们正在尽最大努力在测试期间消除所有这些问题,为我们的第一个全面发布做准备。
编辑:1.0.0b6 已经发布并解决了这个问题。感谢您在我们的测试阶段耐心等待!
(代表OP发布解决方案).
Google 发布了 google-endpoints-api-管理包的 1.0.0b6 版本来解决这个问题。它为我解决了问题。对于遇到此问题的任何人,请清理您的 lib 文件夹并重新安装 google-endpoints 包。这将关闭新的 google-endpoints-api-management 包。
感谢 Google 的 Brad 对此采取了非常迅速的行动。