AWS Lambda: удаление неиспользуемых библиотек для вывода Tensorflow 2

#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).