2015-12-01 72 views
1

我想使用Fabric任务脚本更新我的AWS Lambda的代码。 Boto3 api需要一个base-64编码zip文件的字节数组。Python - 创建aws lambda部署包

假设我有源代码文件作为输入,最简单的创建方法是什么?

回答

1

与目前的boto3,不要解压缩,不base64编码它。 可以以开放和阅读这样做:

import boto3 
c = boto3.client('lambda') 
c.create_function({ 
    'FunctionName': 'your_function', 
    'Handler': 'your_handler', 
    'Runtime': 'python3.6', 
    'Code': {'ZipFile': open('./deploy.zip', 'rb').read()} 
}) 

我使用zip文件上面快速入门。您还可以将deploy.zip上传到S3存储桶,并在“代码”字典中将字符串+密钥作为字符串传递给“S3Bucket”和“S3Key”。

1
+0

是的,我看着他们。尽管他们不回答我的问题。正如我所提到的,我想使用boto create_function方法来接受base-64编码zip文件的字节数组。 – sumek

+1

实际上,IIUC你可以直接传递字节,你试过吗?https://github.com/boto/boto3/issues/201 – rsFF

+0

多数民众赞成有用!所以剩下的部分是如何压缩文件,然后以优雅的方式获取字节?理想情况下,我正在考虑在没有中间文件的情况下在内存中完成所有操作 – sumek