首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用serverless-python-requirements进行无服务器部署不起作用

使用serverless-python-requirements进行无服务器部署不起作用
EN

Stack Overflow用户
提问于 2018-11-30 11:40:49
回答 7查看 5.3K关注 0票数 1

我正在尝试使用serverless部署一个python lambda函数。我需要psycopg2库,所以我使用了serverless-python-requirements插件并将其添加到我的serverless.yml文件中。

代码语言:javascript
复制
plugins:
  - serverless-python-requirements
custom:
    pythonRequirements:
        dockerizePip: non-linux

我可以成功地部署函数:

代码语言:javascript
复制
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文件的结构是:

代码语言:javascript
复制
    |--node_modules
    |--.gitignore
    |--handler.py
    |--package-lock.json
    |--package.json
    |--serverless.yml

运行无服务器部署时,未创建.serverless/ dir ...

任何帮助都将不胜感激!

EN

回答 7

Stack Overflow用户

发布于 2019-05-22 07:08:13

您只需要在requirements.txt文件中定义Python依赖项。您可以手动执行此操作,也可以使用pip freeze执行以下操作:

代码语言:javascript
复制
 pip freeze > requirements.txt
票数 2
EN

Stack Overflow用户

发布于 2021-10-13 11:40:17

插件serverless-python-requirements使用缓存。在打包您的服务之前,请确保将其清理干净。此外,lambda需要使用lambda环境进行编译:

代码语言:javascript
复制
# serverless.yaml
custom:
    pythonRequirements:
        dockerizePip: true

# bash
$ serverless requirements cleanCache
$ serverless deploy --stage <stage>
票数 2
EN

Stack Overflow用户

发布于 2018-12-18 20:03:49

您是否正确安装了python依赖项?

serverless正在尝试安装来自Serverless: Installing requirements from /Users/Desktop/postgresql/.serverless/requirements/requirements.txt的要求

我建议遵循以下原则

create virtualenv virtualenv ./env

  • activate it source env/bin/activate

  • install pip install psycopg2

  • freeze pip install psycopg2

  • freeze你的本地依赖关系pip freeze > requirements.txt

假设您的代码正在导入依赖项,请使用serverless进行部署。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53550896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档