几个月来,我一直通过 AWS Lambda 函数将 FastAPI 与 Serverless 结合使用,并且效果很好。
我正在创建一个新的 api 端点,它需要发送一个文件。
在我的本地机器上使用时它可以完美运行,但是当我部署到 AWS Lambda 时,当我尝试使用与本地工作完全相同的文件调用我的端点时出现以下错误。我目前正在通过 swagger UI 进行此测试,除了运行代码的“机器”之外,我的无服务器或本地机器之间没有任何变化。
你知道发生了什么吗?
Python 3.8 FastAPI 0.54.1
我的代码:
from fastapi import FastAPI, File, UploadFile
import pandas as pd
app = FastAPI()
@app.post('/process_data_import_quote_file')
def process_data_import_quote_file(file: UploadFile = File(...)): # same error if I put bytes instead of UploadFile
file = file.file.read()
print(f"file {file}")
quote_number = pd.read_excel(file, sheet_name='Data').iloc[:, 0].dropna()
Run Code Online (Sandbox Code Playgroud)
它在最后一行失败
我尝试打印文件,当我将打印的数据与我在本地读取的数据进行比较时,它是不同的。我发誓这是我在 2 上使用的同一个文件,所以我不知道有什么可以解释的?这是一个非常基本的excel文件,没有什么特别之处。
[ERROR] 2020-05-07T14:25:17.878Z 25ff37a5-e313-4db5-8763-1227e8244457 Exception in ASGI application
Traceback (most recent call last):
File …Run Code Online (Sandbox Code Playgroud)