Docker

AWS Lambda - ECR(Elastic Container Registry)

foxlee 2022. 1. 28. 08:39
  1. aws cli 설치 https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html
  2. aws configure(Access Key ID, Secret Access Key, Region, Output 설 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html
  3.  도커 파일 - From amazon/aws-lambda-python:3.8, WORKDIR /var/task 설정
  4.  실행 함수 - 파일 이름 lambda_function.py, 파일 내 함수 handler(event, context)로
  5. 설정 https://docs.aws.amazon.com/lambda/latest/dg/python-handler.html
  6. AWS ECR - Elastic Container Service
    1. 도커 이미지 빌드
      • docker build -t crawler .   (-t (tag) 없이 빌드하면 docker build .  -> 이미지 이름 none)
    2. 태그 설정
      • docker tag crawler:latest 00000000.asdf.ecr.ap-northeast-2.amazonaws.com/crawler:latest
    3.  push
      • docker push 00000000.asdf.ecr.ap-northeast-2.amazonaws.com/crawler:latest
  7. 트리거 추가 - 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)})
      }