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



我正在将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

如果您只使用

COPY core ${LAMBDA_TASK_ROOT}

它将把CCD_ 2的内容复制到CCD_。要复制到core文件夹,它应该是:

COPY core ${LAMBDA_TASK_ROOT}/core

最新更新