클라우드

슬랫봇으로 아마존 ec2 start & stop

스마트큐브 2019. 7. 8. 14:33

먼저 이 글은 아래 링크의 도움이 95% 이었음을 밝힌다. 

https://devbro.tistory.com/24?category=819176

 

AWS Lambda로 랜덤아재개그 슬랙봇 만들기 1편 | 기본설정

개요 AWS 람다를 활용하여 간단한 슬랫봇를 만들어 보겠습니다. 버튼을 누르면 랜덤하게 아재개그를 뱉어내는 이상한 재밌는 친구입니다. 카카오 플러스친구 버전에 이어 슬랙봇도 만들어보겠습니다. 슬랫앱 생성..

devbro.tistory.com

 

1.  람다 함수 작성 

aws 콘솔 로그인 후 lambda 로 이동

"create function" 클릭 

 

Author from scratch 에서 

아래와 같이 설정하고 다음!

권한 설정이 빡신데 일단 admin 권한으로 진행하는걸 추천!

(추후 적절한 권한 조정 필요) 

위와 같이 설정후  우측 하단에 "Create Function " 클릭

 

2. API GW 연결 

1) 디자이너에서  아래와 같이 "Add Trigger" 클릭 한후 API GW 선택 

Add 누르면 아래와 같이 Endpoint url 이 확인된다. 

 

 

3 슬랙앱 작성

https://api.slack.com/apps

 

Slack API: Applications | Slack

Your Apps Don't see an app you're looking for? Sign in to another workspace.

api.slack.com

여기에서 신규 앱 등록 

슬랙 api 좌측 메뉴 화면에서  "Slash Commands" 로 들어가서 신규 등록

슬랙 커맨드에 의한 응답을 받기 위한 URL 설정 

아까 입력한 API GW 앤드포인트 url 에다가  /interactive 로 추가해서 "Request URL " 에 입력해주고 SAVE 한다. 

여기까지 하고 Install! 

 

4  슬랙봇용 람다 함수코드 작성 

https://gist.github.com/cubenuri/8762884fdc7752e9abeb5463e0275728

 

aws-ec2-handler.js

GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

위 소스를 그대로 가져다 사용하되 , 단! aws 콘솔에서 확인되는 인스턴스 ID 만 교체해주면 된다. 

5. API GW Proxy 로 Lambda 연결하기 

AWS 콘솔상에서 아까 생성해준 API GW 로 이동 한다. 

아래 그림처럼 Action 버튼을 눌러서 "Create Resource" 를 클릭한다. 

 

proxy 체크해주고 

Lambda 함수 항목에 방금 작성한 함수명을 입력한다. 

다 됐으면 Deploy 해준다. 

이제 모든게 끝! 슬랙봇 테스트 해보자 

이렇게 단계적으로 동작해야 성공! 


* 함수형 프로그래밍 적응이 안되서 한참 헤맸다. 
코드를 좀 더 이쁘게 해볼수 있을것 같은데  일단 가장 단순한 형태인 기억이 생생할때 기록해둔다.