( 참고 : “FastCampus, 데이터 엔지니어링 올인원” )

[ Data Engineering ]

Serverless Lambda

1. Micro Service & Serverless Lambda

크론탭은 1분/10분/하루 에 한번 씩 자동으로 수행하는 것이다.

이에 반해, “새로운 artist”가 들어왔는데, 그 아티스트에 대한 정보가 없을때에 한해서만 코드가 수행되도록 하고 싶은 경우에 적절하다.


앞으로 챗봇을 serverless lambda로 구현할 것이다.

서버로 구현할 수도 있지만, 왜 lambda를 사용해서?

  • 유저가 늘어남에 따라 lambda가 병렬적으로 늘어난다!

    ( 서로 연결 X .. 어느 하나 무너져도 ㄱㅊ )

figure2


Crontab을 통해 lambda를 호출할 수도, lambda가 다른 lambda를 호출할 수도 있다.

figure2


2. Lambda 생성

figure2

figure2

figure2

figure2


figure2

  • 함수를 script로 작성하는 곳


figure2

  • client_id, client_secret 등
  • ( 보안 상의 이유로, 일반적으로 코드 상에 직접 입력해놓지는 않는다 )
  • python script에서 os.environ.get('client_id')를 통해서 불러올 수 있음

특정 event가 발생하여 Trigger ! Example?

  • 1) 유저가 특정 artists에 대한 top tracks를 요청함.

    ( 해당 artists의 top tracks를 DynamoDB에 추가해야 ( artists의 id값은 이미 가지고 있음. ) )

  • 2) artists id값을 lambda에 던짐

  • 3) lambda가 Spoty API의 top tracks API hit

  • 4) Dynamo DB 업데이트


figure2

  • event : 발생하는 사건 input


figure2

requirements.txt : 설치할 패키지명들을 입력한 텍스트 파일

  • figure2


figure2

  • lambda function script 생성하고 저장


에러가 뜰 경우?

  • figure2
  • pip3 install -r requirements.txt -t ./libs


3. Deployment

deploy.sh

figure2

figure2


새로운 lambda function이 잘 들어온 것을 확인할 수 있다.

figure2