在Google App Engine上出现500服务器错误,原因不明

5

在部署一个本地运行正常的Web应用时,我经常遇到500错误...

Error: Server Error

The server encountered an error and could not complete your request.
If the problem persists, please report your problem and mention this error message and the query that caused it.

日志里除了我的应用程序已经成功部署之外,没有告诉我任何其他信息...

11:50 PM Host: appengine.google.com
11:50 PM Application: suraj-kapoor; version: 1
11:50 PM 
Starting update of app: suraj-kapoor, version: 1
11:50 PM Getting current resource limits.
11:50 PM Scanning files on local disk.
11:50 PM Cloning 2 static files.
11:50 PM Cloning 6 application files.
11:50 PM Uploading 1 files and blobs.
11:50 PM Uploaded 1 files and blobs
11:50 PM Compilation starting.
11:50 PM Compilation completed.
11:50 PM Starting deployment.
11:50 PM Checking if deployment succeeded.
11:50 PM Deployment successful.
11:50 PM Checking if updated app version is serving.
11:50 PM Completed update of app: suraj-kapoor, version: 1
11:50 PM Uploading index definitions.
Password for suraj@looklab.com: If deploy fails you might need to 'rollback' manually.
The "Make Symlinks..." menu option can help with command-line work.
*** appcfg.py has finished with exit code 0 ***

这里是控制台日志。注意,有一个作为标准警告的PIL警告。我已经把PIL模块导入到我的应用程序中了,但它没有任何效果...

*** Running dev_appserver with the following flags:
    --skip_sdk_update_check=yes --port=14080 --admin_port=8006
Python command: /usr/bin/python2.7
INFO     2013-06-07 14:52:57,048 devappserver2.py:522] Skipping SDK update check.
WARNING  2013-06-07 14:52:57,086 api_server.py:329] Could not initialize images API; you are likely missing the Python "PIL" module.
INFO     2013-06-07 14:52:57,109 api_server.py:153] Starting API server at: http://localhost:57543
INFO     2013-06-07 14:52:57,115 dispatcher.py:164] Starting server "default" running at: http://localhost:14080
INFO     2013-06-07 14:52:57,127 admin_server.py:117] Starting admin server at: http://localhost:8006

我的app.yaml看起来没问题...

application: suraj-kapoor
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /static
  static_dir: static

- url: .*
  script: main.app

libraries:
- name: jinja2
  version: latest
- name: webapp2
  version: "2.5.2" 

如果这有任何参考价值的话,该Web应用程序使用JSON从Instagram的API中提取图像。我完全不知道为什么会出现这个错误!

以下是实时日志...

2013-06-07 08:34:21.516 /favicon.ico 500 11ms 0kb Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36
199.47.72.170 - - [07/Jun/2013:08:34:21 -0700] "GET /favicon.ico HTTP/1.1" 500 0 - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36" "suraj-kapoor.appspot.com" ms=12 cpu_ms=0 app_engine_release=1.8.0 instance=00c61b117c22c59d63580abdad0f481f2f485295
E 2013-06-07 08:34:21.515
Traceback (most recent call last):
  File "/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 196, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 255, in _LoadHandler
    handler = __import__(path[0])
  File "/base/data/home/apps/s~suraj-kapoor/1.367922706590908179/main.py", line 7, in <module>
    import requests
ImportError: No module named requests

你需要展示App Engine管理控制台日志中实际的内容。你只展示了终端日志,这并没有什么帮助。 - Daniel Roseman
@DanielRoseman 我已经将日志添加到原始问题中。谢谢。 - Suraj Kapoor
非常抱歉,我完全不理解。您现在已经发布了开发服务器日志。但是您明确表示问题出现在部署后运行站点时。为什么不显示来自实际服务器的日志呢? - Daniel Roseman
@DanielRoseman 抱歉,我对这一切都非常陌生。我想我已经找到了实时日志(我甚至不知道它的存在!),它报告了关于请求模块的错误,但该模块在应用程序中运行良好。 - Suraj Kapoor
原来 GAE 不支持 requests 库。 - Suraj Kapoor
3个回答

5
有时候500错误确实是由Google基础设施引起的。当他们能够检测到这种情况时,应该将用户引导到一个更具体的支持页面。一般的Google支持页面对于报告和应用程序引擎故障是无用的。

3
没错,我同意。这就像在一堆干草中找针一样难。 - Suraj Kapoor

2

我曾经遇到一个情况,一个完全损坏的app.yaml在本地运行正常(为什么?!),但在“生产”环境下立即返回500错误,但是日志里没有任何细节信息。因此,请检查您的app.yaml(以及可能涉及到的index.yaml等)是否存在语法错误或类似问题。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接