我正在尝试使用serverless部署一个python lambda函数。我需要psycopg2库,所以我使用了serverless-python-requirements插件并将其添加到我的serverless.yml文件中。
plugins:
- serverless-python-requirements
custom:
pythonRequirements:
dockerizePip: non-linux我可以成功地部署函数:
Serverless: Installing requirements from
/Users/Desktop/postgresql/.serverless/requirements/requirements.txt ...
Serverless: Docker Image: lambci/lambda:build-python3.6
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Injecting required Python packages to package...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service .zip file to S3 (43.07 MB)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
..............
Serverless: Stack update finished...但当我查看我的Cloudwatch日志时,它显示“没有名为'psycopg2‘的模块”。
我的zip文件的结构是:
|--node_modules
|--.gitignore
|--handler.py
|--package-lock.json
|--package.json
|--serverless.yml运行无服务器部署时,未创建.serverless/ dir ...
任何帮助都将不胜感激!
发布于 2019-05-22 07:08:13
您只需要在requirements.txt文件中定义Python依赖项。您可以手动执行此操作,也可以使用pip freeze执行以下操作:
pip freeze > requirements.txt发布于 2021-10-13 11:40:17
插件serverless-python-requirements使用缓存。在打包您的服务之前,请确保将其清理干净。此外,lambda需要使用lambda环境进行编译:
# serverless.yaml
custom:
pythonRequirements:
dockerizePip: true
# bash
$ serverless requirements cleanCache
$ serverless deploy --stage <stage>发布于 2018-12-18 20:03:49
您是否正确安装了python依赖项?
serverless正在尝试安装来自Serverless: Installing requirements from /Users/Desktop/postgresql/.serverless/requirements/requirements.txt的要求
我建议遵循以下原则
create virtualenv virtualenv ./env
source env/bin/activate
pip install psycopg2
pip install psycopg2
pip freeze > requirements.txt假设您的代码正在导入依赖项,请使用serverless进行部署。
https://stackoverflow.com/questions/53550896
复制相似问题