Azure App Service Linux’ta FastAPI Dağıtımı Sadeleşti

Azure App Service for Linux’ta FastAPI dağıtımlarında artık elle startup command tanımlama gereği azalıyor. Platform, belirli dosyalarda FastAPI içe aktarmasını tespit edip Gunicorn’u Uvicorn worker ile otomatik başlatıyor.

Azure App Service for Linux üzerinde FastAPI uygulamalarını çalıştırmak, uzun süredir küçük ama can sıkıcı bir ek adım gerektiriyordu: ASGI destekli bir sunucunun devreye girebilmesi için elle startup command tanımlamak. Azure App Service ekibinin duyurduğu son iyileştirmeyle bu adım ortadan kalkıyor. Platform artık FastAPI uygulamalarını otomatik tanıyıp uygun başlatma davranışını kendisi yapılandırıyor.

Bu yazıda kaynak duyuruya dayanarak neyin değiştiğine, tespit mantığının nasıl çalıştığına, uygulamanızı hangi komutun ayağa kaldırdığına ve birden fazla framework belirtisi olduğunda önceliklendirmenin nasıl yürüdüğüne bakacağız.

Önceki durumda ne yapmak gerekiyordu?

FastAPI, ASGI (Asynchronous Server Gateway Interface) tabanlı bir Python web framework’ü. Bu yüzden klasik WSGI sunucularıyla doğrudan çalışmaz; önünde Uvicorn gibi bir ASGI sunucusu ya da Uvicorn worker sınıfını kullanan bir Gunicorn yapılandırması bulunması gerekir.

App Service üzerinde Python uygulaması yayınlandığında bu yapılandırma otomatik yapılmıyordu. Geliştiricinin, uygulamanın doğru başlatılabilmesi için özel bir başlatma komutu girmesi bekleniyordu. FastAPI’yi App Service üzerinde ilk kez deneyen kullanıcılar için ek bir sürtünme noktasıydı bu.

Neyin değiştiği: Otomatik FastAPI tespiti

Azure App Service ekibinin duyurusuna göre platforma yerleşik bir tespit mantığı eklendi. Bir Python uygulaması dağıtıldığında App Service, yaygın giriş noktası dosyalarını tarayarak uygulamanın FastAPI olup olmadığını anlamaya çalışıyor.

Taranan dosya adları şunlar:

  • main.py
  • app.py
  • application.py
  • server.py
  • asgi.py
  • api.py
  • index.py
  • run.py

Bu dosyalardan herhangi biri from fastapi ya da import fastapi ifadesiyle FastAPI’yi içe aktarıyorsa App Service uygulamayı FastAPI olarak sınıflandırıyor.

Yanlış pozitiflerin önüne geçmek için bir güvenlik önlemi de var: Aynı dosyada Flask de içe aktarılmışsa, o dosya FastAPI tespiti sırasında atlanıyor. Böylece aynı projede iki framework’ün ipuçları birlikte bulunduğunda yanlış tanıma engellenmiş oluyor.

Uygulamanız nasıl başlatılıyor?

FastAPI olarak algılanan bir uygulama tespit edildiğinde App Service, Gunicorn’u Uvicorn worker sınıfıyla çalıştırıyor. Otomatik kullanılan komut şu:

gunicorn -k uvicorn_worker.UvicornWorker

Bu yapılandırma, FastAPI’nin ihtiyaç duyduğu ASGI desteğini doğrudan sağlıyor. Geliştiricinin bu komutu elle tanımlamasına gerek kalmıyor; runtime akışı uygun sunucu yapılandırmasını kendiliğinden devreye alıyor.

Birden fazla framework varsa öncelik sırası

Gerçek dünya projelerinde bir Python deposu içinde birden çok framework’e ait dosya ya da içe aktarma ifadesi bulunabilir. Bu tür durumlar için App Service’in izlediği bir öncelik sırası tanımlı:

  1. Django
  2. FastAPI
  3. Flask

Django, hem FastAPI hem Flask’a göre öncelikli. Özellikle bir alt dizinde wsgi.py dosyası bulunduğunda Django önceliği korunuyor. FastAPI ise Flask’ın önüne geçiyor. Bu sıralama, karışık ya da geçiş halindeki projelerde platformun hangi framework davranışını uygulayacağını belirlemek açısından önemli.

Bu değişiklik sizin için ne anlama geliyor?

Pratik sonuç net: Azure App Service for Linux üzerine bir FastAPI uygulaması dağıtırken, desteklenen runtime akışında artık özel bir startup command tanımlamanız gerekmiyor. Oryx build sistemi uygulamayı FastAPI olarak algılıyor ve başlatma davranışını otomatik yapılandırıyor.

Özellikle şu senaryolarda faydalı:

  • FastAPI’yi App Service üzerinde ilk kez deneyen geliştiriciler için giriş engelinin azalması.
  • CI/CD boru hatlarında startup command yönetimine ayrılan ek yapılandırmanın sadeleşmesi.
  • Şablon veya hızlı başlangıç projelerinde manuel adımların gerekmemesi.

Kurulum sırasında atlanması gereken bir adım daha ortadan kalkıyor ve FastAPI uygulamalarını App Service üzerinde ayağa kaldırmak daha az sürtünmeli hale geliyor.

Kullanılabilirlik

Duyuruya göre bu iyileştirme şimdilik Python 3.14 ve sonraki sürümler için etkinleştirilmiş durumda. Ek Python sürümlerine yönelik desteğin ilerleyen bir dağıtımla devreye alınacağı belirtiliyor. Daha eski Python sürümlerinde çalışan FastAPI uygulamalarının halihazırdaki startup command yaklaşımını sürdürmesi gerekiyor.

Özet

Azure App Service ekibinin FastAPI için eklediği otomatik tespit ve başlatma yapılandırması, Python geliştiricileri açısından küçük ama etkili bir kalite iyileştirmesi. Belirli dosya adlarında FastAPI içe aktarmasının bulunması yeterli; platform uygulamayı Gunicorn üzerinden Uvicorn worker’ı ile başlatıyor. Django önceliği korunurken FastAPI, Flask’ın önüne geçen bir konumda tanımlı. Değişiklik Python 3.14 ile kullanılabilir; gelecek dağıtımlarda daha geniş bir sürüm yelpazesine ulaşması planlanıyor.

Kaynaklar ve İleri Okuma

Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

2 Yorum

  1. Startup command’ı manuel yazarken her seferinde doğru syntax’ı hatırlamaya çalışmak gerçekten can sıkıcıydı, bu otomatik algılama işleri bayağı kolaylaştıracak. Bakalım production ortamında ne kadar güvenilir çalışıyor, birkaç edge case’de aynı başarıyı gösterebilir mi merak ediyorum. Bu arada şu yazınız da güzeldi: PowerShell 7.6 LTS Genel Kullanıma Sunuldu — https://www.askinkilic.com.tr/powershell-76-lts-genel-kullanima-sunuldu/

Yoruma kapalı.

✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Kategoriler
Ara
Paylaş
WhatsApp
İçindekiler
← Microsoft JavaOne 2026’d...
Entra External ID Native Auth&... →
📩

Gitmeden önce!

Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

📬 Haftalık bülten: Teknoloji + AI haberleri
Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.