无服务器框架 - 超出 AWS Lambda 依赖项限制
Serverless Framework - AWS Lambda dependency limit exceed
我正在使用 AWS(一种呼叫中心,使用 Twilio)从事无服务器项目。我之前已经构建了另外 2-3 个小项目。不过,我现在正在使用无服务器框架。到目前为止我还没有使用它。所以我在 AWS 和无服务器方面都是新手。
我正在关注下一个 link:
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).
我卡在这上面了。我想我可以用老方法解决它,而不使用 Serverless Framework(直接在 AWS 中),但理想情况下我想解决这个问题。
是否可以部分安装boto3?我的意思是,一种只安装我需要的模块的方法。
还有其他想法吗?
提前致谢。
幸运的是,您不必在部署 Lambda 应用程序时捆绑 boto3
。它是 Lambda python 执行环境中的 already present。随时从您的 requirements.txt
.
中删除 boto3
请注意,AWS 建议您捆绑自己的,因为 Lambda 中的那个可能不是完全最新的,但只有当您想要使用 AWS 的最新功能或服务时,这才重要。我已经使用捆绑的 2 年多了,一次都没有问题。
我正在使用 AWS(一种呼叫中心,使用 Twilio)从事无服务器项目。我之前已经构建了另外 2-3 个小项目。不过,我现在正在使用无服务器框架。到目前为止我还没有使用它。所以我在 AWS 和无服务器方面都是新手。
我正在关注下一个 link: 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).
我卡在这上面了。我想我可以用老方法解决它,而不使用 Serverless Framework(直接在 AWS 中),但理想情况下我想解决这个问题。
是否可以部分安装boto3?我的意思是,一种只安装我需要的模块的方法。
还有其他想法吗?
提前致谢。
幸运的是,您不必在部署 Lambda 应用程序时捆绑 boto3
。它是 Lambda python 执行环境中的 already present。随时从您的 requirements.txt
.
请注意,AWS 建议您捆绑自己的,因为 Lambda 中的那个可能不是完全最新的,但只有当您想要使用 AWS 的最新功能或服务时,这才重要。我已经使用捆绑的 2 年多了,一次都没有问题。