为awslamd创建Python部署包

2024-09-29 17:09:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将python3.6.1代码上载到AWS,以便能够在Lambda上运行它。在

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

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

我也看到了其他帖子,建议人们必须在Lambda设置的配置部分更改函数的“Handler”,因为在Python代码中调用了什么“Main()”函数?在

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

我试了很多次,但一直都有错误: { “errorMessage”:“无法导入模块'lambdaUpload'” }在

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

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

我知道一旦一个人知道如何做这件事,可能并不太难,但有时在第一次就想好如何做是最困难的。在

提前谢谢!在


Tags: 模块文件lambda函数代码文档脚本文件夹
1条回答
网友
1楼 · 发布于 2024-09-29 17:09:22

上载函数的代码应该类似于:

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()
    }
)

最重要的是参数Handler。它是“name of your.py file(without extension)”。“main函数被称为“。在

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

^{pr2}$

相关问题 更多 >

    热门问题