首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为AWS Lambda创建Python部署包

为AWS Lambda创建Python部署包
EN

Stack Overflow用户
提问于 2017-07-13 21:23:20
回答 1查看 1.1K关注 0票数 0

我试图将我的Python3.6.1代码上传到AWS,以便能够在Lambda上运行它。

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

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

我还看过其他文章,建议我们必须更改Lambda配置部分中的“Handler”,以便在Python代码中调用它们的“Main()”函数。

然而,我在网上读到的所有有关这方面的文档都是模糊的,我没有任何运气。我试着查看了AWS文档,并按照说明进行了操作,但未能正确配置它。

我已经尝试过很多次了,但是我一直收到错误:{ "errorMessage":“无法导入模块'lambdaUpload'”}

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

如果有人熟悉如何为正在使用第三方模块的Python脚本创建这些"Python部署包“,并且可以解释如何这样做,或者将我路由到有关这方面的一些明确文档,那么我们将非常感激。

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

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2017-07-15 21:46:16

上载该函数的代码应该如下所示:

代码语言:javascript
复制
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。它是“您的.py文件的名称(没有扩展名)”。

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

代码语言:javascript
复制
import json

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

   return "Hi"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45091126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档