دیپلوی پروژه پایتون روی Vercel: راهنمای جامع

دیپلوی پروژه پایتون روی Vercel: راهنمای جامع

Vercel یک پلتفرم محبوب برای دیپلوی وب‌اپلیکیشن‌ها و سایت‌های استاتیک است که به دلیل سادگی و سرعتش شناخته می‌شود. اگرچه Vercel در ابتدا برای پروژه‌های فرانت‌اند مانند React، Vue و Next.js طراحی شده بود، اما امکان دیپلوی پروژه‌های بک‌اند پایتون نیز با استفاده از Serverless Functions فراهم شده است. این مقاله به شما نشان می‌دهد که چگونه یک پروژه پایتون (Flask، Django، FastAPI) را روی Vercel دیپلوی کنید. این آموزش در دسته ‘دیپلوی و DevOps با پایتون’ قرار می‌گیرد.

پیش‌نیازها

قبل از شروع، اطمینان حاصل کنید که موارد زیر را دارید:

  • یک حساب کاربری در Vercel (https://vercel.com)
  • نصب Node.js و npm (یا yarn) روی سیستم خود
  • یک پروژه پایتون آماده (Flask، Django، FastAPI)
  • یک حساب کاربری در GitHub، GitLab یا Bitbucket (برای اتصال به Vercel)

مراحل دیپلوی

۱. آماده‌سازی پروژه پایتون

اولین قدم، آماده‌سازی پروژه پایتون برای دیپلوی روی Vercel است. این شامل ایجاد یک فایل requirements.txt و یک فایل vercel.json می‌شود.

الف) فایل requirements.txt

فایل requirements.txt شامل لیستی از تمام پکیج‌های پایتون مورد نیاز پروژه شما است. برای ایجاد این فایل، از دستور زیر در ترمینال استفاده کنید:

pip freeze > requirements.txt

این دستور تمام پکیج‌های نصب شده در محیط مجازی پروژه شما را در فایل requirements.txt ذخیره می‌کند.

ب) فایل vercel.json

فایل vercel.json به Vercel می‌گوید که چگونه پروژه شما را دیپلوی کند. این فایل در ریشه پروژه شما قرار می‌گیرد و شامل تنظیمات مختلفی است. یک مثال از فایل vercel.json برای یک پروژه Flask:

{
  "version": 2,
  "builds": [
    {
      "src": "app.py",
      "use": "@vercel/python"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "/app.py"
    }
  ]
}

در این مثال:

  • version: 2: نسخه فایل پیکربندی Vercel را مشخص می‌کند.
  • builds: آرایه‌ای از دستورالعمل‌های ساخت پروژه.
  • src: "app.py": فایل اصلی پایتون شما را مشخص می‌کند.
  • use: "@vercel/python": از बिल्डर پایتون Vercel استفاده می‌کند.
  • routes: آرایه‌ای از مسیرها که درخواست‌ها را به فایل پایتون شما هدایت می‌کنند.
  • src: "/(.*)": تمام درخواست‌ها را مطابقت می‌دهد.
  • dest: "/app.py": درخواست‌ها را به فایل app.py ارسال می‌کند.

برای پروژه‌های Django و FastAPI، فایل vercel.json ممکن است کمی متفاوت باشد. به مستندات Vercel برای هر فریم‌ورک مراجعه کنید.

۲. اتصال به Vercel

اکنون که پروژه شما آماده است، باید آن را به Vercel متصل کنید. این کار از طریق یک مخزن Git (GitHub، GitLab یا Bitbucket) انجام می‌شود.

الف) ایجاد مخزن Git

اگر پروژه شما هنوز در یک مخزن Git نیست، یک مخزن جدید ایجاد کنید و کد خود را به آن push کنید.

ب) ایمپورت پروژه در Vercel

وارد حساب کاربری Vercel خود شوید و روی دکمه “New Project” کلیک کنید. سپس مخزن Git خود را انتخاب کنید. Vercel به طور خودکار فایل requirements.txt و vercel.json را شناسایی می‌کند و تنظیمات لازم را انجام می‌دهد.

