小编Chr*_*tos的帖子

Google云端存储客户端无法使用dev appserver

我正在构建一个AppEngine应用程序,用于在Google云端存储中存储数据.我按照建议使用Google云端存储客户端(GCS)库.

我的应用程序在AppEngine(读/写/列出对象)上部署时正在工作,但我无法在开发服务器上运行它.开发服务器保持返回错误404并且GCS引发NotFoundError.dev-appserver应该模拟云存储功能而不需要任何特定的配置等.我在日志文件中看到开发服务器正在接受"/ _ah/gcs"的请求,但似乎没有该URL的处理程序.我试过版本1.8.5和1.8.6.除了我的应用程序,甚至没有谷歌提供的演示应用程序.

有没有我在这里遗漏的东西,例如dev-appserver的特殊配置?

google-app-engine google-cloud-storage dev-appserver

8
推荐指数
1
解决办法
2301
查看次数

与BigQuery通信时,GAE App会出现套接字错误

我们的GAE python应用程序使用Google Api Client for Python(目前我们使用版本1.3.1)与GAE特定的身份验证帮助程序与BigQuery进行通信.我们经常在与BigQuery通信时遇到套接字错误.

更具体地说,我们按如下方式构建了一个python Google API客户端

1. bq_scope = 'https://www.googleapis.com/auth/bigquery'
2. credentials = AppAssertionCredentials(scope=bq_scope)
3. http = credentials.authorize(httplib2.Http())
4. bq_service = build('bigquery', 'v2', http=http)
Run Code Online (Sandbox Code Playgroud)

然后,我们与BQ服务交互并获得以下错误

文件"/base/data/home/runtimes/python27/python27_dist/lib/python2.7/gae_override/httplib.py",第536行,在getresponse中'连接到服务器时出错:%s'%e)错误:连接到服务器时出错:无法获取URL:[api url ...]

引发的错误类型为google.appengine.api.remote_socket._remote_socket_error.error,而不是包装错误的异常.

最初我们认为它可能与超时有关,所以我们也尝试在上面的代码片段中设置超时更改第3行

3. http = credentials.authorize(httplib2.Http(timeout=60))
Run Code Online (Sandbox Code Playgroud)

但是,根据客户端库的日志输出,API调用不到1秒就会崩溃,显式设置超时并不会改变系统行为.

请注意,错误发生在各种API调用中,而不仅仅是单个API调用中,并且通常会在非常轻的操作中发生,例如,我们经常在轮询BQ以查找作业状态时看到错误,而很少在数据获取时看到错误.当我们重新运行操作时,系统工作.

知道为什么会发生这种情况并且 - 或许 - 这是处理它的最佳做法吗?

google-app-engine google-bigquery google-api-python-client

7
推荐指数
1
解决办法
558
查看次数

GAE应用程序的请求因连接重置而失败

我们的GAE python应用程序公开了一个受外部客户端系统攻击的API(基于Java,如果重要的话).大多数请求(每天数万个)工作正常,但是少数请求(每天少于10个)失败,客户端报告"Connection Peer by Peer"错误.当发生这种情况时,客户端系统已经触发了多个成功完成的API调用,因此我们排除了客户端连接问题的情况.

GAE日志仅显示与应用相关的故障,但其他类型的故障(例如连接错误)未出现在日志中,因此我们无法确切地说明为什么这些API调用失败.

有没有办法更好地识别日志以外的其他问题?

接受API调用的GAE模块具有以下缩放属性

instance_class: B2
basic_scaling:
  max_instances: 5
  idle_timeout: 1m
Run Code Online (Sandbox Code Playgroud)

并且在发生故障时,只有2个(最多5个)实例在运行,因此GAE模块低于其缩放限制.API调用平均在不到500毫秒的时间内提供服务,而且我们从未看到超过60英寸请求限制的日志错误.总的来说,模块似乎没有超载.可能是别的什么?

google-app-engine

5
推荐指数
1
解决办法
223
查看次数