Просматриваю требования (https://docs.aws.amazon.com/lambda/latest /dg/images-create.html#images-reqs), похоже, мне нужно установить API среды выполнения Lambda для Python в создаваемом мной образе, а затем обновить ENTRYPOINT. Я использовал пример Dockerfile в разделе «Создание изображения из альтернативного базового образа» (https://docs.aws.amazon.com/lambda/late ... ge-clients) в качестве ссылки. и изменил Dockerfile. Ниже представлена сокращенная версия, которую сможет использовать каждый:
Код: Выделить всё
FROM rockylinux:8.9
RUN yum -y update && \
yum -y upgrade
HEALTHCHECK NONE
RUN yum install -y nano && \
yum install -y wget
RUN adduser worker
USER worker
ARG HOME='/home/worker'
WORKDIR $HOME
RUN wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.10.0-1-Linux-x86_64.sh -O miniconda.sh && \
bash miniconda.sh -b -p ${HOME}/miniconda && \
rm miniconda.sh && \
source ${HOME}/miniconda/bin/activate && \
conda init --all
ENV PATH="${HOME}/miniconda/bin:${PATH}"
ARG BUILD=${HOME}/build
RUN mkdir ${BUILD}
COPY lambda_function.py ${BUILD}
RUN pip install --target ${BUILD} awslambdaric
ENTRYPOINT ["/home/worker/miniconda/bin/python3.10", "-m", "awslambdaric"]
CMD [ "lambda_function.handler" ]
Код: Выделить всё
{
"errorType": "Runtime.InvalidEntrypoint",
"errorMessage": "RequestId: d8919b62-472d-46c9-acf3-2b5ddaf49264 Error: fork/exec /home/worker/miniconda3/bin/python3.10: permission denied"
}
Код: Выделить всё
[worker@7525b61497ad bin]$ ls -al python3.10
-rwxrwxr-x 1 worker worker 17157264 Apr 10 19:14 python3.10
Код: Выделить всё
[worker@7525b61497ad bin]$ python
Python 3.10.13 (main, Sep 11 2023, 13:44:35) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
Код: Выделить всё
test
├── Dockerfile
└── lambda_function.py
Код: Выделить всё
import sys
def handler(event, context):
return 'Hello from AWS Lambda using Python' + sys.version + '!'
Подробнее здесь: https://stackoverflow.com/questions/783 ... entrypoint