我尝试在GC AppEngine上部署应用程序。在部署过程中没有错误,但应用程序不工作(仅显示加载页面)。日志中唯一奇怪的原始数据
OpenBLAS WARNING - could not determine the L2 cache size on this system
顺便说一句-它在我本地的机器上运行得很好。
这是基于Dash框架的python Web应用程序
我的应用程序.yaml:
runtime: python37
service: service-name
instance_class: F2
entrypoint: gunicorn -b :$PORT main:app.server
Requirements.txt:
Flask==1.0.2
dash==0.34.0
dash-html-components==0.13.4
dash-core-components==0.41.0
dash-table==3.1.11
gunicorn==19.9.0
google-cloud-pubsub==0.37.2
requests==2.21.0
pandas==0.23.4
4条答案
按热度按时间ej83mcc01#
我刚刚遇到了你对Pandas和Dash同样的问题,找到了你的问题(希望它能给予我一些启发)。在被卡住了几个小时后,我找到了答案,回来分享:-)
如果你看到的唯一错误是OpenBLAS警告,很可能是应用程序运行良好。在调试了几个小时后,我发现由于Dash和Pandas消耗了大量内存,F2示例无法正确处理Web应用程序,并且由于RAM内存不足而失败。请尝试在YAML/JSON配置文件的示例到最高可能的自动单元与更多的RAM内存,然后它可能会工作:
编辑:Google App Engine现在支持更多的示例类型,请查看示例类型的文档:standard instances
此外,请记住,第一次运行此Web应用时,它将花费相当多的时间来执行。如果检查日志,您将看到多个提示,如下图所示。请稍等片刻
此请求导致为应用程序启动新进程,从而导致首次加载应用程序代码。因此,与应用程序的典型请求相比,此请求可能需要更长时间并使用更多CPU。
mkh04yzy2#
我个人通过给gunicorn添加一个超时来解决这个问题,因为默认的超时只有30秒
entrypoint: gunicorn -b :$PORT main:app.server --timeout 120
我发现这个解决方案,因为我尝试以下:
现在,我的应用程序运行良好,即使使用F1示例😊
5lhxktic3#
不要忘记更改工作线程的数量!AppEngine示例中存在默认的工作线程数量,因此您的应用程序将在同一示例上乘以此数量
https://cloud.google.com/appengine/docs/standard/python3/runtime
eufgjt7s4#
我在使用AWS Lambda函数时遇到了同样的错误日志。我的函数处理了相当多的记录,所以我需要在lambda函数配置中增加两个设置:
希望能有所帮助。