lambda layer 등록은 최대 용량이 250 MB이므로 pytorch, sklearn같이 고용량의 라이브러리는 사용하기 어렵다.
사용하려면 Docker를 사용해야함.
FROM public.ecr.aws/lambda/python:3.9
# Copy requirements.txt
COPY requirements.txt ${LAMBDA_TASK_ROOT}
# Copy function code
COPY *.py ${LAMBDA_TASK_ROOT}
# Install the specified packages
RUN pip install -r requirements.txt
# Set the CMD to your handler (could also be done as a parameter override outside of the Dockerfile)
CMD [ "lambda_function.lambda_handler" ]
#aws ecr login
aws ecr get-login-password --region {region} | docker login --username AWS --password-stdin {aws_account_id}.dkr.ecr.{region}.amazonaws.com
# aws ecr repo 생성
aws ecr create-repository --repository-name {repo-name} --image-scanning-configuration scanOnPush=true --image-tag-mutability MUTABLE
# build
docker build --platform linux/amd64 -t {aws_account_id}.dkr.ecr.{region}.amazonaws.com/{repo-name}:{tag} .
# push
docker push {aws_account_id}.dkr.ecr.{region}.amazonaws.com/{repo-name}:{tag}
# lambda create
aws lambda create-function --function-name {lambda_name} --package-type Image --code ImageUri={aws_account_id}.dkr.ecr.{region}.amazonaws.com/{repo-name}:{tag}
# lambda update
aws lambda update-function-code --function-name {lambda_name} --image-uri {aws_account_id}.dkr.ecr.{region}.amazonaws.com/{repo-name}:{tag}