无服务器框架 - AWS Lambda 依赖项超出限制

oz1*_*z19 0 python pip amazon-web-services aws-lambda serverless-framework

我正在使用 AWS(一种呼叫中心,使用 Twilio)参与一个无服务器项目。我之前还建过另外 2-3 个小项目。不过,我现在正在使用无服务器框架。到目前为止我还没用过。所以我在 AWS 和 Serverless 方面都是新手。

我以某种方式关注下一个链接: https://serverless.com/blog/flask-python-rest-api-serverless-lambda-dynamodb/

所以我基本上使用这个Python依赖项:Flask、Twilio、boto3(用于AWS)。请参阅下面的requirements.txt。我卸载了一些软件包,但是可能有一些我可以清理的软件包:

boto3==1.9.84
botocore==1.12.84
certifi==2018.11.29
chardet==3.0.4
Click==7.0
docutils==0.14
Flask==1.0.2
idna==2.8
itsdangerous==1.1.0
Jinja2==2.10
jmespath==0.9.3
lazy-object-proxy==1.3.1
MarkupSafe==1.1.0
pipdeptree==0.13.2
PyJWT==1.7.1
PySocks==1.6.8
python-dateutil==2.7.5
pytz==2018.9
requests==2.21.0
s3transfer==0.1.13
six==1.12.0
twilio==6.23.1
urllib3==1.24.1
Run Code Online (Sandbox Code Playgroud)

使用无服务器框架,我能够毫无问题地部署(无服务器部署)项目,直到安装了 boto3。但是,现在我超出了允许的依赖项大小并收到此错误:

An error occurred: AppLambdaFunction - Unzipped size must be smaller than 262144000 bytes (Service: AWSLambdaInternal; Status Code: 400; Error Code: InvalidParameterValueException; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
Run Code Online (Sandbox Code Playgroud)

我被困在这个问题上。我想我可以用旧的方式解决它,而不使用无服务器框架(直接在AWS中),但我非常希望解决这个问题。

是否可以部分安装boto3?我的意思是,一种只安装我需要的模块的方法。

还有其他想法吗?

提前致谢。

Mil*_*mak 5

boto3幸运的是,您在部署 Lambda 应用程序时不必进行捆绑。它已经存在于 Lambda python 执行环境中。请随意从您的requirements.txt.

请注意,AWS 建议您捆绑自己的产品,因为 Lambda 中的产品可能不是完全最新的,但这仅在您想要使用 AWS 的最新功能或服务时才重要。我已经使用捆绑的产品超过 2 年了,一次都没有出现过问题。