【问题标题】:serverless-python-requirements not workingserverless-python-requirements 不起作用
【发布时间】:2022-11-04 00:20:16
【问题描述】:

我有一个带有无服务器框架的“hello-world”python 项目。 我正在尝试部署一个需要 numpy 的简单 lambda 函数。但目前,当我运行 sls deploy 并尝试调用 lambda 函数时,我得到一个 internal server error

这是我的项目的结构:

test_api/
    serverless.yml
    test_api.py
    Pipfile

test.py 我有:

import numpy as np


def handler(event, context):
    return {
        "statusCode": 200,
        "body": f"numpy version = {np.__version__}"
    }

在我的serverless.yml

service: test_api
frameworkVersion: "3"
provider:
  name: aws
  runtime: python3.8
  region: eu-west-3
  stage: dev

functions:
  test:
    handler: tes_api.handler
    events:
      - http:
          path: test_api
          method: get
          cors: true

plugins:
  - serverless-python-requirements

在 Pipfile 中:

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
numpy = "*"

[requires]
python_version = "3.8"

当我部署时,我没有错误,但是当我调用端点时,我得到:

当我在 AWS 上测试它时:

如果我从 Pipfile 和 lambda 中删除 numpy(我只是在我的 lambda 中返回“hello”),一切正常。

为什么我会收到此错误,我该如何解决?

【问题讨论】:

标签: python aws-lambda serverless-framework


【解决方案1】:

这是您的 serverless.yml 文件中的错字吗?

你有

handler: tes_api.handler 

我想它应该是 test_api.handler

【讨论】:

    【解决方案2】:

    查看您的项目结构,您似乎错过了the documentation 中提到的重要步骤 - 没有package.json。您需要在项目目录中运行以下命令:

    $ sls plugin install -n serverless-python-requirements
    

    这会自动将插件添加到您项目的package.json 及其serverless.yml 的插件部分。

    如果您想从头开始,请在项目目录的活动venv 中运行以下命令:

    $ npm init
    

    然后

    $ npm install --save serverless-python-requirements
    

    我会将以下内容添加到您的serverless.yml

    # serverless.yml
    
    plugins:
      - serverless-python-requirements
    
    custom:
      pythonRequirements:
        dockerizePip: non-linux
    

    然后在您的venv 处于活动状态时进行部署。 请注意serverless-python-requirements 需要 Docker 才能工作。

    【讨论】:

      猜你喜欢
      • 2019-05-02
      • 1970-01-01
      • 2021-01-26
      • 2021-08-07
      • 1970-01-01
      • 1970-01-01
      • 2021-11-06
      • 2020-06-16
      • 1970-01-01
      相关资源
      最近更新 更多