AWS Lambda 函数无法在同一目录中找到其他包
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'"
Docker 文件
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}
它将core
的内容复制到${LAMBDA_TASK_ROOT}
中。要复制到 core
文件夹,应该是:
COPY core ${LAMBDA_TASK_ROOT}/core
我正在将 lambda 函数部署为容器映像。 这是我的项目结构:
- 核心
- 插件
- lambda_handler.py
三个都处于同一水平 - /var/task
在 lambda_handler.py 我正在导入核心包,但是当我在本地测试它时它说:
"errorMessage": "Unable to import module 'lambda_handler': No module named 'core'"
Docker 文件
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}
它将core
的内容复制到${LAMBDA_TASK_ROOT}
中。要复制到 core
文件夹,应该是:
COPY core ${LAMBDA_TASK_ROOT}/core