Я пытаюсь создать лямбда-функцию из другой лямбда-функции с библиотекой 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-файл и пакет развертывания?