使用Serverless Framework部署FastAPI到AWS Lambda时遇内部服务器错误:无法导入FastAPI
Serverless Framework部署FastAPI到AWS Lambda时遇内部服务器错误:无法导入FastAPI
我用Serverless Framework把FastAPI部署到了AWS Lambda,本地测试Lambda函数完全正常,但部署后访问URL时浏览器返回“Internal Server Error”(500)。
查看日志后发现以下错误:
[ERROR] Runtime.ImportModuleError: Unable to import module 'handler': No module named 'fastapi' Traceback (most recent call last): INIT_REPORT Init Duration: 99.52 ms Phase: init Status: error Error Type: Runtime.ImportModuleError
handler.py
from fastapi import FastAPI from mangum import Mangum app = FastAPI() @app.get("/") def read_root(): return {"message": "Hello, this is Daksh from FastAPI on AWS Lambda!"} handler = Mangum(app)
serverless.yml
org: daksh service: fastapi-lambda provider: name: aws runtime: python3.10 region: ap-northeast-1 deploymentBucket: name: fastapi-lambda-deployments-347775769886 functions: app: handler: handler.handler events: - http: path: /{proxy+} method: any memorySize: 128 timeout: 10 environment: PYTHONPATH: "/var/runtime:/var/task" package: exclude: - node_modules/** - env/** - .serverless/** plugins: - serverless-python-requirements custom: pythonRequirements: dockerizePip: non-linux layer: path: requirements.txt name: fastapi-serverless-lambda compatibility: python3.10
requirements.txt
fastapi==0.115.6 mangum==0.19.0 # other packages
我已经做了这些尝试:
- 用Serverless Framework本地运行Lambda函数没有问题
- 函数部署成功,但日志里出现Runtime.ImportModuleError,提示找不到fastapi
- 我在用serverless-python-requirements插件处理依赖
请问这个错误的原因是什么?我该怎么解决才能让FastAPI在AWS Lambda上正常运行?
备注:内容来源于stack exchange,提问作者Godhani Daksh
相关产品推荐
相关产品推荐

