Docker
AWS Lambda - ECR(Elastic Container Registry)
foxlee
2022. 1. 28. 08:39
- aws cli 설치 https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html
- aws configure(Access Key ID, Secret Access Key, Region, Output 설정 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html
- 도커 파일 - From amazon/aws-lambda-python:3.8, WORKDIR /var/task 설정
- 실행 함수 - 파일 이름 lambda_function.py, 파일 내 함수 handler(event, context)로
- 설정 https://docs.aws.amazon.com/lambda/latest/dg/python-handler.html
- AWS ECR - Elastic Container Service
- 도커 이미지 빌드
- docker build -t crawler . (-t (tag) 없이 빌드하면 docker build . -> 이미지 이름 none)
- 태그 설정
- docker tag crawler:latest 00000000.asdf.ecr.ap-northeast-2.amazonaws.com/crawler:latest
- push
- docker push 00000000.asdf.ecr.ap-northeast-2.amazonaws.com/crawler:latest
- 도커 이미지 빌드
-
트리거 추가 - Amazon EventBridge - rate(1 day)
# Dockerfile
FROM amazon/aws-lambda-python:3.8
RUN /var/lang/bin/python3.8 -m pip install --upgrade pip
WORKDIR /var/task/ # task directory!
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["lambda_function.handler"]
# lambda_function.py
import json
def handler(event, context):
data = []
... get data....
return {
'statusCode': 200,
'body': json.dumps({"count": len(data)})
}