#python-3.x #tensorflow #aws-lambda #serverless-framework
#python-3.x #tensorflow #aws-lambda #бессерверная платформа
Вопрос:
Я пытаюсь развернуть функцию Lambda на AWS через бессерверный сервер, для которого требуются Tensorflow 2, Pandas и Numpy;
Я хотел бы удалить из бессерверного файла.yml библиотеки Tensorflow, которые не требуются для вывода, как кратко сделано в следующих разделах:
(...)
plugins:
- serverless-python-requirements
custom:
pythonRequirements:
dockerizePip: true
zip: true
slim: true
useDownloadCache: true
slimPatterns:
- "**/tensorboard*"
- "**/markdown*"
- "**/werkzeug*"
- "**/grpc*"
- "**/tensorflow/contrib*"
- "**/tensorflow/include*"
- "**/external/*"
noDeploy:
- boto3
- botocore
- docutils
- jmespath
- pip
- python-dateutil
- s3transfer
- setuptools
- six
В моем handler.py сценарий, единственными строками на основе Tensorflow являются следующие:
# Import a model with Dense layers only
tf.keras.models.load_model(model_name)
# Run inference
predictions = model.predict(my_array)
Однако всякий раз, когда я пытаюсь развернуть службу с помощью «sls deploy», возникает ошибка из-за размера файла:
Uploading service tensorflow-lambda-demo-1234.zip file to S3 (336.22 MB)...
(...)
An error occurred: HelloLambdaFunction - Unzipped size must be smaller than 262144000 bytes (Service: Lambda, Status Code: 400, Request ID: 3805f9b4-eb32-4d11-b54a-3437bf2b6d6b, Extended Request ID: null).
Какие вложенные библиотеки («slimPatterns») и целые пакеты («noDeploy») я могу дополнительно исключить из пакета развертывания, чтобы уменьшить его размер?
Комментарии:
1. вы нашли решение здесь?
2. Проверьте этого автора на наличие некоторых решений medium.com/@schmidphilipp1995 ; однако, если вы можете использовать Gcloud, я бы предложил использовать облачную функцию Google (в данном случае они предлагают гораздо меньше ограничений, чем AWS).