بلاگ پاستا Python و API

هاست پایتون و FastAPI؛ راهنمای استقرار یک API پایدار

از انتخاب فرمان اجرا و نسخه Python تا اتصال PostgreSQL، تنظیم Health Check و رفع خطاهای رایج FastAPI در محیط Production.

۳ دقیقه مطالعه
تصویر مقاله هاست پایتون و FastAPI؛ راهنمای استقرار یک API پایدار

یک API پایتون فقط با اجرای uvicorn main:app به سرویس Production تبدیل نمی‌شود. نسخه Python، مدیریت وابستگی‌ها، تعداد Worker، اتصال دیتابیس و مسیر سلامت باید مشخص باشند. در این راهنما یک پروژه FastAPI را برای استقرار پایدار آماده می‌کنیم.

ساختار پیشنهادی پروژه FastAPI

فایل requirements.txt یا pyproject.toml را کنار سورس نگه دارید و نسخه وابستگی‌ها را تا حد ممکن ثابت کنید. برنامه باید یک شیء ASGI مشخص داشته باشد؛ برای نمونه app در فایل main.py.

  • main.py یا پکیج اصلی برنامه
  • requirements.txt یا فایل Poetry و uv
  • مسیر ساده مثل /health برای Health Check
  • Migrationهای دیتابیس در فرمان Release

فرمان اجرای درست

برای بار سبک می‌توانید Uvicorn را مستقیم اجرا کنید، اما برای مدیریت بهتر پردازش‌ها معمولاً Gunicorn با Workerهای Uvicorn انتخاب مناسب‌تری است:

gunicorn main:app -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:$PORT

پورت را ثابت ننویسید. پاستا مقدار PORT را در اختیار برنامه قرار می‌دهد و سرویس باید روی 0.0.0.0 گوش کند.

اتصال PostgreSQL و اجرای Migration

یک PostgreSQL مدیریت‌شده بسازید و آن را به پروژه متصل کنید تا DATABASE_URL به‌صورت امن در اختیار اپلیکیشن قرار گیرد. اجرای Alembic را به Release Command منتقل کنید تا پیش از انتشار نسخه جدید فقط یک بار اجرا شود:

alembic upgrade head

قرار دادن Migration در Startup هر Replica می‌تواند باعث اجرای هم‌زمان و قفل شدن دیتابیس شود.

Health Check و زمان شروع

مسیر سلامت باید سریع باشد و به سرویس‌های خارجی سنگین وابسته نباشد. اگر برنامه برای بارگذاری مدل یا Cache زمان نیاز دارد، Timeout اولیه را متناسب تنظیم کنید. پاسخ کد ۲۰۰ از مسیر سلامت، شرط ورود Replica به چرخه ترافیک است.

مصرف حافظه و تعداد Worker

هر Worker حافظه جدا مصرف می‌کند. برای پلن‌های کوچک با یک Worker شروع کنید و بعد از مشاهده مصرف CPU، حافظه و زمان پاسخ آن را افزایش دهید. اگر بار متغیر است، Autoscaling را بر اساس CPU یا حافظه فعال کنید؛ افزایش بی‌دلیل Worker روی پلن کوچک معمولاً باعث OOM می‌شود.

خطاهای رایج هاست پایتون

  • ModuleNotFoundError: وابستگی در فایل requirements ثبت نشده است.
  • Connection refused: آدرس دیتابیس یا نام متغیر محیطی اشتباه است.
  • Health Check failed: برنامه روی localhost یا پورت دیگری گوش می‌دهد.
  • Permission denied: برنامه تلاش می‌کند در مسیر فقط‌خواندنی بنویسد؛ برای داده پایدار Volume متصل کنید.

برای شروع، صفحه هاست پایتون پاستا و مستندات استقرار را ببینید.

هاست پایتونFastAPIPythonPostgreSQLAPI
آماده انتشارید؟

پروژه‌تان را به وب بیاورید.

کد را بدهید؛ پاستا ساخت، دامنه، HTTPS و مسیر اجرا را آماده می‌کند.

شروع استقرار
گفت‌وگو

نظرها

۰

هنوز نظری ثبت نشده است. اولین نفر باشید.

نظر شما

ایمیل شما منتشر نمی‌شود. نظرها پیش از نمایش بررسی می‌شوند.