Slack은 대화 기반 팀 협업 도구로 알려져 있습니다. 파이썬으로 작성된 Slack 앱을 배포하기 위해서는 서버리스 아키텍처를 사용하는 것이 이상적입니다. 이때 Zappa라는 도구를 사용하면 쉽고 빠르게 Slack 앱을 배포할 수 있습니다.
Zappa란?
Zappa는 AWS Lambda와 AWS API Gateway를 사용하는 파이썬용 웹 프레임워크입니다. Zappa를 사용하면 파이썬 애플리케이션을 서버리스 아키텍처로 배포할 수 있습니다.
Zappa는 pip를 사용하여 간단하게 설치할 수 있습니다.
pip install zappa
Slack 앱 생성
Slack 앱을 생성하려면 다음 단계를 따라야 합니다.
- Slack 워크스페이스에 로그인하고, Slack 앱 관리 페이지로 이동합니다.
- “Create New App” 버튼을 클릭하여 새로운 앱을 생성합니다.
- “App Name”을 입력하고, 앱의 범위(Scope)를 설정합니다. 이 예제에서는 “bot” 범위를 사용합니다.
- “Create App” 버튼을 클릭합니다.
앱을 생성한 후, “OAuth & Permissions” 메뉴로 이동하여 “Bot Token”을 확인하기 위해 “Install to Workspace” 버튼을 클릭합니다. 이후 발급된 토큰을 나중에 사용하기 위해 복사해 놓습니다.
Zappa 설정 파일 생성
Zappa를 사용하기 위해 프로젝트 디렉토리에 zappa_settings.json
파일을 생성해야 합니다. 이 파일은 Zappa 배포에 필요한 구성 옵션을 설정하는데 사용됩니다.
다음은 zappa_settings.json
의 예시입니다.
{
"dev": {
"app_function": "slack_app.app",
"profile_name": "default",
"project_name": "slack-app-zappa",
"runtime": "python3.8",
"s3_bucket": "zappa-slack-app-files",
"aws_region": "us-west-2",
"environment_variables": {
"SLACK_TOKEN": "xoxb-111111111111-xxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
여기서 “app_function”은 Slack 앱의 진입점인 함수를 가리키고, “s3_bucket”은 Zappa에서 배포 파일을 저장할 S3 버킷의 이름입니다. “aws_region”은 앱을 배포할 AWS 리전을 나타내며, “environment_variables”는 앱에 필요한 환경 변수를 설정할 수 있습니다.
Zappa를 사용하여 앱 배포
Zappa를 사용하여 Slack 앱을 배포하려면 다음 명령을 실행합니다.
zappa deploy dev
이 명령은 zappa_settings.json
파일에 정의된 설정에 따라 앱을 배포합니다. 배포가 완료되면 배포된 URL이 출력됩니다.
Lambda 함수와 API Gateway 설정
Zappa를 통해 Slack 앱을 배포하면, 자동으로 AWS Lambda 함수와 API Gateway가 생성됩니다. Slack 앱에서 필요에 따라 이 함수와 게이트웨이를 구성할 수 있습니다.
Lambda 함수 설정은 AWS Lambda 콘솔에서 확인하고 수정할 수 있습니다.
API Gateway 설정은 AWS API Gateway 콘솔에서 확인하고 수정할 수 있습니다.
이제 파이썬으로 작성된 Slack 앱을 Zappa를 사용하여 배포하는 방법에 대해 알게 되었습니다. Zappa를 사용하면 서버리스 아키텍처를 활용하여 더 빠르고 확장 가능한 애플리케이션을 배포할 수 있습니다.