尝试在AWS Lambda中运行Flask应用程序时出现错误 [英] I get errors when trying to run my flask app in AWS Lambda

查看:78
本文介绍了尝试在AWS Lambda中运行Flask应用程序时出现错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 severless 在AWS Lambda上部署在本地运行良好的Flask应用程序.部署是好的,但是我不能使用aws lambda应用程序.我收到错误 502网关错误 消息:内部服务器错误.

I am trying to deploy a flask app that run very well locally to AWS Lambda using severless. The deployment is good but I can't use the aws lambda app . I get an error 502 Bad Gateway message: Internal server error.

我检查了日志,并在这里找到了以下内容:

I checked the logs and here what I found :

2021-03-12T01:49:27.685+01:00   Traceback (most recent call last):

2021-03-12T01:49:27.685+01:00   File "/var/task/wsgi_handler.py", line 44, in import_app

2021-03-12T01:49:27.685+01:00   wsgi_module = importlib.import_module(wsgi_fqn_parts[-1])

2021-03-12T01:49:27.685+01:00   File "/var/lang/lib/python3.8/importlib/__init__.py", line 127, in import_module

2021-03-12T01:49:27.685+01:00   return _bootstrap._gcd_import(name[level:], package, level)

2021-03-12T01:49:27.685+01:00   File "<frozen importlib._bootstrap>", line 1014, in _gcd_import

2021-03-12T01:49:27.685+01:00   File "<frozen importlib._bootstrap>", line 991, in _find_and_load

2021-03-12T01:49:27.685+01:00   File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked

2021-03-12T01:49:27.685+01:00   File "<frozen importlib._bootstrap>", line 671, in _load_unlocked

2021-03-12T01:49:27.685+01:00   File "<frozen importlib._bootstrap_external>", line 783, in exec_module

2021-03-12T01:49:27.685+01:00   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

2021-03-12T01:49:27.685+01:00   File "/var/task/app.py", line 10, in <module>

2021-03-12T01:49:27.685+01:00   from common.helpers import *

2021-03-12T01:49:27.685+01:00   File "/var/task/common/helpers.py", line 1, in <module>

2021-03-12T01:49:27.685+01:00   from common.db import db

2021-03-12T01:49:27.685+01:00   File "/var/task/common/db.py", line 1, in <module>

2021-03-12T01:49:27.685+01:00   from flask_pymongo import pymongo

2021-03-12T01:49:27.685+01:00   ModuleNotFoundError: No module named 'flask_pymongo'

2021-03-12T01:49:27.686+01:00   [ERROR] Exception: Unable to import app.app Traceback (most recent call last):   File "/var/lang/lib/python3.8/imp.py", line 234, in load_module     return load_source(name, filename, file)   File "/var/lang/lib/python3.8/imp.py", line 171, in load_source     module = _load(spec)   File "<frozen importlib._bootstrap>", line 702, in _load   File "<frozen importlib._bootstrap>", line 671, in _load_unlocked   File "<frozen importlib._bootstrap_external>", line 783, in exec_module   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed   File "/var/task/wsgi_handler.py", line 119, in <module>     wsgi_app = import_app(config)   File "/var/task/wsgi_handler.py", line 49, in import_app     raise Exception("Unable to import {}".format(config["app"]))

2021-03-12T01:49:27.803+01:00   START RequestId: cd231555-23cb-4444-b6fe-36e2ce590dc7 Version: $LATEST

2021-03-12T01:49:29.040+01:00   Traceback (most recent call last):

2021-03-12T01:49:29.040+01:00   File "/var/task/wsgi_handler.py", line 44, in import_app

2021-03-12T01:49:29.040+01:00   wsgi_module = importlib.import_module(wsgi_fqn_parts[-1])

2021-03-12T01:49:29.040+01:00   File "/var/lang/lib/python3.8/importlib/__init__.py", line 127, in import_module

2021-03-12T01:49:29.040+01:00   return _bootstrap._gcd_import(name[level:], package, level)

2021-03-12T01:49:29.040+01:00   File "<frozen importlib._bootstrap>", line 1014, in _gcd_import

2021-03-12T01:49:29.040+01:00   File "<frozen importlib._bootstrap>", line 991, in _find_and_load

2021-03-12T01:49:29.040+01:00   File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked

2021-03-12T01:49:29.040+01:00   File "<frozen importlib._bootstrap>", line 671, in _load_unlocked

2021-03-12T01:49:29.040+01:00   File "<frozen importlib._bootstrap_external>", line 783, in exec_module

2021-03-12T01:49:29.040+01:00   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

2021-03-12T01:49:29.040+01:00   File "/var/task/app.py", line 10, in <module>

2021-03-12T01:49:29.040+01:00   from common.helpers import *

2021-03-12T01:49:29.040+01:00   File "/var/task/common/helpers.py", line 1, in <module>

2021-03-12T01:49:29.040+01:00   from common.db import db

我不理解 ModuleNotFoundError:没有名为'flask_pymongo'的模块在本地使用该应用程序时,我没有此功能.无论如何,我都尝试安装它,但是仍然无法正常工作.

I don't understand ModuleNotFoundError: No module named 'flask_pymongo' When I use the app in local I don't have this. I've tried to install it anyway but it still doesn't work.

我的无服务器配置:

service: serverless-flask
plugins:
  - serverless-python-requirements
  - serverless-wsgi
custom:
  wsgi:
    # This is the file name and the app name of the application 
    # Where file name is app.py and Flask app name is app
    # ie. app = Flask(__name__) 
    app: app.app
    packRequirements: false
  pythonRequirements:
    dockerizePip: non-linux
provider:
  name: aws
  runtime: python3.8
  stage: dev
  region: us-east-1
functions:
  app:
    handler: wsgi.handler
    events:
      - http: ANY /
      - http: 'ANY {proxy+}'

有什么建议吗?

推荐答案

您可以尝试打包&将模块安装在容器化的lambda环境中.

Can you try packaging & installing your module in a containerised lambda env.

有时打包在Windows中的模块将无法在其他操作系统上使用.

As sometimes modules packed in windows will not work on other os.

我在使用psycopg2时遇到了类似的问题,然后将其安装并打包在 lambci docker 中,工作正常.

I had a similar issue with psycopg2 then installed and packaged in lambci docker and everything was working fine.

这篇关于尝试在AWS Lambda中运行Flask应用程序时出现错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