API网关与Lambda - "Unable to import module 'server': No module named 'server'"

0

【以下的问题经过翻译处理】 大家好,

我尝试使用typescript在cloud9环境中设置一个serverless-api,按照https://github.com/fortejas/example-serverless-python-api的指示进行操作。部署成功,但是当我访问REST API端点时,出现了以下错误:

curl -d POST https://8egyaaan6f.execute-api.ap-southeast-2.amazonaws.com/prod/update {"message": "Internal server error"}

在进一步调查后,错误似乎与https://github.com/fortejas/example-serverless-python-api/blob/main/lambda-api/server.py有关。欢迎任何帮助。

Tue Jan 11 05:32:21 UTC 2022 : Endpoint response body before transformations: {"errorMessage": "Unable to import module 'server': No module named 'server'", "errorType": "Runtime.ImportModuleError", "requestId": "0be79d0e-e10b-4651-8838-b4e8dff65143", "stackTrace": []}
Tue Jan 11 05:32:21 UTC 2022 : Lambda execution failed with status 200 due to customer function error: Unable to import module 'server': No module named 'server'. Lambda request id: 0be79d0e-e10b-4651-8838-b4e8dff65143
Tue Jan 11 05:32:21 UTC 2022 : Method completed with status: 502

1 Antwort
0

【以下的回答经过翻译处理】 你好,从错误信息来看,Lambda函数无法找到server.py文件中的Handler方法。Lambda尝试查找server.py文件但未成功找到。你可以在这篇文档中了解有关设置Python Lambda Handler的更多信息(https://docs.aws.amazon.com/lambda/latest/dg/python-handler.html?icmpid=docs_lambda_help)。

请检查Lambda函数,检查文件夹结构并确认配置的Handler具有正确的路径。 例如,假设我在Lambda函数“PythonLambda”中具有以下文件夹结构:

PythonLambda(这是具有与Lambda函数相同名称的顶级文件夹)
-> lambda-api(这是一个子文件夹)
       -> server.py(server.py文件位于lambda-api文件夹下)

如果我的Lambda处理程序是“server.lambda_handler”,那么我会遇到与你的错误相同的错误,

START RequestId: 1d69b994-d660-4d64-ac74-83f6a659ae5c Version: $LATEST
[ERROR] Runtime.ImportModuleError: Unable to import module 'server': No module named 'server'
Traceback (most recent call last):END RequestId: 1d69b994-d660-4d64-ac74-83f6a659ae5c
REPORT RequestId: 1d69b994-d660-4d64-ac74-83f6a659ae5c	Duration: 1.04 ms	Billed Duration: 2 ms	Memory Size: 128 MB	Max Memory Used: 37 MB	

原因是Lambda尝试在顶级文件夹中查找server.py,但未能找到它。

为了能够成功调用此Lambda,我们必须将处理程序更改为“lambda-api.server.lambda_handler”,以便Lambda可以在文件夹中找到它。

START RequestId: 3c1b9e59-7ed0-41fe-8207-abc163067f56 Version: $LATEST
END RequestId: 3c1b9e59-7ed0-41fe-8207-abc163067f56
REPORT RequestId: 3c1b9e59-7ed0-41fe-8207-abc163067f56	Duration: 0.90 ms	Billed Duration: 1 ms	Memory Size: 128 MB	Max Memory Used: 37 MB	
profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen