Задать вопрос

Не могу запустить телеграм бота на Яндекс облаке?

Нашел гайд как запустить бота на облаке яндекса
Сделал все по инструкции только на aiogram
Вот код основного файла:
import logging
import common_hands

from aiogram import Bot, Dispatcher
from aiogram.utils import executor
from params import TOKEN

logging.basicConfig(level = logging.INFO)
bot = Bot(TOKEN)
dp = Dispatcher(bot)

common_hands.register_handlers_common(dp)

if __name__ == "__main__":
	executor.start_polling(dp, skip_updates=True)

Вот код файла с хендлерами:
from aiogram import Dispatcher, types
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton

# # # # # # # #
butt_quest1 = InlineKeyboardButton('Вопрос 1?', callback_data='q1')
butt_quest2 = InlineKeyboardButton('Вопрос 2?', callback_data='q2')
butt_quest3 = InlineKeyboardButton('Вопрос 3?', callback_data='q3')
butt_quest4 = InlineKeyboardButton('Вопрос 4?', callback_data='q4')
butt_quest5 = InlineKeyboardButton('Вопрос 5?', callback_data='q5')
butt_quest6 = InlineKeyboardButton('Я вообще не нашел своего вопроса )))))))', callback_data='q6')
butt_esc = InlineKeyboardButton('Вернуться к вопросам', callback_data='esc')
butt_boss = InlineKeyboardButton(text="К боссу", url='t.me/uhtoer')

html = types.ParseMode.HTML

# Команда Старт
async def start_butt(message: types.Message):
	
	keyboard = InlineKeyboardMarkup(row_width=1).add(butt_quest1, butt_quest2, butt_quest3, butt_quest4, butt_quest5, butt_quest6)
	
	await message.answer('')
	await message.answer(f"Привет,<b>{message.from_user.full_name}</b>!\nЯ твой помощник ЧаВо, давай выберем какой вопрос тебя интересует", reply_markup=keyboard, parse_mode=html)

# Команда 1 вопроса
async def quest_1(callback: types.CallbackQuery):

    keyboard = InlineKeyboardMarkup().add(butt_esc)

    await callback.message.edit_text(f'Ответ на 1-ый вопрос =)', reply_markup=keyboard, parse_mode=html)

# Команда 2 вопроса
async def quest_2(callback: types.CallbackQuery):

    keyboard = InlineKeyboardMarkup().add(butt_esc)

    await callback.message.edit_text(f'Ответ на 2-ый вопрос =)', reply_markup=keyboard, parse_mode=html)

# Команда 3 вопроса
async def quest_3(callback: types.CallbackQuery):

    keyboard = InlineKeyboardMarkup().add(butt_esc)

    await callback.message.edit_text(f'Ответ на 3-ый вопрос =)', reply_markup=keyboard, parse_mode=html)

# Команда 4 вопроса
async def quest_4(callback: types.CallbackQuery):

    keyboard = InlineKeyboardMarkup().add(butt_esc)

    await callback.message.edit_text(f'Ответ на 4-ый вопрос =)', reply_markup=keyboard, parse_mode=html)

# Команда 5 вопроса
async def quest_5(callback: types.CallbackQuery):

    keyboard = InlineKeyboardMarkup().add(butt_esc)

    await callback.message.edit_text(f'Ответ на 5-ый вопрос =)', reply_markup=keyboard, parse_mode=html)

# Команда 6 вопроса
async def quest_6(callback: types.CallbackQuery):

    keyboard1 = InlineKeyboardMarkup().add(butt_boss, butt_esc)

    await callback.message.edit_text(f"Тогда я хз что тебе сказать, шуруй к боссу", reply_markup=keyboard1, parse_mode=html)

# Кнопка возвращения к вопросам
async def esc(callback: types.CallbackQuery):
      
    keyboard = InlineKeyboardMarkup(row_width=1).add(butt_quest1, butt_quest2, butt_quest3, butt_quest4, butt_quest5, butt_quest6)

    await callback.message.edit_text(f"Привет!Я твой помощник ЧаВо, давай выберем какой вопрос тебя интересует", reply_markup=keyboard, parse_mode=html)

# -Для вызова ОСНОВНЫХ функций
def register_handlers_common(dp: Dispatcher):
        dp.register_message_handler(start_butt, commands='start')
        dp.register_callback_query_handler(quest_1, lambda c: c.data == 'q1')
        dp.register_callback_query_handler(quest_2, lambda c: c.data == 'q2')
        dp.register_callback_query_handler(quest_3, lambda c: c.data == 'q3')
        dp.register_callback_query_handler(quest_4, lambda c: c.data == 'q4')
        dp.register_callback_query_handler(quest_5, lambda c: c.data == 'q5')
        dp.register_callback_query_handler(quest_6, lambda c: c.data == 'q6')
        dp.register_callback_query_handler(esc, lambda c: c.data == 'esc')

Без облака все работает нормально, а вот в облаке в режиме тестирования выдает ошибку:
{
    "errorMessage": "There is no handler handler in module bot",
    "errorType": "HandlerImportError",
    "stackTrace": [
        "  File \"/function/runtime/runtime.py\", line 182, in load_handler\n    raise HandlerImportError('There is no handler {} in module {}'.format(func_name, file_name))\n"
    ]
}

Помогите, пожалуйста. Уже весь интернет перерыл, зависимости установил
  • Вопрос задан
  • 540 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    SMM-продвижение в Телеграме
    1 месяц
    Далее
  • GB (GeekBrains)
    Интернет-маркетолог
    12 месяцев
    Далее
  • Skillbox
    Профессия Интернет-маркетолог + ИИ
    12 месяцев
    Далее
Решения вопроса 1
nki
@nki
bezkart.ru готовая система лояльности
Я за основу брал вот это пример. Рабочий, проверял и дорабатывал на Яндекс облаке.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Kurmanova_Mariia
Уже поздно, но все же
1. Для того чтобы он не ругался, ему нужно буквами написать слово handler. Например, нужно добавить такую функцию:

def handler(event, context):
message = telebot.types.Update.de_json(event['body'])
bot.process_new_updates([message])
return {
'statusCode': 200,
'body': '!',
}
Часть с polling можно убрать.

2. Через тестирование он все равно нормально не запустит без polling, потому что запроса нет. Если уже настроен вебхук, то сразу заработает без тестирования
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы