AWS Lambda를 이용한 Slack Bot 개발 (1) : 기본 설정
Slack은 협업 도구로서의 역할을 넘어 다양한 통합과 자동화를 가능하게 하는 강력한 플랫폼입니다. 특히 Slack Events API를 활용하면, 사용자의 메시지, 멘션, 리액션 등 다양한 이벤트에 반응하는 봇을 만들 수 있습니다. 이 글에서는 Python과 AWS Lambda를 사용하여 Slack Bot을 만드는 방법을 소개하겠습니다.
왜 AWS Lambda인가?
AWS Lambda는 서버리스 컴퓨팅 서비스로, 서버 관리의 부담 없이 코드를 실행할 수 있습니다. 특히 Python에서는 AWS Lambda 함수를 사용하는 데 필요한 리소스가 많지 않아, 빠르고 저렴하게 봇을 구현할 수 있습니다.
AWS 람다(Lambda) 비용 정책 살펴보기
#1. AWS Lambda와 서버리스 컴퓨팅 AWS Lambda는 Amazon Web Services(AWS)에서 제공하는 서버리스 컴퓨팅 서비스입니다. "서버리스"라는 용어는 사용자가 서버를 직접 관리할 필요가 없다는 것을 의미합니다.
yunwoong.tistory.com
준비사항
- Slack Workspace: 테스트할 Slack 워크스페이스가 필요합니다.
- AWS 계정: AWS Lambda를 사용하기 위한 AWS 계정이 필요합니다.
#1. Slack App 생성
1. Slack api 사이트로 이동하여 [Create an App] 버튼을 클릭합니다.

2. 활성화된 팝업창에서 [From scratch]를 클릭합니다.

3. 앱 이름을 작성하고, 슬랙 작업 환경을 선택한 후에 [Create App]을 클릭합니다.

4. [Bots]를 클릭합니다.

5. Slack 앱을 만든 후에는 "Event Subscriptions"을 활성화해야 이벤트를 받을 수 있습니다.
이를 위해 Slack API 대시보드에서 앱 설정으로 이동한 후 "Event Subscriptions" 섹션을 찾아 "Enable Events"의 우측 상단 토글 버튼을 눌러 활성화합니다. 이후에는 Slack 이벤트를 받을 서버의 URL을 "Request URL"에 입력해야 합니다. 이 URL은 AWS Lambda 함수의 API Gateway 엔드포인트를 사용할 예정입니다. 여기서 일단 대기하고 AWS Lambda 함수를 만들도록 하겠습니다.

#2. AWS Lambda 함수 생성
1. AWS Management Console에 로그인한 후, 서비스 목록에서 "Lambda"를 선택합니다.
AWS Management Console
AWS Support 플랜은 AWS로 성공하는 데 도움이 되는 다양한 도구, 프로그램 및 전문 지식에 대한 액세스의 조합을 제공합니다.
aws.amazon.com


2. 새 함수를 생성하기 위해 [ 함수 생성 ] 버튼을 클릭합니다.

3. 함수 이름, 런타임, 아키텍처를 선택합니다.

4. Lambda 함수가 실행될 때 필요한 권한을 설정합니다. 새 역할을 생성하거나 기존 역할을 사용할 수 있습니다. 선택 후 [ 함수 생성 ] 버튼을 클릭하여 함수를 생성합니다.

5. [ 트리거 추가 ] 버튼을 선택하여 트리거를 설정합니다.

6. AWS Lambda 함수를 생성한 후에는 이벤트를 트리거할 수 있는 여러 가지 방법이 있습니다. 그중에서도 API Gateway는 HTTP 요청을 Lambda 함수로 라우팅 할 수 있는 매우 유용한 트리거입니다. Slack Events API와 Lambda를 연동하기 위해서는 API Gateway를 통한 설정이 필요합니다. API Gateway를 선택합니다.

7. API 상세 설정은 간단한 테스트를 위해 API 유형은 HTTP API를 선택하고 보안 설정에서는 Open을 선택합니다. [ 추가 ] 버튼을 클릭하여 API Gateway를 생성하고 Lambda 함수에 연결합니다.
8. Slack Event Subscriptions 활성화를 위해서는 challenge 과정을 위해 코드를 아래와 같이 수정합니다.
import json def lambda_handler(event, context): body = json.loads(event['body']) # Challenge 요청을 확인하고 응답 if 'challenge' in body: return { 'statusCode': 200, 'body': json.dumps({'challenge': body['challenge']}) }
Event Subscriptions을 활성화하고 challenge 과정을 거치는 것은 Slack Bot을 만들기 위한 필수 단계인데 Slack과 서버가 올바르게 연결되었음을 확인하고, 이후에 다양한 이벤트를 처리할 수 있게 하기 위함입니다. 코드를 수정 후 [ Deploy ]를 눌러서 배포까지 진행합니다.

#3. API Endpoint를 통한 Slack과 AWS Lambda 연결
1. 다시 구성 탭으로 돌아와 API Gateway의 엔드포인트를 복사합니다.

2. Slack API 사이트로 가서 Request URL에 붙여 넣습니다. 상단에 Verified 가 나오면 정상입니다.

