안녕하세요. 이번 시간에는 네이버 클라우드 플랫폼 서비스 Cloud Functions와 Slack을 이용한 나만의 비용 관리 봇을 생성하는 실습을 진행하려고 합니다. 굉장히 간단하게 개발 환경에서 비용을 관리할 수 있으니 내용 참고해 보시면 좋을 것 같습니다. 1. 비용 관리 봇 아이디어 (Billing Management Bot)네이버 클라우드에서 기본적으로는 비용 관리에 대한 메트릭을 제공하지 않기 때문에 API 중에서 사용한 비용을 조회할 수 있는 getDemandCostList를 사용하여 사용 비용을 조회할 수 있습니다. 애플리케이션에서 비용 관리를 위해 Budget을 설정합니다. 사용 금액과 Budget을 비교하여 Budget을 넘겼을 때 곧 바로 사용하고 있는 서비스를 중지하거나 제거할 수 있..
안녕하세요 이번 시간에는 Slack API 요청 시 AWS Lambda 단에서 Timeout 걸릴 때 해결하는 방법을 간단하게 포스팅하려고 합니다. 1. 문제점 Lambda CloudWatch Logs를 확인해 보면 3초 이상 걸리는 로직이나 쿼리에 대해 다음과 같이 Lambda Timeout 에러가 발생하는 것을 확인할 수 있습니다. 이 경우 기본적으로 2가지 해결 방법을 제안해 볼 수 있습니다. 현재 Slack API를 사용하는 챗봇 서비스의 구성도를 보면 Slack으로 메세지를 던지면 API Gateway를 통해 Lambda에 이벤트가 발생하는데 Lambda에서는 이벤트의 본문이 Base64 형태로 인코딩 되어 출력됩니다. 이때 코드에서 로직을 처리하고 사용자에게 다시 반환하는 시간이 기본 값인 3..
안녕하세요 이번 시간에는 AWS Lambda에서 Slack 이벤트 Payload를 JSON 형태로 사용해 보는 실습을 진행하겠습니다. Flask에서는 request.form.get("payload")로 바로 JSON 형태로 추출이 가능했지만 Lambda에 Flask를 올릴 것은 아니기 때문에 Payload를 로그 찍어보며 어떻게 JSON 형태로 변환하면 좋을지 고민해 보다가 이런 방법도 있는 것 같아서 소개해드리려고 합니다. 1. Slack 이벤트의 Payload 구성 살펴보기 서버리스 환경에서 Event Subscriptions나 Interactivity & Shortcuts 설정을 진행했다면 Slack에서 발생하는 이벤트는 Lambda 모니터링 CloudWatch에 로그로 찍히게 됩니다. Lambda..
안녕하세요 이번 시간에는 Lambda를 이용한 Serverless 형태의 Slack 챗봇을 사용하는 실습을 진행하려고 합니다. 이미 기존에 Flask와 Ngrok을 사용하여 Slack 챗봇을 사용하는 포스팅이 많이 있기 때문에 이번 시간에는 API Gateway와 Lambda를 이용하여 서버리스 형태로 간단히 사용해 보는 실습을 진행하겠습니다. 생각보다 서버로 구성하는 것과 어느정도 차이가 있기 때문에 서버로 먼저 구성해 보신 후 해보는 것이 좋을 것 같습니다. 1. 아키텍처 Slack에서 대화형으로 채팅을 쳤을 때 Slack API를 통해 API Gateway에 요청을 보내고 Lambda가 실행됩니다. Lambda에서 처리 로직을 거쳐 모니터링 이미지는 Lambda 파일시스템 및 S3에 저장하고 호출하..