AWS CDK를 사용하여 Docker 빌드 Lambda 함수 배포
Docker를 사용하여 Lambda 함수를 배포하면 많은 이점이 있습니다.
다른 게시물에서
Tensorflow
모델을 배포하는 방법을 보여드리겠습니다! GitHub Repository
CDK 초기화 및 배포
CDK 설정 및 환경 부트스트래핑은 다루지 않겠습니다. 해당 정보를 찾을 수 있습니다here..
CDK를 설정했으면 프로젝트를 설정해야 합니다.
mkdir cdk_docker_lambda && cd cdk_docker_lambda
cdk init --language python
source .venv/bin/activate
pip install -r requirements.txt && pip install -r requirements-dev.txt
이제 빈 스택을 AWS에 배포합니다.
cdk deploy
스택 설계
스택은 람다 함수만 배포합니다. 람다 함수는
Docker
를 사용하여 빌드되므로 Docker
가 설치되어 있고 Docker
데몬이 실행 중인지 확인하십시오.# cdk_docker_lambda/cdk_docker_lambda_stack.py
from aws_cdk import Stack
from aws_cdk import aws_lambda as _lambda
from constructs import Construct
class CdkDockerLambdaStack(Stack):
def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:
super().__init__(scope, construct_id, **kwargs)
self.build_lambda_func()
def build_lambda_func(self):
self.prediction_lambda = _lambda.DockerImageFunction(
scope=self,
id="ExampleDockerLambda",
# Function name on AWS
function_name="ExampleDockerLambda",
# Use aws_cdk.aws_lambda.DockerImageCode.from_image_asset to build
# a docker image on deployment
code=_lambda.DockerImageCode.from_image_asset(
# Directory relative to where you execute cdk deploy
# contains a Dockerfile with build instructions
directory="cdk_docker_lambda/ExampleDockerLambda"
),
)
람다 함수
cdk_docker_lambda
라는 새 디렉토리를 ExampleDockerLambda
에 만듭니다. 여기에 함수의 종속성을 포함하는 Dockerfile
, requirements.txt
및 람다 함수 자체example_docker_lambda.py
를 넣을 것입니다.cdk_docker_lambda/ExampleDockerLambda/Dockerfile
FROM amazon/aws-lambda-python:latest
LABEL maintainer="Wesley Cheek"
# Installs python, removes cache file to make things smaller
RUN yum update -y && \
yum install -y python3 python3-dev python3-pip gcc && \
rm -Rf /var/cache/yum
# Be sure to copy over the function itself!
COPY example_docker_lambda.py ./
# Copies requirements.txt file into the container
COPY requirements.txt ./
# Installs dependencies found in your requirements.txt file
RUN pip install -r requirements.txt
# Points to the handler function of your lambda function
CMD ["example_docker_lambda.handler"]
cdk_docker_lambda/ExampleDockerLambda/requirements.txt
requests
cdk_docker_lambda/ExampleDockerLambda/example_docker_lambda.py
# Very simple
import requests
def handler(event, context):
return "Hello Lambda!"
지금
cdk deploy
. AWS CDK
는 Docker
를 사용하여 새 Lambda 함수를 빌드한 다음 CDK 설정 중에 ECR
를 실행하여 원래 생성된 cdk bootstrap
리포지토리로 푸시합니다. 얼마나 편리한 지.이미지가 빌드되고 푸시된 후 CDK는 필요한 인프라를 배포합니다.
AWS CloudFormation
콘솔로 이동하여 배포를 볼 수 있습니다. 몇 분 밖에 걸리지 않습니다.완료되면 Lambda 콘솔에서 아름다운
Docker
배포된 Lambda 함수를 찾을 수 있습니다.Lambda 함수 테스트
함수는 항상 문자열을 반환하기 때문에 모든 종류의 이벤트를 사용할 수 있습니다.
AWS CDK
및 Docker
를 사용하여 원하는 크기의 Lambda를 쉽게 배포하십시오! 비용이 청구되지 않도록 완료되면 cdk destroy
를 확인하십시오.
Reference
이 문제에 관하여(AWS CDK를 사용하여 Docker 빌드 Lambda 함수 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/wesleycheek/deploy-a-docker-built-lambda-function-with-aws-cdk-fio텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)