如何查看运行AWS Lambda的虚拟环境?

时间:2018-09-28 14:22:34

标签: amazon-web-services aws-lambda virtualenv

Amazon的Lambda似乎创建了一个新的virtualenv(假设您使用lambda-uploader并有一个requirements.txt文件)。我一直在尝试使用pip freeze作为子流程来查看该虚拟环境中的内容,但是没有运气。当我执行列出Python版本(3.6)的命令时,它就可以工作。

请注意,当我导入软件包时,它确实可以安装我的requirements.txt中的东西。我只是无法列出它们。

import subprocess

def lambda_handler(event, _):

# py_data = subprocess.run(['python -V'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
py_data = subprocess.run(['python', '-V'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print("py_data.stdout = %s" % str(py_data.stdout))
print("py_data.stderr = %s" % str(py_data.stderr))

# pip_data = subprocess.run(['pip freeze'], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# pip_data = subprocess.run(['pip', 'freeze'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# print("pip_data.stdout = %s" % str(pip_data.stdout))
# print("pip_data.stderr = %s" % str(pip_data.stderr))

pip_data = subprocess.Popen(['pip', 'freeze'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print("pip_data.stdout = %s" % str(pip_data.stdout.read()))
print("pip_data.stderr = %s" % str(pip_data.stderr.read()))

return {"statusCode": 200, "Message": bs_status}

尽管列出了Python版本,但我尝试过的Subprocess的所有变体似乎都没有用。

那么我该如何做pip freeze并显示Lambda在其中运行的任何虚拟或其他环境的内容?

0 个答案:

没有答案