"errorMessage": "Невозможно импортировать модуль 'lambda_function' - PullRequest
0 голосов
/ 12 июня 2018

После тестирования моей лямбда-функции я получаю следующее сообщение об ошибке:

{
  "errorMessage": "Unable to import module 'lambda_function'"
}

Я загрузил .zip, который включает только следующие зависимости: requests, boto3, PIL, Pillow-4.0.0.dist-info & лямбда-функция lambda_function.py - это пример, скопированный с AWS:

from __future__ import print_function
import boto3
import os
import sys
import uuid
from PIL import Image
import PIL.Image

s3_client = boto3.client('s3')

def resize_image(image_path, resized_path):
    with Image.open(image_path) as image:
        image.thumbnail(tuple(x / 2 for x in image.size))
        image.save(resized_path)

def handler(event, context):
    for record in event['Records']:
        bucket = record['s3']['bucket']['name']
        key = record['s3']['object']['key'] 
        download_path = '/tmp/{}{}'.format(uuid.uuid4(), key)
        upload_path = '/tmp/resized-{}'.format(key)

        s3_client.download_file(bucket, key, download_path)
        resize_image(download_path, upload_path)
        s3_client.upload_file(upload_path, '{}resized'.format(bucket), key)

Мой обработчик: lambda_function.lambda_handler

Есть идеи, в чем проблема?

1 Ответ

0 голосов
/ 12 июня 2018

Во-первых :

По умолчанию lambda запускает обработчик с определенным ключевым словом с именем: lambda_handler Вы также можете изменить запись обработчика в консоли AWS Lambda.

enter image description here

Или вам нужно изменить имя вашего обработчика:

def handler(event, context):
    for record in event['Records']:
    ,,,

def lambda_handler(event,context):  
    '''

Вы можете использовать пользовательский обработчик при работе с некоторымиFramework и явно упомянуть имя обработчика.

Например, с без сервера:

your_action:
    handler: path/lambda_function.handler

Во-вторых :

часть проблемы заключается в том, что у вас естьчтобы проверить, какие модули вы импортировали, включены.Вы должны увидеть подробный вывод ошибок для этого.Непосредственный ответ для вашего сценария будет следующим: невозможно импортировать функцию lambda_function.

Проверяя журнал ошибок, вы можете увидеть что-то вроде этого: Невозможно импортировать модуль 'lambda_function':Нет модуля с именем PIL

Вы также должны оформить этот вопрос здесь относительно импорта PIL

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