실습(2)
- PutObject 발생 시 Lambda 함수 실행
- S3 버켓에 날씨 데이터가 JSON파일이 실시간으로 업로드 된다고 가정
- 만약 측정된 온도가 특정 임계치를 넘는다면 그 온도가 언제 측정됐는지 주의 하라는 메세지 출력
- 온도가 임계치 이하라면 특별한 메시지를 출력하지 않도록 람다 함수 구성
- 새로운 람다함수 생성
- 권한 - 람다함수가 S3 버켓의 특정 행동을 감지해야 함
- 코드 작성
- Boto3 는 Python 용 AWS SDK (Software Development Kit)
- Boto3를 활용하여 파이썬 코드로 AWS의 서비스들을 활용할 수 있다.
- event에서 bucket과 key의 정보를 가져옴
- 정보들을 가지고 client.get_object를 통해 오브젝트를 가져옴
- 온도가 40도를 넘는다면 몇도이고 언제 감지되었는지 메세지 출력
- 만약 온도가 낮다면 "So far so goood" 메세지 출력
- 버킷 생성 후, 속성탭에서 이벤트 생성
- 이벤트란 버킷에서 특정 상황이 발생했을 때(ex.오브젝트가 업로드, 삭제)
- 접두사, 접미사 : 모든 오브젝트가 아닌 특정 오브젝트만 필터링 (ex.jpg)
- 이벤트 : PUT , POST, COPY 등 행위
- Lambda에서 확인해보면 트리거 S3를 확인할 수 있다.
- S3에서 json 파일 업로드
- json 파일 내용
{
"temperature":45
}
- CloudWatch에서 로그 스트림이 생성된걸 확인할 수 있다.
- 상세 로그를 보면 45도, 시간, 메세지가 발생된걸 확인할 수 있다.
- S3에서 다른 json 파일 업로드
- json 파일 내용
{
"temperature":23
}
- CloudWatch에서 로그 스트림이 생성된걸 확인할 수 있다.
- So far so good 메세지 출력 내용 확인
https://www.inflearn.com/course/aws-%EC%9E%85%EB%AC%B8/dashboard