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

我正在使用 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

使用无服务器框架,在安装 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).

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


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


还有其他想法吗?


提前致谢。


慕侠2389804
浏览 184回答 1
1回答

肥皂起泡泡

幸运的是,您boto3在部署 Lambda 应用程序时不必捆绑。它已经存在于 Lambda python 执行环境中。随意从您的requirements.txt.请注意,AWS 建议您捆绑自己的,因为 Lambda 中的那个可能不是完全最新的,但这仅当您想使用 AWS 的最新功能或服务时才重要。我已经使用捆绑的 2 年多了,一次没有遇到过问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python