FastAPI ile Sunucu Sağlık API'si Kodlama
Sunucu yönetiminde veya mikroservis mimarisinde, sağlık durumu API'leri kritik öneme sahiptir. Bu API'ler, izleme araçlarının ve yük dengeleme sistemlerinin, uygulamanın aktif ve sağlıklı olup olmadığını hızlıca kontrol etmesini sağlar. FastAPI, hafif ve yüksek performanslı yapısıyla bu tür health check endpoint'leri geliştirmek için ideal bir tercih.
İlk adım olarak, temel sağlık durumu kontrolü için bir endpoint oluşturmak yeterlidir. Basitçe, sunucunun temel kaynaklara erişimi veya belirli bağımlılıkların çalışıp çalışmadığını kontrol eden fonksiyonlar yazılır. Örneğin, veritabanı bağlantısı, cache servisi veya dış API çağrıları gibi.
Kod örneğiyle anlatırsak, şu şekilde başlayabiliriz:
123456789101112131415161718192021
from fastapi import FastAPI, HTTPException
app = FastAPI()
@app.get("/health")
async def health_check():
# Örnek: veritabanı bağlantısını kontrol
db_ok = check_database()
if not db_ok:
raise HTTPException(status_code=503, detail="Database connection failed")
# Diğer kontroller eklenebilir
return {"status": "healthy"}
def check_database():
# Veritabanı bağlantısını test eden fonksiyon
try:
# Bağlantı testi veya sorgu
return True
except:
return False
Bu temel yapı, uygulamanın genel sağlığını raporlar. Daha gelişmiş kontroller eklerken, örneğin, disk kullanımı, CPU durumu veya bağlı hizmetlerin durumu da eklenebilir. Ayrıca, güvenlik açısından, sadece iç erişim veya belirli IP'lere açık tutmak önemli.
Bir diğer önemli nokta, bu endpoint'in yüksek erişilebilirlik ve performans için minimal tutulmasıdır. Ayrıca, izleme araçlarının düzenli sorgulayabilmesi için yanıt süresi optimize edilmelidir.
Sizler de uygulamanızda health check API'si oluşturdunuz mu? Hangi kontrolleri ekliyorsunuz veya karşılaştığınız sorunlar nelerdir?