""" Example of running PyTelegramBotAPI serverless in Amazon AWS LambdaÑŽ You have to set your lambda's url as telegram webhook manually https://core.telegram.org/bots/api#setwebhook """ import logging import telebot import json import os API_TOKEN = os.environ['TELEGRAM_TOKEN'] logger = telebot.logger telebot.logger.setLevel(logging.INFO) bot = telebot.TeleBot(API_TOKEN, threaded=False) def process_event(event): # Get telegram webhook json from event request_body_dict = json.loads(event['body']) # Parse updates from json update = telebot.types.Update.de_json(request_body_dict) # Run handlers and etc for updates bot.process_new_updates([update]) def lambda_handler(event, context): # Process event from aws and respond process_event(event) return { 'statusCode': 200 } # Handle '/start' and '/help' @bot.message_handler(commands=['help', 'start']) def send_welcome(message): bot.reply_to(message, ("Hi there, I am EchoBot.\n" "I am here to echo your kind words back to you.")) # Handle all other messages @bot.message_handler(func=lambda message: True, content_types=['text']) def echo_message(message): bot.reply_to(message, message.text)