python - Python 中的 AWS Lambda:来自父目录的处理程序
问题描述
我使用 Docker 作为具有以下结构的存储库的容器:
engine
--models_api
----alpha_model_api
--------model_api.py
----api_utils
--------utils.py
--models_logic
----models_utils
--------utils.py
----model_ids.json
--Dockerfile
model_api.api 是 lambda 处理程序。它使用 models_api.api_utils.utils 模块来获取一些数据。models_api.api_utils.utils 使用 models_logic.models_utils.utils 来提供从 models_logic.model_ids.json 反序列化的数据。问题是我不知道 api_utils 范围内的对象如何知道如何从工作目录 ( ${LAMBDA_TASK_ROOT}/models_api/alpha_model_api/model_api
) 到 model_ids.json 而不假设它在特定目录中运行。
对我来说理想的情况是找到一种方法来调用model_api.api
工作目录为 ${LAMBDA_TASK_ROOT} 的 aws lambda 处理程序 ()
这是码头文件:
FROM public.ecr.aws/lambda/python:3.8
COPY . ${LAMBDA_TASK_ROOT}
ENV PYTHONPATH="$PYTHONPATH:${LAMBDA_TASK_ROOT}"
RUN pip install -r ./models_api/alpha_api/requirements.txt --target ./models_api/alpha_api
WORKDIR ${LAMBDA_TASK_ROOT}/models_api/alpha_api
CMD ["model_api.api"]
我希望能够在不设置WORKDIR
变量的情况下调用 lambda 处理程序。甚至可能吗?
解决方案
推荐阅读
- sql-execution-plan - 如何在 db2 Z/OS 中创建 PLAN_TABLE
- string - python字符串拆分“大约80k个字符的字符串”
- javascript - Javascript中的链式返回
- docker - Docker 编写两个简单的应用程序
- java - JsonObject 流处理空值
- swift - Swift按案例名称对枚举进行排序
- javascript - 如何从 Python CGI 脚本中返回一个值
- r - 使用 RpostgreSQL 在循环内更改 PostgreSQL 架构
- php - 如何在 unicode 字符串中找到相似的 unicode 文本?
- java - 是否有必要在 JPanel 上调用 setDoubleBuffered?