Не удалось распаковать загруженный файл. Пожалуйста, проверьте ваш файл, затем попробуйте загрузить снова Ошибка - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь создать лямбда-функцию из другой лямбда-функции с библиотекой boto3, и у меня возникают некоторые проблемы, особенно с частью code создания.

В boto3 Документация , в которой говорится, что для кода нам нужно что-то вроде этого.

Code={
        'ZipFile': b'bytes',
        'S3Bucket': 'string',
        'S3Key': 'string',
        'S3ObjectVersion': 'string'
    }

Ниже этого указано следующее в соответствии с областью кода.

Код (dict) - [ТРЕБУЕТСЯ]

Код функции.

ZipFile (байты) - содержимое развертывания в кодировке base64пакет. Клиенты AWS SDK и AWS CLI обрабатывают кодировку для вас.

S3Bucket (строка) - корзина Amazon S3 в том же регионе AWS, что и ваша функция. Контейнер может находиться в другой учетной записи AWS.

S3Key (строка) - ключ Amazon S3 пакета развертывания.

S3ObjectVersion (строка) - Для версионных объектов - версия используемого объекта пакета развертывания.

Насколько я понимаю, я могу создать корзину, содержащую код (мне не нужны какие-либо пользовательские зависимости, поэтому нет пакета развертывания),Исходя из этого, я могу создать функцию (очевидно, я не прав).

client.create_function(
        FunctionName = 'Test',
        Runtime = 'python3.7',
        Role = 'role',
        Handler = 'Test.lambda_handler',
        Code = {
            'S3Bucket': 'myBucketName',
            'S3Key': 'FunctionNameInsideBucket.py'
        }
    )

Когда я запускаю приведенный выше код, я получаю Could not unzip uploaded file. Please check your file, then try to upload again..

Любая идея о том, что я делаю неправильно? Возможно ли создание функции из исходного кода в корзине или необходим zip-файл и пакет развертывания?

1 Ответ

1 голос
/ 06 ноября 2019

Вы не можете загрузить один файл .py с помощью этого метода. Вы должны загрузить функцию Lambda в виде ZIP-файла.

...