Présentation de Telegram Serverless

Telegram Serverless permet d'exécuter du code backend pour les bots et les Mini Apps directement sur l'infrastructure de Telegram, sans avoir besoin de serveurs, de conteneurs ou de gestion de mise à l'échelle. Les développeurs écrivent des modules JavaScript, les déployent avec une seule commande, et Telegram les exécute dans un environnement V8 isolé et rapide, situé à côté de l'API Bot et d'une base de données intégrée.

Fonctionnement de Telegram Serverless

Un projet Telegram Serverless se compose de trois types de code : les handlers, les librairies partagées et le schéma de base de données. Les handlers sont les points d'entrée du bot, les librairies partagées contiennent le code réutilisable, et le schéma de base de données définit les tables de données. Lorsqu'une mise à jour arrive, Telegram la route vers le handler correspondant, qui appelle la fonction par défaut et communique avec l'API Bot et la base de données via le SDK.

import { table, integer } from 'sdk/db';
   export const counters = table('counters', {
     chatId: integer('chat_id').primaryKey(),
     seen:   integer('seen').notNull().default(0),
   });

Exemple de bot et déploiement

Pour créer un bot, il faut d'abord activer la fonctionnalité Serverless dans @BotFather, puis utiliser la commande npx tgcloud push pour déployer les modules. La commande npx tgcloud migrate est utilisée pour créer les tables de base de données. Le bot peut ensuite être testé en envoyant un message à partir de Telegram.

npx tgcloud push       # upload the modules
   npx tgcloud migrate    # create the `counters` table

Avantages et limites de Telegram Serverless

Telegram Serverless offre une solution pratique pour les développeurs de bots et de Mini Apps, en leur permettant de se concentrer sur le code sans avoir à gérer les serveurs ou la mise à l'échelle. Cependant, il est important de noter que cette solution est spécifique à l'infrastructure de Telegram et peut ne pas être adaptée à tous les types de projets. Les développeurs doivent également prendre en compte les limites de la base de données intégrée et les exigences de sécurité pour leurs applications.