Развертывание микросервиса с Tensorflow на AWS Lambda - PullRequest
0 голосов
/ 25 мая 2018

Я застрял здесь слишком долго.Я пытаюсь развернуть микросервис, который использует тензор потока.Существует один файл с именем handler.py, который имеет простой код ниже:

import json
import tensorflow as tf
import numpy as np

def main(event, context):
    # a = np.arange(15).reshape(3, 5)

    body = {
        "message": "Go Serverless v1.0! Your function executed successfully!",
        "input": event
    }

    response = {
        "statusCode": 200,
        "body": json.dumps(body)
    }

    return response

    # Use this code if you don't use the http event with the LAMBDA-PROXY
    # integration
    """
    return {
        "message": "Go Serverless v1.0! Your function executed successfully!",
        "event": event
    }
    """

Чтобы упростить мою работу, я использую без сервера для развертывания микросервиса , но он не работаетговоря, размер молнии слишком велик.Вот как выглядит мой каталог:

-- handler.py
-- serverless.yml
-- requirements.txt

requirements.txt выглядит так:

numpy
tensorflow

Я также пытался загрузить без установки вышеупомянутые модули, думая, что lambda будет сама инициализироваться из requirements.txt но потом получаю ошибку, Unable to import module 'handler': No module named 'tensorflow'.Что я должен делать?Я потратил на это много времени и все еще не уверен, что AWS Lambda не позволит мне сделать это.

Если вы хотите увидеть serverless.yml, это выглядит следующим образом:

service: numpy-new-test

provider:
  name: aws
  runtime: python3.6
  profile: nsp
  role: arn:aws:iam::xxxxxxxxxxx7:role/AdminRole

functions:
  numpy:
    handler: handler.main
    events:
      - http:
          path: test
          method: get 

1 Ответ

0 голосов
/ 25 мая 2018

Как вы упомянули из полученной ошибки, похоже, что ваш упакованный архив слишком велик.Вы получили эту другую ошибку, потому что в вашем скрипте есть требование к модулю использовать тензор потока.

Помните, что Лямбда-ограничения AWS имеют ограничение размера пакета развертывания 50 МБ.Пакет Tensorflow сам по себе близок к 50 МБ, поэтому добавление пакета Numpy приведет к значительному превышению лимита.

Загляните в этот блог, в котором рассматриваются некоторые параметры ограничения размера пакета.в AWS Lambda

https://hackernoon.com/exploring-the-aws-lambda-deployment-limits-9a8384b0bec3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...