Попытка загрузить и использовать засоленный объект в лямбда-выражении AWS, получая ошибку атрибута - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь загрузить пользовательский объект (в лямбда-функции), который я выбрал ранее.Получение атрибута error as

[ERROR] AttributeError: Can't get attribute 'my_class' on <module '__main__' from '/var/runtime/bootstrap'>

Попытка импортировать класс, как предложено в нескольких сообщениях.(работает по местному)

from my_class import *

но не повезло.

Я травлю объект следующим образом:

вызов -

my_class_obj = my_class()
my_class_obj.to_disk(OBJECT_FILE, my_class_obj)

Функция to_disk выглядит следующим образом:

def to_disk(self, file_name, data):
    with open(file_name, 'wb') as f:
        pickle.dump(data , f)

Загрузка объекта в новый файл Python как

new_my_class_obj = from_disk(OBJECT_FILE)

Метод загрузки

def from_disk(file_name):
    with open(file_name, 'rb') as f:
        return pickle.load(f)

Оператор import * разрешаетвопрос на локальной машине но не в aws лямбде.Я включил файл my_class в пакет развертывания самой лямбды.Объект также упакован с лямбдой.

Также используются слои для нескольких зависимостей, но не думайте, имеет ли это какое-либо отношение к этой ошибке.

...