Zappa를 사용하여 파이썬으로 작성된 텔레그램 봇 배포하기

Zappa Logo

오늘은 파이썬으로 작성된 텔레그램 봇을 AWS Lambda와 API Gateway를 사용하여 배포하는 방법에 대해 알아보겠습니다. 배포를 위해 우리는 Zappa라는 파이썬 라이브러리를 사용할 것입니다. Zappa는 AWS Lambda 및 API Gateway를 사용하여 서버리스 웹 애플리케이션을 배포하도록 도와주는 도구입니다.

스텝 1: 가상환경 설정

첫 번째로, 프로젝트 폴더 내에서 가상 환경을 설정해야합니다. 가상 환경을 설정하는 이유는 프로젝트의 종속성을 격리하여 충돌을 방지하기 위함입니다.

python3 -m venv myenv
source myenv/bin/activate

스텝 2: 필수 패키지 설치

이제 필요한 패키지들을 설치해야 합니다. 우리는 Zappa와 텔레그램 API 클라이언트인 python-telegram-bot을 설치할 것입니다.

pip install zappa python-telegram-bot

스텝 3: Zappa 초기화

다음으로, Zappa를 초기화해야 합니다. 이 커맨드를 실행하면 zappa_settings.json 파일이 생성됩니다. 이 파일은 Zappa 설정을 정의하는 역할을 합니다.

zappa init

스텝 4: 텔레그램 봇 작성

이제 우리의 텔레그램 봇을 작성할 차례입니다. 여기에는 간단한 예제가 있습니다.

import telebot

TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN'
bot = telebot.TeleBot(TOKEN)

@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
    bot.reply_to(message, "Hello, welcome to my bot!")

@bot.message_handler(func=lambda message: True)
def echo_all(message):
    bot.reply_to(message, message.text)

bot.polling()

스텝 5: Zappa 배포

이제 Zappa를 사용하여 코드를 배포할 수 있습니다. 아래 커맨드를 실행하면 Zappa가 우리의 애플리케이션을 패키징하고 배포합니다.

zappa deploy dev

스텝 6: Webhook 설정

마지막으로, 텔레그램 웹훅(webhook)을 설정해야 합니다. 이를 통해 텔레그램 서버에서 메시지를 수신할 수 있습니다. 우리가 Zappa를 사용하면 자동으로 웹훅을 설정할 수 있습니다.

Zappa로 배포된 애플리케이션의 URL을 획득한 후, 다음과 같이 웹훅을 설정합니다.

bot.set_webhook(url='https://your-zappa-url.com', certificate=open('cert.pem', 'r'))

이제 텔레그램 봇이 배포되었고 사용할 준비가 되었습니다. 텔레그램에서 봇을 검색하고 대화를 시작해보세요!

#telegram #python