이번 글에서는 AWS Lambda를 활용하여 Slack Bot을 개발하는 과정 중, 필요한 설정과 권한 부여, 그리고 Slack에서의 봇 추가 방법에 대해 알아보았습니다. 이 설정들은 봇이 제대로 작동하기 위한 기초적이면서도 중요한 단계입니다.
다음 글에서는 이 설정들을 바탕으로 실제로 AWS Lambda와 Slack을 연동하고, 이벤트를 처리하는 방법에 대해 알아보겠습니다. 설정이 완료되면, 다음 단계에서는 더 복잡한 로직이나 다양한 기능을 쉽게 추가할 수 있습니다.
AWS Lambda를 이용한 Slack Bot 개발 (2) : API Gateway를 통한 이벤트 처리
이번 글에서는 AWS Lambda를 활용하여 Slack Bot을 개발하는 과정 중, API Gateway를 통한 이벤트 처리에 대해 자세히 알아보겠습니다. 이 글은 "AWS Lambda를 이용한 Slack Bot 개발 가이드"의 두 번째 글입니
yunwoong.tistory.com
'Tech & Development > Automation & RPA' 카테고리의 다른 글
AWS Lambda를 이용한 Slack Bot 개발 (2) : API Gateway를 통한 이벤트 처리 (0) | 2023.09.05 |
---|---|
Python으로 Discord Bot 만들기 (2) (2) | 2023.02.17 |
Python으로 Discord Bot 만들기 (1) (9) | 2023.02.16 |
Discord 채널 ID 확인 (0) | 2023.02.16 |
[ Python ] googletrans을 이용한 간단한 번역 프로그램 (0) | 2023.01.30 |
댓글
이 글 공유하기
다른 글
-
AWS Lambda를 이용한 Slack Bot 개발 (2) : API Gateway를 통한 이벤트 처리
AWS Lambda를 이용한 Slack Bot 개발 (2) : API Gateway를 통한 이벤트 처리
2023.09.05이번 글에서는 AWS Lambda를 활용하여 Slack Bot을 개발하는 과정 중, API Gateway를 통한 이벤트 처리에 대해 자세히 알아보겠습니다. 이 글은 "AWS Lambda를 이용한 Slack Bot 개발 가이드"의 두 번째 글입니다. 첫 번째 글에서는 AWS Lambda와 Slack Bot의 기본 설정, 권한 관리, 토큰 설정 등에 대해 알아보았습니다. 이러한 기본 설정이 완료되었다면, 이번 글에서는 실제로 Slack에서 발생하는 이벤트를 AWS Lambda 함수에서 어떻게 처리할 수 있는지에 대해 살펴보겠습니다. API Gateway는 AWS에서 제공하는 완전 관리형 API 생성 및 관리 서비스입니다. 이를 통해 HTTP 요청을 Lambda 함수에 연결할 수 있으며, 이 과정에서 다양한 … -
Python으로 Discord Bot 만들기 (2)
Python으로 Discord Bot 만들기 (2)
2023.02.17이전 글에서는 Discord와 Bot을 연결하고 Python을 이용하여 간단히 메시지를 전송하는 방법에 대해 알아봤습니다. 이번 글에서는 Python 서버와 연결이 되면 Bot의 상태가 "온라인"으로 변경하고 사용자와 Bot이 대화하는 방법에 대해 알아보도록 하겠습니다. # Discord Bot 상태 변경 client.change_presence() Method를 이용하여 Discord Bot의 상태, 활동 및 기타 속성을 설정할 수 있습니다. Discord Bot의 상태를 변경하려면 Discord.py 라이브러리에서 메서드를 사용할 수 있습니다(Python을 사용한다고 가정). 이 방법을 사용하면 Bot의 상태, 활동 및 기타 속성을 설정할 수 있습니다. 다음은 Bot의 상태를 "온라인"으로 설정하고 … -
Python으로 Discord Bot 만들기 (1)
Python으로 Discord Bot 만들기 (1)
2023.02.16Discord는 2015년 Jason Citron과 Stanislav Vishnevskiy가 게이머들이 서로 소통할 수 있는 플랫폼으로 시작했습니다. Discord의 기본 아이디어는 Skype 나 TeamSpeak 같은 플랫폼보다 더 안정적이고 음성, 채팅, 화상 통화가 가능한 사용자 친화적인 플랫폼을 만드는 것이었습니다. 처음에 소규모 게임 그룹을 위한 도구로 사용되었지만 빠르게 인기를 얻었고 대규모 게임 커뮤니티와 비게임 커뮤니티까지 포함할 수 있도록 확장되었습니다. 음성 채팅과 커뮤니티 구축에 중점을 둔 Discord는 매우 심플하고 다양한 설정이 가능한 인터페이스로 사용자들에게 어필했고 이후 수년에 걸쳐 비디오 채팅, 화면 공유, 추가 장치 및 플랫폼 지원을 포함한 새로운 기능과 발생되는 문제점을… -
Discord 채널 ID 확인
Discord 채널 ID 확인
2023.02.16Discord 채널 ID는 Discord 서버 각 채널에 할당되는 고유 식별값입니다. Discord를 이용하는데에는 채널 ID를 몰라도 전혀 문제가 없지만 다양한 API 사용이나 명령, Bot 활용 등을 위해서 필요할 수 있습니다. Discord에서 채널 ID를 찾는 방법에 대해 간단하게 알려드리도록 하겠습니다. # 개발자 모드 활성화 먼저 개발자 모드가 활성화되어 있는지 확인이 필요합니다. 사용자 설정을 클릭합니다. 고급 > 개발자 모드를 클릭하여 활성화 합니다. 다시 채널로 돌아와서 마우스 우클릭 후 메뉴에서 "ID 복사하기"를 클릭합니다. 이제 필요한 곳에 붙여넣기를 하시면 됩니다. 추가로 사용자의 이름을 마우스 우클릭하여 "사용자 ID"를 복사하거나 메시지에 마우스 우클릭하여 "메시지 ID"를 복…
댓글을 사용할 수 없습니다.