FastAPI Projelerini Deploy Etme

Yüksek performanslı FastAPI mikro servislerinizi Skyversal üzerinde Uvicorn ile saniyeler içinde deploy edin. ASGI yapılandırmaları ve ortam değişkenleri rehberi.

FastAPI Projelerini Deploy Etme

Pydantic destekli, modern ve aşırı hızlı yapısıyla FastAPI, yeni nesil REST API'ler için standart haline geliyor. Skyversal, FastAPI projelerinizi asenkron (ASGI) Uvicorn sunucusuyla anında yayına alır.

Okuma Süresi: 4 Dakika
Sunucu: Uvicorn
Standart: ASGI

Bu rehberde neler öğreneceksiniz?

  • Gerekli gereksinimler (Uvicorn zorunluluğu)
  • FastAPI app nesnesi algılama mantığı
  • Ortam değişkenleri (Environment Variables)
  • CORS ve Production ayarları

1. Gerekli Bağımlılıklar (requirements.txt)

FastAPI uygulamalarının production'da yüksek performansta (asenkron) çalışabilmesi için uvicorn sunucusuna ihtiyacı vardır. Bağımlılık dosyanızda şu iki paketin olduğundan emin olun:

requirements.txt
fastapi==0.110.0
uvicorn==0.27.1 # ASGI sunucusu olarak şarttır
# ... diğer bağımlılıklarınız

2. FastAPI Uygulaması Nasıl Algılanır?

Skyversal, bağımlılıklarınız arasında fastapi paketini gördüğünde projenizi otomatik olarak Uvicorn ile başlatır.

Bunun için Skyversal sırasıyla şu dosyalardaki app = FastAPI() nesnesini arar:

  • main.py (Standart FastAPI davranışı)
  • app.py
  • api.py
💡
Giriş Noktası Değiştirme (FASTAPI_APP)

Eğer uygulamanız klasör içinde veya farklı bir isimdeyse (örneğin src/server.py), Skyversal paneline gidip Settings > Environment Variables kısmına yeni bir değişken ekleyin:

Key: FASTAPI_APP
Value: src.server:app

3. CORS ve Ortam Değişkenleri

FastAPI ile bir API yazıyorsanız genellikle frontend tarafıyla (React, Vue vb.) haberleşirsiniz. Skyversal paneli üzerinden girdiğiniz URL'leri güvenli şekilde okuyarak CORS izinlerini ayarlayabilirsiniz:

from
fastapi
import
FastAPI
from
fastapi.middleware.cors
import
CORSMiddleware
import
os

app = FastAPI()

# Panel üzerinden Frontend URL'imizi alıyoruz
FRONTEND_URL = os.getenv('FRONTEND_URL', '*')

app.add_middleware(
    CORSMiddleware,
    allow_origins=[FRONTEND_URL],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

@app.get('/')
async def
root():
    
return
{"message": "FastAPI Skyversal Üzerinde Çalışıyor 🚀"}

Sık Karşılaşılan Hatalar (Troubleshooting)

Application failed health check

Çözüm: Uvicorn app nesnesini bulamıyor. Dosya isminizin main.py veya app.py olduğundan veya FASTAPI_APP değişkenini doğru tanımladığınızdan emin olun.

ModuleNotFoundError: No module named 'fastapi'

Çözüm: GitHub reponuzda requirements.txt dosyası yok veya yanlış dizinde.

Port In Use (EADDRINUSE)

Çözüm: Kodun en altında uvicorn.run(app, port=8000) çağrısı kullanıyorsanız bunu silebilirsiniz; Skyversal port yönetimini Uvicorn üzerinden otomatik yapar.

Hazırsınız! 🚀

Gerekli kütüphaneleri ekledikten sonra kodunuzu pushlayın. Skyversal, Uvicorn aracılığıyla FastAPI projenizi saniyeler içinde ayağa kaldıracaktır.

Son güncelleme: 27 Temmuz 2026
Bu sayfayı GitHub'da düzenle