为AWS Lambda创建Python部署包

为AWS Lambda创建Python部署包,python,python-3.x,amazon-web-services,amazon-s3,lambda,Python,Python 3.x,Amazon Web Services,Amazon S3,Lambda,我正在尝试将我的Python 3.6.1代码上传到AWS,以便能够在Lambda上运行它 由于不太熟悉这个过程,我有点迷路了。我想要上传的python脚本将对GitLab进行外部API调用,以获取将写入文本文件并保存到S3存储桶中的存储库信息 为此,我必须导入requests模块。我在网上读到,如果您要导入除boto3之外的任何其他模块,则必须通过pip将它们重新安装到部署包文件夹的根目录中,然后将Python代码放入该文件夹,然后压缩该文件夹并将其上载到Lambda 我还看到其他帖子建议必须更

我正在尝试将我的Python 3.6.1代码上传到AWS,以便能够在Lambda上运行它

由于不太熟悉这个过程,我有点迷路了。我想要上传的python脚本将对GitLab进行外部API调用,以获取将写入文本文件并保存到S3存储桶中的存储库信息

为此,我必须导入requests模块。我在网上读到,如果您要导入除boto3之外的任何其他模块,则必须通过pip将它们重新安装到部署包文件夹的根目录中,然后将Python代码放入该文件夹,然后压缩该文件夹并将其上载到Lambda

我还看到其他帖子建议必须更改函数Lambda设置的配置部分中的“Handler”,这与Python代码中调用的“Main()”函数有关

然而,我在网上看到的所有关于这一点的文档都是模糊的,我没有任何运气。我试图阅读AWS文档并按照说明进行操作,但无法正确配置

我已经尝试过很多次了,但我不断地发现错误: { “errorMessage”:“无法导入模块'lambdaUpload'” }

(lambdaUpload是.py文件的文件名)

如果有人熟悉如何为使用第三方模块的Python脚本创建这些“Python部署包”,并且可以解释如何这样做,或者将我介绍给一些关于这方面的清晰文档,那将不胜感激

我知道一旦一个人知道如何做到这一点,这可能不会太难,但有时第一次就知道如何做到这一点是最难的


提前谢谢

上传函数的代码应该是:

boto3.client("lambda").create_function(
    FunctionName="functionName",
    Runtime="python3.6",
    Role="arn:......",
    Handler='lambdaUpload.lambda_handler',
    Code={
        'ZipFile': open(self.project_zip_file, "rb").read()
    }
)
最重要的是参数
处理程序
。它是“您的.py文件名(不带扩展名)”。要调用的主要函数“

因此,在本例中,在
.zip
文件的根文件夹中必须有一个名为
lambdaUpload.py
的文件,其代码如下:

import json

def lambda_handler(event, context):
   print("AWS Event ID: " + context.aws_request_id)
   print("Event Body: " + json.dumps(event))

   return "Hi"