首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python从AWS lambda中的部署包(添加为层)调用.py脚本

使用python从AWS lambda中的部署包(添加为层)调用.py脚本
EN

Stack Overflow用户
提问于 2020-05-07 03:17:16
回答 2查看 87关注 0票数 1

我已经添加了一个zip文件作为部署包,其中包含一个xxx.py脚本。

我的lambda函数应该从包中调用xxx.py脚本。

我的lambda函数如下:

代码语言:javascript
复制
libdir = os.path.join(os.getcwd(), 'local', 'lib')
download_path = '/tmp/{}{}'.format(uuid.uuid4(), key)
command = 'LD_LIBRARY_PATH={} python xxx.py "{}"'.format(libdir, download_path)
output_path = subprocess.check_output(command, shell=True)

我得到了这个错误:

代码语言:javascript
复制
Command 'LD_LIBRARY_PATH=/var/task/local/lib python xxx.py "/tmp/52513240-a9 returned non-zero exit status 2.: CalledProcessError

我的部署包在压缩文件中的几个子文件夹中有xxx.py文件。

我需要在lambda函数中设置环境变量吗?如果是,在我的案例中,关键和价值是什么。

有没有其他方法可以在lambda中调用部署包中的python脚本?

请帮帮忙。提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2020-05-07 15:56:54

谢谢Mayank,但仍然-如何在导入后从我的lambda函数调用.py文件的主函数。

我的lambda函数实际上是基于s3事件触发的,该事件应从包内的.py脚本调用主函数,并将输出返回到另一个存储桶中。这是我的总体意图。

票数 0
EN

Stack Overflow用户

发布于 2020-05-07 16:04:27

在.py中将main重写为一个接受参数的函数,并在lamba的main中将s3触发器传递给第二层中的类。

伪代码

在你的第二层

代码语言:javascript
复制
___main(s3_event)___ # or rename from main to some_function
# some code

在你的主lambda中

代码语言:javascript
复制
import xxx.py as xxx
xxx.___main(s3_event)___
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61643520

复制
相关文章

相似问题

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