如何使用serverless将librosa(python库)添加到aws lambda
我试图使用它来管理一个简单aws lambda函数的依赖项 一个关键依赖项是librosa python库() 我是新来的如何使用serverless将librosa(python库)添加到aws lambda,python,amazon-web-services,serverless-framework,serverless,aws-serverless,Python,Amazon Web Services,Serverless Framework,Serverless,Aws Serverless,我试图使用它来管理一个简单aws lambda函数的依赖项 一个关键依赖项是librosa python库() 我是新来的serverless,所以我希望能得到serverless.yml文件的指导 到目前为止我有 service: my-app-123 app: my-app-123-app org: my-org frameworkVersion: '2' provider: name: aws runtime: python3.6 stage: dev region: eu-
serverless
,所以我希望能得到serverless.yml
文件的指导
到目前为止我有
service: my-app-123
app: my-app-123-app
org: my-org
frameworkVersion: '2'
provider:
name: aws
runtime: python3.6
stage: dev
region: eu-west-2
plugins:
- serverless-python-requirements
functions:
hello:
handler: handler.hello
package:
individually: false
exclude:
- '**/*'
include:
- handler.py
而requirements.txt
是:
librosa==0.8.0
pandas==1.1.5
当我尝试上述操作时,我得到了以下错误:
An error occurred: HelloLambdaFunction - Unzipped size must be smaller than 262144000 bytes (Service: AWSLambdaInternal; Status Code: 400; Error Code: InvalidParameterValueException; Request ID: f6bd001e-5592-44c8-8f10-3b56180d7ec7; Proxy: null).
您遇到了AWS Lambda部署包的大小限制,请参阅。它最大可以解压250 MB(这是错误消息告诉您的) 看看插件文档中关于Lambda大小限制的部分 简而言之,
无服务器python需求
建议/支持的是:
- 压缩依赖项
- 添加一个(例如,
单独)librosa
压缩通过在
serverless.yml
custom:
pythonRequirements:
zip: true
然后在使用依赖项之前将其添加到处理程序:
try:
import unzip_requirements
except ImportError:
pass
但是一些用户似乎对librosa有问题,并且似乎无法使其正常工作,例如,请参见下面的例子
其中的一个建议是将您的Lambda拆分并链接它们,即一个Lambda只有
librosa
作为依赖项(可能会压缩依赖项),然后将其交给第二个Lambda进行进一步处理,如果这对您来说是可行的,我不知道您正在尝试做什么。pandas没有那么大。我猜librosa占据了所有的空间?谢谢。我测试了几种将librosa
单独放入lambda的方法,唯一有效的方法是从ECR中的容器映像运行。我想我会的。