我正在我的 MacOS 机器上按照 本教程工作。
我正在尝试将我的 FastAPI 应用程序部署到 AWS Lambda。
我推出了
pip install fastapi uvicorn mangum
这些是我得到的依赖项:
Package Version
----------------- -------
annotated-types 0.7.0
anyio 4.4.0
click 8.1.7
fastapi 0.114.1
h11 0.14.0
idna 3.8
mangum 0.17.0
pip 24.2
pydantic 2.9.1
pydantic_core 2.23.3
sniffio 1.3.1
starlette 0.38.5
typing_extensions 4.12.2
uvicorn 0.30.6
然后只留下
fastapi
和mangum
,正如教程中的人所说:
fastapi==0.114.1
mangum==0.17.0
然后我创建了我的应用程序:
from fastapi import FastAPI
from mangum import Mangum
app = FastAPI()
handler = Mangum(app)
@app.get("/")
async def hello():
return {"message": "Hello World"}
然后跑了:
pip3 install -t dependencies -r requirements.txt
然后:
(cd dependencies; zip ../aws_lambda_artifact.zip -r .)
最后:
zip aws_lambda_artifact.zip -u main.py
然后我将
zip
文件上传到 AWS Lambda,但我得到:
{
"errorMessage": "Unable to import module 'main': No module named 'pydantic_core._pydantic_core'",
"errorType": "Runtime.ImportModuleError",
"requestId": "",
"stackTrace": []
}
这是运行时环境:
你能帮我吗? Lambda 和我的 Mac 都运行 ARM64。
删除旧的 lambda 并使用新的:
pip install --platform manylinux2014_x86_64 --target=python --implementation cp --python-version 3.10 --only-binary=:all: --upgrade openai
按照以下方式压缩内容:
https://docs.aws.amazon.com/lambda/latest/dg/python-package.html#python-package-native-libraries
这里是详细讨论:https://github.com/pydantic/pydantic/issues/6557#issuecomment-1937751778