Serverless Framework - превышен лимит зависимости AWS Lambda - PullRequest
0 голосов
/ 24 января 2019

Я работаю в проекте без сервера с AWS (своего рода колл-центр, использующий Twilio). Ранее я построил еще 2-3 маленьких проекта. Сейчас я использую Serverless Framework. Я не использовал это до сих пор. Так что я довольно новичок в AWS и в Serverless.

Я как-то перехожу по следующей ссылке: https://serverless.com/blog/flask-python-rest-api-serverless-lambda-dynamodb/

Так что я в основном использую следующие зависимости Python: Flask, Twilio, boto3 (для AWS). См. Файл values.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

Используя Serverless Framework, я смог развернуть (без сервера) развертывание проекта без проблем, пока не установил 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? Я имею в виду способ установить только те модули, которые мне нужны.

Есть еще идеи?

Заранее спасибо.

1 Ответ

0 голосов
/ 24 января 2019

К счастью, вам не нужно связывать boto3 при развертывании вашего Lambda-приложения. уже присутствует в среде выполнения Lambda Python. Не стесняйтесь удалить boto3 из вашего requirements.txt.

Обратите внимание, что AWS рекомендует объединять свои собственные, поскольку в Lambda может быть не совсем актуально, но это имеет значение, только если вы хотите использовать самые последние функции или сервисы AWS. Я пользуюсь прилагаемым комплектом уже более 2 лет и ни разу не сталкивался с проблемой.

...