我已经添加了一个zip文件作为部署包,其中包含一个xxx.py脚本。
我的lambda函数应该从包中调用xxx.py脚本。
我的lambda函数如下:
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)我得到了这个错误:
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脚本?
请帮帮忙。提前感谢!
发布于 2020-05-07 15:56:54
谢谢Mayank,但仍然-如何在导入后从我的lambda函数调用.py文件的主函数。
我的lambda函数实际上是基于s3事件触发的,该事件应从包内的.py脚本调用主函数,并将输出返回到另一个存储桶中。这是我的总体意图。
发布于 2020-05-07 16:04:27
在.py中将main重写为一个接受参数的函数,并在lamba的main中将s3触发器传递给第二层中的类。
伪代码
在你的第二层
___main(s3_event)___ # or rename from main to some_function
# some code在你的主lambda中
import xxx.py as xxx
xxx.___main(s3_event)___https://stackoverflow.com/questions/61643520
复制相似问题