我已添加一个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
我的部署程序包在zip文件的几个子文件夹中具有xxx.py文件。
我需要在lambda函数中设置环境变量吗?如果是,在我看来,这可能是关键和价值。
除此之外,还有其他方法可以从lambda的部署包中调用python脚本吗?
请帮助。预先感谢!
感谢Mayank,但仍然-导入后如何从我的lambda函数中调用.py文件的主要函数。
我的lambda函数实际上是基于s3事件触发的,该事件又应从包中的.py脚本调用主函数,并且输出应返回到另一个存储桶。这是我的总体打算。
将.main中的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)___