AWS lambda와 DynamoDB Trigger

SangJin·2020년 2월 11일
1

realtime

목록 보기
1/1

개요

우연찮게 프로젝트에 참가하여 API를 구현하는데
그 API는 DynamoDB의 변화를 감지하여 lambda의 함수가 실행해서 broadcasting 해주는 django의 channels를 통해 클라이언트에게 실시간 정보를 알려주는 API이다.
쉽게 그림으로 설명하면

DynamoDB

그 첫단계가 바로 DynamoDB Trigger이다.
DynamoDB의 Trigger를 사용하기 위해서는 Stream을 활성화 시켜줘야한다.

스트림 관리를 누르면

위 처럼 나오는데
활성화 버튼을 클릭하자


위 사진 처럼 바뀔 것이다.
그럼 DynamoDB에서 할 일은 끝났다.

Lambda

이제 Lambda로 가서

함수 생성을 클릭한 다음에

함수 이름을 적고
나는 python으로 할 것이기 때문에 python으로 했다.
자신이 하고 싶은 언어를 선택해서 만들면 된다.
권한은 설명이 길어질 것 같으니 패쓰!(나중에 설명하는걸로... 좀 더 공부해올게요...)
아! 이번 실습을 위해 권한에서 중요한건 DynamoDB에 접근 권한을 줘야 한다.

자 이제 다 만들었으면

위에 두 화면이 나와있다.
우리가 중요하게 봐야하는건

트리거 부분과
밑에 함수코드 부분이다.

과정을 설명하자면 트리거에 DynamoDB를 걸고 DB가 변경 되면 Trigger가 발동되여 함수가 실행 된다.

Trigger

자 이제 트리거를 설정하자.
트리거 추가를 클릭하면

위와 같이 나온다.
우리가 원하는건 DynamoDB의 트리거이기 때문에 DynamoDB를 선택하자.

DynamoDB의 테이블을 선택하고 Add를 클릭하자.

위 사진 처럼 추가 됐다.
그럼 테스트를 해보자.
DynamoDB에 가서 항목을 추가해보자.

DynamoDB에 항목을 추가하면 lambda function 에서

import json

def lambda_handler(event, context):
    print(event)
    # TODO implement
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }
print(event)

이 부분을 AWS의 CloudWatch를 통해서 볼 수 있다.

이렇게 해서
이제 DynamoDB가 변경되면 Lambda의 함수가 실행되는 과정을 살펴보았다.
다음에는 Lambda함수가 django 위에서 실행되는 과정을 살펴보겠다

바.이.

profile
Developer

0개의 댓글