Yandex cloud function не видит обработчика сообщений telebot'а

Я создал api gateway, который пересылает сообщения телеграма (черех вебхук) в queue. Сообщения из очереди функция хендлер видит и все с ними нормально. Однако затем обработчик сообщений команды /start вообще никак не реагирует на новое сообщение.

import telebot
import boto3
import os
import requests

#Переменные
API_TOKEN=os.getenv('API_TOKEN')
access_key_id=os.getenv('KEY_ID')
secret_access_key=os.getenv('SECRET_KEY')
endpoint=os.getenv('ENDPONT')

bot = telebot.TeleBot(API_TOKEN)

@bot.message_handler(commands=['start'])
def registration(message):
    #Проверка наличия пользователя в базе
    
    #Соединяемся с Хранилищем
    session = boto3.session.Session()

    database = boto3.resource(
        service_name='dynamodb',
        aws_access_key_id=access_key_id,
        aws_secret_access_key=secret_access_key,
        region_name='ru-central1',
        endpoint_url=endpoint
        )     
    
    forecast_users=database.Table('users')
                                                                
    response_availability = forecast_users.get_item(Key={"user_id":message.from_user.id})
    print('Поиск пользователя по базе...')
        
    if 'Item' in response_availability:
        bot.reply_to(message, "Вы уже подключены")
        print(f"chat_id: {message.chat.id}")
            
    else:
        with requests.get(PHOTO_URL) as photo:
            bot.send_photo(message.chat.id, photo)
        bot.reply_to(message, "Добро пожаловать! Подключил вас к рассылке ")
            
        #Добавление в базу
        forecast_users.put_item(Item={"user_id":message.from_user.id, "chat_id":message.chat.id})
        
def handler(event, context):
        
    body_message=event['messages'][0]['details']['message']['body']
    print(body_message)  
                     
    update = telebot.types.Update.de_json(body_message)
    bot.process_new_updates([update])

    return {'statusCode':200, 'body':"!"}

Ответы (1 шт):

Автор решения: Андрей Перешеин

Сообщения из API требуется передавать сразу в функцию. Структуры данных для вызова из api-gw и триггером отличаются, по этой причине telebot не реагирует на вызов триггером.

Примерная конфигурация api-gw, из документации

openapi: 3.0.0
info:
  title: Sample API
  version: 1.0.0
paths:
  /for-recognizer-bot-function:
    post:
      x-yc-apigateway-integration:
        type: cloud_functions
        function_id: <идентификатор_функции>
        service_account_id: <идентификатор_сервисного_аккаунта>
      operationId: for-recognizer-bot-function
→ Ссылка