Здравствуйте, наверное ответ именно вам уже не актуален, но я отвечу для других, которые будут искать ответ на подобный вопрос!
Так: Я выбрал Фласк и PyTelegramBotApi, фласк можно не брать, но с ним мне было проще
# main.py
from flask import Flask
import telebot
app = Flask(__name__)
bot = telebot.TeleBot(os.getenv('TELEGRAM_BOT_TOKEN'), threaded=False)
@app.route('/' + os.getenv('TELEGRAM_BOT_TOKEN'), methods=['GET', 'POST'])
def telegram_bot_handler():
if flask.request.headers.get('content-type') == 'application/json':
json_string = flask.request.get_data().decode('utf-8')
update = telebot.types.Update.de_json(json_string)
bot.process_new_updates([update])
return json_string, 200
else:
print('You NOT made it!')
flask.abort(403)
@app.route('/set_webhook')
def set_webhook(): # чтобы легко можно было установить веб хук
bot.remove_webhook()
sleep(1)
try:
return str(bot.set_webhook('{}{}'.format(os.getenv('WEBHOOK_TELEGRAM'), os.getenv( 'TELEGRAM_BOT_TOKEN')))), 200
except telebot.apihelper.ApiException:
pass
return '', 200
@bot.message_handler(func=lambda message: True, commands=['help'])
def hello_command(message):
tg.bot.reply_to(message, "Help text")
В хендлере AWS Lambda указываем main:app