Slack 이벤트 수신
Slack 앱의 Events API를 Listener에 연결하면 앱 멘션이나 직접 메시지 같은 이벤트를 Foundry 스트리밍 데이터셋으로 받을 수 있습니다. Slack 앱을 생성하고 워크스페이스에 설치할 권한이 필요하며, Foundry의 인바운드 정책에는 Slack 요청이 들어오는 AWS 리전 또는 국가가 허용되어 있어야 합니다.
앱과 서명 비밀 정보 준비
-
Slack에서 통합에 사용할 새 앱을 생성합니다.
-
앱의
Basic Information > App Credentials에서Signing Secret값을 확인합니다. Listener의 요청 서명 검증에 사용할 값입니다. OAuth의Client Secret이나 API 호출용 Bearer 토큰과는 다른 인증 정보입니다.
Slack은 요청 서명을 X-Slack-Signature 헤더로 보냅니다. Foundry의 Slack Listener가 입력한 Signing Secret을 사용하여 해당 서명을 검증합니다. 서명 방식을 직접 구현하는 경우의 계약은 Slack 요청 검증 설명에 있습니다.
Listener를 먼저 시작하기
- Foundry의
Data Connection > Listeners에서 Slack Listener를 생성합니다. Message Signing Secret에 Slack 앱의 Signing Secret을 입력합니다.Endpoints의 URL을 기록하고save and continue를 선택합니다.- 승인 관련 설명을 검토한 뒤
Information Security Officer의 승인을 받습니다. 전용 하위 도메인을 사용하면 그 연결 승인도 완료합니다. - Listener의
Test페이지에서Start를 선택하고 활성 상태인지 확인합니다.
다음 단계에서 Slack이 요청 URL을 검증하므로 Listener를 먼저 활성화해야 합니다.
이벤트 구독과 워크스페이스 설치
- Slack 앱의
Event subscriptions를 엽니다. - 이벤트 구독을 켜고
Request URL에 Listener 엔드포인트를 입력합니다. - URL 검증이 완료되어
Verified가 표시되는지 확인합니다. - 수신할 이벤트와 필요한 권한 범위를 추가합니다. 예를 들어
app_mention은 앱이 명시적으로 멘션된 경우의 이벤트이며,app_mentions:read범위가 필요합니다.
이벤트와 권한 범위를 정한 뒤 앱을 워크스페이스에 설치합니다. 권한 범위를 변경한 경우에는 앱을 다시 설치하여 변경된 권한을 승인해야 합니다.
수신 확인
구독한 이벤트를 발생시키는 테스트 메시지를 보냅니다. app_mention을 구독했다면 앱을 멘션하고, Listener의 테스트 화면과 출력 스트림에서 메시지가 들어오는지 확인합니다.
Listener는 이벤트를 받는 연결입니다. Slack에 답변을 쓰려면 별도의 Slack 소스와 쓰기 권한이 필요합니다. 직접 메시지를 받아 AIP 챗봇의 응답을 보내는 구성은 Slack 챗봇 만들기에서 설명합니다.