AWS Lambda 函数无法在同一目录中找到其他包

扎眼的阳光 python 378

原文标题AWS Lambda function not able to find other packages in same directory

我正在将 lambda 函数部署为容器映像。这是我的项目结构:

  • 插件
  • lambda_handler.py

三者同级-/var/task

在 lambda_handler.py 我正在导入核心包,但是当我在本地测试它时它说:

"errorMessage": "Unable to import module 'lambda_handler': No module named 'core'"

Dockerfile

FROM public.ecr.aws/lambda/python:3.9

# Copy requirements to container
COPY requirements.txt .

# install dependencies
RUN pip3 install -r requirements.txt --target "${LAMBDA_TASK_ROOT}"

# Copy app folders to container
COPY core ${LAMBDA_TASK_ROOT}
COPY plugins ${LAMBDA_TASK_ROOT}
COPY lambda_handler.py ${LAMBDA_TASK_ROOT}
COPY __init__.py ${LAMBDA_TASK_ROOT}

CMD ["lambda_handler.lambda_fun"]

lambda_handler.py

import json

from core.nlp.service import nlp_service


def lambda_fun(event, context):
    return json.dumps(nlp_service.get_ner())

requirements.txt

pyspark==3.1.2
spacy
pymupdf
boto3
cloudpathlib
spark-nlp==3.4.1
numpy

原文链接:https://stackoverflow.com//questions/71463799/aws-lambda-function-not-able-to-find-other-packages-in-same-directory

回复

我来回复
  • Marcin的头像
    Marcin 评论

    如果你只是使用

    COPY core ${LAMBDA_TASK_ROOT}
    

    它会将core的内容复制到${LAMBDA_TASK_ROOT}中。复制到core文件夹,应该是:

    COPY core ${LAMBDA_TASK_ROOT}/core
    
    2年前 0条评论