【发布时间】:2022-11-04 00:20:16
【问题描述】:
我有一个带有无服务器框架的“hello-world”python 项目。
我正在尝试部署一个需要 numpy 的简单 lambda 函数。但目前,当我运行 sls deploy 并尝试调用 lambda 函数时,我得到一个 internal server error。
这是我的项目的结构:
test_api/
serverless.yml
test_api.py
Pipfile
在test.py 我有:
import numpy as np
def handler(event, context):
return {
"statusCode": 200,
"body": f"numpy version = {np.__version__}"
}
在我的serverless.yml:
service: test_api
frameworkVersion: "3"
provider:
name: aws
runtime: python3.8
region: eu-west-3
stage: dev
functions:
test:
handler: tes_api.handler
events:
- http:
path: test_api
method: get
cors: true
plugins:
- serverless-python-requirements
在 Pipfile 中:
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[dev-packages]
[packages]
numpy = "*"
[requires]
python_version = "3.8"
如果我从 Pipfile 和 lambda 中删除 numpy(我只是在我的 lambda 中返回“hello”),一切正常。
为什么我会收到此错误,我该如何解决?
【问题讨论】:
-
@MarkB 感谢您的回答,但我选择了 numpy 作为示例。对于psychog2 或任何其他库,我有同样的问题。根据无服务器框架的文档,插件 serverless-python-requirements 应该与 Pipfile 一起使用:serverless.com/plugins/serverless-python-requirementsserverless.com/blog/serverless-python-packaging
标签: python aws-lambda serverless-framework