۳. پیکربندی متغیرهای محیطی

اگر پروژه شما به متغیرهای محیطی نیاز دارد (مانند کلیدهای API یا تنظیمات پایگاه داده)، باید آن‌ها را در Vercel پیکربندی کنید. در داشبورد پروژه Vercel، به بخش “Environment Variables” بروید و متغیرهای مورد نیاز خود را اضافه کنید.

۴. دیپلوی پروژه

پس از پیکربندی متغیرهای محیطی، Vercel به طور خودکار پروژه شما را دیپلوی می‌کند. این فرآیند ممکن است چند دقیقه طول بکشد. پس از اتمام دیپلوی، Vercel یک URL منحصر به فرد به شما می‌دهد که می‌توانید از آن برای دسترسی به پروژه خود استفاده کنید.

نکات مهم DevOps

۱. استفاده از محیط‌های مجازی

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

۲. مدیریت وابستگی‌ها

فایل requirements.txt را به طور منظم به‌روزرسانی کنید تا از آخرین نسخه‌های پکیج‌ها استفاده کنید و آسیب‌پذیری‌های امنیتی را برطرف کنید.

۳. تست خودکار

نوشتن تست‌های خودکار برای پروژه خود به شما کمک می‌کند تا از صحت کد خود اطمینان حاصل کنید و از بروز خطاها در محیط تولید جلوگیری کنید.

۴. مانیتورینگ و لاگینگ

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

۵. CI/CD

از یک سیستم CI/CD (Continuous Integration/Continuous Delivery) مانند GitHub Actions یا GitLab CI برای خودکارسازی فرآیند دیپلوی استفاده کنید. این کار به شما کمک می‌کند تا تغییرات کد خود را به سرعت و به طور مداوم دیپلوی کنید.

پیکربندی‌های خاص برای فریم‌ورک‌های مختلف

Flask

برای Flask، فایل vercel.json ارائه شده در بالا معمولاً کافی است. اطمینان حاصل کنید که فایل اصلی برنامه شما (مثلاً app.py) در ریشه پروژه قرار دارد.

Django

دیپلوی Django روی Vercel کمی پیچیده‌تر است. شما باید از یک سرور WSGI مانند Gunicorn استفاده کنید و فایل vercel.json را به گونه‌ای پیکربندی کنید که Gunicorn را اجرا کند. همچنین، باید تنظیمات Django را برای محیط تولید پیکربندی کنید.

FastAPI

FastAPI به طور طبیعی با Vercel سازگار است. فایل vercel.json مشابه Flask خواهد بود، اما باید فایل اصلی برنامه FastAPI خود را (مثلاً main.py) مشخص کنید.

عیب‌یابی

اگر در هنگام دیپلوی پروژه خود با مشکل مواجه شدید، مراحل زیر را دنبال کنید:

  • مطمئن شوید که فایل requirements.txt به درستی ایجاد شده است و تمام وابستگی‌های پروژه شما را شامل می‌شود.
  • فایل vercel.json را بررسی کنید و مطمئن شوید که تنظیمات آن صحیح است.
  • لاگ‌های Vercel را بررسی کنید تا ببینید آیا خطایی رخ داده است یا خیر.
  • متغیرهای محیطی را بررسی کنید و مطمئن شوید که به درستی پیکربندی شده‌اند.
  • اگر از یک فریم‌ورک خاص استفاده می‌کنید، به مستندات Vercel برای آن فریم‌ورک مراجعه کنید.

نتیجه‌گیری

دیپلوی پروژه‌های پایتون روی Vercel یک فرآیند ساده و سریع است. با دنبال کردن مراحل ارائه شده در این مقاله، می‌توانید به راحتی پروژه‌های Flask، Django و FastAPI خود را روی Vercel دیپلوی کنید و از مزایای این پلتفرم قدرتمند بهره‌مند شوید. با رعایت نکات DevOps، می‌توانید از عملکرد و پایداری پروژه خود اطمینان حاصل کنید.

بدون دیدگاه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *