我是Lambda的新手,正在尝试使用Lambda和Docker镜像。我需要使用自己的Docker镜像作为基础镜像,而不是AWS提供的Lambda镜像。下面是我的Docker文件,基础镜像是python:3.9.6。但是当我尝试执行Lambda函数时,出现以下错误。
我参考以下链接进行实现。AWS官方文档链接
# Define function directory
ARG FUNCTION_DIR="/function/"
FROM python:3.9.6 as build-image
# Install aws-lambda-cpp build dependencies
RUN apt-get update && \
apt-get install -y \
g++ \
make \
cmake \
unzip \
libcurl4-openssl-dev
# Include global arg in this stage of the build
ARG FUNCTION_DIR
# Create function directory
RUN mkdir -p ${FUNCTION_DIR}
# Copy function code
COPY app/* ${FUNCTION_DIR}
# Install the runtime interface client
RUN pip install \
--target ${FUNCTION_DIR} \
awslambdaric
# Multi-stage build: grab a fresh copy of the base image
FROM python:3.9.6
# Include global arg in this stage of the build
ARG FUNCTION_DIR
# Set working directory to function root directory
WORKDIR ${FUNCTION_DIR}
# Copy in the build image dependencies
COPY --from=build-image ${FUNCTION_DIR} ${FUNCTION_DIR}
ENTRYPOINT [ "/usr/local/bin/python", "-m", "awslambdaric" ]
CMD [ "lambda_function.lambda_handler" ]
错误
raceback (most recent call last):
File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/function/awslambdaric/__main__.py", line 20, in <module>
main(sys.argv)
File "/function/awslambdaric/__main__.py", line 14, in main
lambda_runtime_api_addr = os.environ["AWS_LAMBDA_RUNTIME_API"]
File "/usr/local/lib/python3.10/os.py", line 679, in __getitem__
raise KeyError(key) from None
KeyError: 'AWS_LAMBDA_RUNTIME_API'
有人之前遇到过这个问题吗?怎么解决呢?
AWS_LAMBDA_RUNTIME_API
中设置了吗? - Devang Sanghani