بازگشت به وبلاگ
    معرفی ابزار

    Telegram Serverless چیست؟ | ساخت و اجرای ربات تلگرام بدون نیاز به VPS

    تیم LinoTool

    نویسنده

    ۱۴۰۵/۶/۲۰
    5 دقیقه خواندن
    Telegram Serverless چیست؟ | ساخت و اجرای ربات تلگرام بدون نیاز به VPS

    Telegram Serverless چیست؟ ساخت و اجرای ربات تلگرام بدون خرید سرور

    اگر برای آنلاین نگه داشتن یک ربات تلگرامی مجبور شده‌اید VPS بخرید، هاست تهیه کنید یا دائماً درگیر تنظیمات سرور باشید، Telegram Serverless می‌تواند مسیر متفاوتی را پیش روی شما بگذارد.

    ایده اصلی ساده است: به‌جای اینکه کد ربات را روی سروری که خودتان مدیریت می‌کنید اجرا کنید، اجرای آن روی زیرساخت Serverless تلگرام انجام می‌شود. در نتیجه بخش قابل توجهی از دردسرهای مربوط به نگهداری سرور حذف می‌شود و توسعه‌دهنده می‌تواند تمرکز بیشتری روی خود ربات بگذارد.

    در این مطلب با Telegram Serverless، ابزار tgcloud، نحوه ساخت پروژه، اجرای محلی، Deploy و استفاده از SQLite آشنا می‌شویم.

    Telegram Serverless چیست؟

    در روش معمول ساخت ربات تلگرام، شما کد ربات را روی VPS یا یک سرویس میزبانی اجرا می‌کنید. یعنی باید محیط اجرا را آماده کنید، برنامه را همیشه فعال نگه دارید و در صورت بروز مشکل، خودتان آن را برطرف کنید.

    در معماری Serverless، این مدل تغییر می‌کند. زیرساخت اجرای کد توسط پلتفرم مدیریت می‌شود و شما بیشتر روی منطق برنامه تمرکز می‌کنید.

    برای ربات‌هایی که نیاز به یک بک‌اند دائمی دارند اما نمی‌خواهند از همان ابتدا هزینه و پیچیدگی VPS را تحمل کنند، این مدل می‌تواند جذاب باشد.

    برای شروع چه چیزی نیاز داریم؟

    اول از همه باید یک ربات تلگرام داشته باشید. ساخت و مدیریت ربات از طریق BotFather انجام می‌شود.

    ورود به BotFather

    تلگرام در مستندات رسمی خود نیز BotFather را ابزار اصلی ایجاد و مدیریت ربات‌ها معرفی می‌کند.

    مستندات رسمی Telegram Bots

    فعال کردن Serverless از BotFather

    در صورتی که قابلیت Serverless برای حساب شما فعال شده باشد، می‌توانید از داخل BotFather به گزینه مربوط به Serverless دسترسی پیدا کنید.

    مسیر موردنظر:

    Bot → Serverless → CLI Access

    در این مرحله یک توکن برای دسترسی CLI دریافت می‌کنید.

    این توکن را باید کاملاً محرمانه نگه دارید. آن را داخل GitHub، کانال تلگرام، کد عمومی یا فایل‌هایی که در اختیار دیگران قرار می‌دهید قرار ندهید.

    ساخت پروژه با tgcloud

    پس از آماده شدن دسترسی، می‌توانید پروژه ربات را با ابزار tgcloud ایجاد کنید.

    برای ساخت یک پروژه جدید:

    npm create @tgcloud/bot my-bot
    

    سپس وارد پوشه پروژه شوید:

    cd my-bot
    

    این روش باعث می‌شود قالب اولیه موردنیاز برای توسعه ربات ایجاد شود و بتوانید کدنویسی را از همان ساختار شروع کنید.

    اتصال پروژه به حساب Serverless

    بعد از ساخت پروژه، باید محیط توسعه را به حساب Serverless متصل کنید.

    برای این کار:

    npx tgcloud login
    

    با اجرای این دستور، پروژه شما برای استفاده از محیط Serverless آماده می‌شود.

    اجرای محلی ربات قبل از Deploy

    یکی از بخش‌های کاربردی این workflow این است که لازم نیست هر تغییر کوچک را مستقیماً روی محیط اصلی Deploy کنید.

    برای اجرای پروژه به‌صورت محلی:

    npx tgcloud run
    

    با این کار می‌توانید منطق ربات، پاسخ‌ها و رفتار برنامه را قبل از انتشار نسخه نهایی بررسی کنید.

    این روش مخصوصاً زمانی مفید است که هنوز در مرحله توسعه و تست هستید.

    Deploy ربات روی Telegram Serverless

    وقتی پروژه آماده شد، می‌توانید آن را روی محیط Serverless منتشر کنید:

    npx tgcloud push
    

    از این مرحله به بعد، کد ربات روی زیرساخت Serverless اجرا می‌شود و دیگر لازم نیست برای اجرای دائمی آن یک VPS جداگانه داشته باشید.

    البته این موضوع به معنای حذف تمام محدودیت‌های فنی نیست؛ پروژه همچنان باید با امکانات و محدودیت‌های محیط Serverless سازگار باشد.

    استفاده از SQLite برای ذخیره اطلاعات

    ربات‌های واقعی معمولاً فقط پیام دریافت و ارسال نمی‌کنند. خیلی از آن‌ها نیاز دارند اطلاعات کاربران، امتیازها، تنظیمات، سفارش‌ها یا وضعیت‌های مختلف را ذخیره کنند.

    برای چنین مواردی، Telegram Serverless امکان استفاده از SQLite را فراهم می‌کند.

    SQLite یک دیتابیس سبک و مبتنی بر فایل است که برای بسیاری از پروژه‌های کوچک و متوسط انتخاب مناسبی محسوب می‌شود.

    برای اعمال تغییرات دیتابیس در پروژه می‌توانید از:

    npx tgcloud migrate
    

    استفاده کنید.

    Telegram Serverless برای چه ربات‌هایی مناسب است؟

    این محیط می‌تواند برای پروژه‌های مختلفی کاربرد داشته باشد، مثلاً:

    • ربات‌های خدماتی
    • ربات‌های اطلاع‌رسانی
    • ربات‌های نظرسنجی
    • ربات‌های بازی
    • ربات‌های فروشگاهی
    • ربات‌های دارای سیستم امتیاز
    • ربات‌های متصل به سرویس‌های هوش مصنوعی

    البته مناسب بودن Serverless برای یک پروژه به میزان پردازش، وابستگی‌ها، منابع موردنیاز و معماری خود ربات بستگی دارد.

    مزیت Serverless نسبت به VPS چیست؟

    در یک VPS معمولی، شما مسئول بخش زیادی از زیرساخت هستید؛ از نصب محیط اجرا گرفته تا مدیریت سرویس و نگهداری سرور.

    اما در Serverless، این مسئولیت تا حد زیادی به پلتفرم منتقل می‌شود.

    در نتیجه برای یک پروژه ساده، ممکن است بتوانید بسیار سریع‌تر شروع کنید و نیازی به درگیر شدن با مدیریت مستقیم سرور نداشته باشید.

    آیا Telegram Serverless برای همه پروژه‌ها مناسب است؟

    خیر.

    اگر ربات شما به پردازش‌های سنگین، کتابخانه‌های خاص، فایل‌سیستم دائمی، کنترل کامل روی سیستم‌عامل یا سرویس‌های خاصی نیاز دارد، ممکن است یک VPS انتخاب مناسب‌تری باشد.

    همچنین بهتر است قبل از انتقال یک ربات بزرگ، محدودیت‌های محیط اجرا و APIهای در دسترس را بررسی کنید.

    برای آشنایی با قابلیت‌های رسمی ربات‌ها و API تلگرام:

    Telegram Bot API

    تفاوت Telegram Serverless با هاست معمولی

    در هاست معمولی، برنامه روی سروری اجرا می‌شود که منابع آن از قبل مشخص شده‌اند و شما یا شرکت ارائه‌دهنده باید محیط اجرای آن را مدیریت کنید.

    در Serverless، ایده اصلی این است که توسعه‌دهنده بیشتر با کد و منطق برنامه کار کند و زیرساخت اجرا توسط پلتفرم مدیریت شود.

    بنابراین Serverless بیشتر یک روش اجرای برنامه است تا یک نوع هاست معمولی.

    یک نکته مهم درباره توکن ربات

    توکن ربات در واقع کلید دسترسی به ربات شماست. اگر فرد دیگری به آن دسترسی پیدا کند، می‌تواند از طرف ربات درخواست ارسال کند و کنترل قابل توجهی روی آن داشته باشد.

    به همین دلیل، توکن را مثل یک رمز عبور در نظر بگیرید.

    تلگرام نیز در مستندات رسمی خود درباره محافظت از Bot Token تأکید کرده است.

    Telegram Bot Features

    آیا استفاده از Telegram Serverless رایگان است؟

    نباید صرفاً بر اساس عبارت «Serverless» تصور کرد که این سرویس همیشه و برای هر میزان استفاده کاملاً رایگان است.

    شرایط دسترسی، محدودیت منابع و سیاست‌های سرویس ممکن است تغییر کند. بنابراین قبل از انتقال پروژه اصلی، بهتر است آخرین شرایط رسمی Telegram Serverless را بررسی کنید.

    جمع‌بندی

    Telegram Serverless روشی برای اجرای ربات تلگرام است که بخش مهمی از مدیریت زیرساخت را از دوش توسعه‌دهنده برمی‌دارد. با ابزار tgcloud می‌توانید پروژه را ایجاد کنید، آن را به حساب Serverless متصل کنید، به‌صورت محلی اجرا کنید و در نهایت با push روی زیرساخت Serverless Deploy کنید.

    پشتیبانی از SQLite نیز باعث می‌شود این محیط برای ربات‌هایی که نیاز به ذخیره اطلاعات دارند کاربرد بیشتری پیدا کند.

    برای پروژه‌های ساده و متوسط، این روش می‌تواند جایگزین جذابی برای راه‌اندازی VPS باشد؛ اما برای ربات‌های سنگین یا پروژه‌هایی که به کنترل کامل سرور نیاز دارند، بهتر است محدودیت‌های محیط را قبل از مهاجرت بررسی کنید.

    منابع و لینک‌های مفید

    BotFather

    Telegram Bot API

    Telegram Bot Documentation

    مستندات رسمی Serverless و ابزارهای مربوط به آن

    اشتراک بگذارید

    درباره نویسنده

    تیم LinoTool

    تیمی متخصص در ایجاد ابزارهای کارآمد و آموزش بهتر