실습(2)
![](https://velog.velcdn.com/images/black2code/post/33186f46-4593-407a-9d17-8991816af63e/image.png)
- PutObject 발생 시 Lambda 함수 실행
- S3 버켓에 날씨 데이터가 JSON파일이 실시간으로 업로드 된다고 가정
- 만약 측정된 온도가 특정 임계치를 넘는다면 그 온도가 언제 측정됐는지 주의 하라는 메세지 출력
- 온도가 임계치 이하라면 특별한 메시지를 출력하지 않도록 람다 함수 구성
![](https://velog.velcdn.com/images/black2code/post/28509c37-c5bf-4fb9-99b4-327bfe519c0f/image.png)
- 새로운 람다함수 생성
- 권한 - 람다함수가 S3 버켓의 특정 행동을 감지해야 함
![](https://velog.velcdn.com/images/black2code/post/5008abe5-3835-410f-a663-9b645f3658f0/image.png)
- 코드 작성
- Boto3 는 Python 용 AWS SDK (Software Development Kit)
- Boto3를 활용하여 파이썬 코드로 AWS의 서비스들을 활용할 수 있다.
- event에서 bucket과 key의 정보를 가져옴
- 정보들을 가지고 client.get_object를 통해 오브젝트를 가져옴
- 온도가 40도를 넘는다면 몇도이고 언제 감지되었는지 메세지 출력
- 만약 온도가 낮다면 "So far so goood" 메세지 출력
![](https://velog.velcdn.com/images/black2code/post/9eb6834c-71bb-43e2-9697-7ac98866cc71/image.png)
![](https://velog.velcdn.com/images/black2code/post/a78538a9-879b-4da2-a62d-c7d4842d03e8/image.png)
- 버킷 생성 후, 속성탭에서 이벤트 생성
- 이벤트란 버킷에서 특정 상황이 발생했을 때(ex.오브젝트가 업로드, 삭제)
![](https://velog.velcdn.com/images/black2code/post/d0de5f8a-a8ae-4126-a26b-2846294dc9fd/image.png)
- 접두사, 접미사 : 모든 오브젝트가 아닌 특정 오브젝트만 필터링 (ex.jpg)
- 이벤트 : PUT , POST, COPY 등 행위
![](https://velog.velcdn.com/images/black2code/post/62d8518e-27fc-486a-a782-500f60e50499/image.png)
![](https://velog.velcdn.com/images/black2code/post/ac650dd3-5483-4c23-bd73-2fdb6c245974/image.png)
- Lambda에서 확인해보면 트리거 S3를 확인할 수 있다.
![](https://velog.velcdn.com/images/black2code/post/953990f7-6405-47d2-a6af-fc11f3a4a959/image.png)
- S3에서 json 파일 업로드
- json 파일 내용
{
"temperature":45
}
![](https://velog.velcdn.com/images/black2code/post/5e68cde8-cb26-4041-afd5-796829140af3/image.png)
![](https://velog.velcdn.com/images/black2code/post/6fddaf04-0e90-4bfd-a189-008a12729a0b/image.png)
- CloudWatch에서 로그 스트림이 생성된걸 확인할 수 있다.
![](https://velog.velcdn.com/images/black2code/post/59aed8f3-e7f1-48e9-ba06-825575ca6095/image.png)
- 상세 로그를 보면 45도, 시간, 메세지가 발생된걸 확인할 수 있다.
![](https://velog.velcdn.com/images/black2code/post/9546a1f7-43c9-468c-8415-4b981597337c/image.png)
- S3에서 다른 json 파일 업로드
- json 파일 내용
{
"temperature":23
}
- CloudWatch에서 로그 스트림이 생성된걸 확인할 수 있다.
![](https://velog.velcdn.com/images/black2code/post/9d4bd206-a068-4ad8-9567-971dcafd1523/image.png)
- So far so good 메세지 출력 내용 확인
https://www.inflearn.com/course/aws-%EC%9E%85%EB%AC%B8/dashboard