无法解压缩上传的文件。请检查您的文件,然后尝试再次上传错误

时间:2019-11-06 15:47:22

标签: amazon-web-services aws-lambda boto3

我正在尝试使用库boto3从另一个lambda函数创建lambda函数,但遇到了一些问题,尤其是创建的code部分。

boto3 Documentation中,它指出对于代码,我们需要这样的东西。

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

在下面,它根据代码区域说明以下内容。

代码(dict)- [需要]

该功能的代码。

ZipFile (字节)- 部署程序包的base64编码的内容。 AWS SDK和AWS CLI客户端为您处理编码。

S3Bucket (字符串)- 与您的功能位于同一AWS区域中的Amazon S3存储桶。存储桶可以位于其他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 个答案:

答案 0 :(得分:1)

您无法通过此方法上传单个.py文件。您必须将Lambda函数作为.zip文件上传。