【发布时间】:2017-02-15 11:04:58
【问题描述】:
我已经部署了我的 zipped 项目,但没有 psycopg2 包。我想在我的lambda 上安装这个包而不重新上传我的固定项目(我现在无法访问我的项目)。我怎样才能在我的lambda 上安装这个package? pip可以做到吗?
【问题讨论】:
标签: python amazon-web-services pip aws-lambda psycopg2
我已经部署了我的 zipped 项目,但没有 psycopg2 包。我想在我的lambda 上安装这个包而不重新上传我的固定项目(我现在无法访问我的项目)。我怎样才能在我的lambda 上安装这个package? pip可以做到吗?
【问题讨论】:
标签: python amazon-web-services pip aws-lambda psycopg2
pip 是不可能的。您必须将依赖项添加到压缩的 Lambda 部署文件中。如果不上传新的压缩部署文件,您将无法修改 Lambda 部署。
【讨论】:
不能直接在 lambda 上使用 pip。相反,我使用自定义构建脚本来创建 zip 包 [这可以给你一个简单的想法 - 它当然可以变得更简单]
rm -rf ~/devops/tempenv > /dev/null
virtualenv ~/devops/tempenv
source ~/devops/tempenv/bin/activate
pip install SlackClient
pip install PyYaml
deactivate
rm -rf temp > /dev/null
mkdir temp
rm aws-lambda.zip > /dev/null
cp -r ~/devops/tempenv/lib/python2.7/site-packages/* temp/
cp *.py temp
cd temp
zip -r aws-lambda.zip .
mv aws-lambda.zip ../
cd ..
rm -rf temp
rm -rf ~/devops/tempenv
【讨论】: