Azure App Service’i Yapılandırma
Uygulamanızı dağıttıktan sonra, bir sonraki adım Azure App Service’inizin farklı yönlerini en iyi performans ve güvenlik için yapılandırmaktır. Bu bölü mde özel alan adlarını, kimlik doğrulamayı ve uygulama ayarlarını ele alacağız.
Özel alan adlarını yapılandırma
Varsayılan olarak, App Service’inize your-app-name.azurewebsites.net gibi bir URL ile erişilebilir. Ü retim ortamı uygulamaları için kendi alan adınızı kullanmak istersiniz. İşte özel bir alan adı nasıl kurulur:
- Hali hazırda bir alan adınız yoksa bir alan adı kayıt kuruluşundan satin alın
- App Service’inizde sol kenar çubuğundan "Custom domains" bölümüne gidin
- "Add custom domain" öğesine tıklayın
- Alan adınızı girin (örn.
myapp.example.com) - Alan adı sahipliğini doğrulamak için yönergeleri izleyin
- DNS ayarlarınıza bir
TXTveyaCNAMEkaydı eklemeniz gerekecek

Apex alan adları için (www olmadan example.com gibi) App Service’inizin IP adresine işaret eden bir A kaydı oluşturmanız gerekir. Bu IP adresini özel alan adı yapılandırma sayfasında bulabilirsiniz.
Ayrıca Azure CLI kullanarak da özel alan adlarını yönetebilirsiniz:
# Add a custom domain
az webapp config hostname add --webapp-name MyWebApp --resource-group MyResourceGroup --hostname www.example.com
SSL sertifikalarını bağlama
Güvenli uygulamalar için, özellikle hassas verileri işleyenlerde, HTTPS’i etkinleştirmek kritiktir. Azure App Service, ücretsiz yönetilen sertifikalar sağlayarak veya kendi sertifikanızı yüklemenize izin vererek bu süreci kolaylaştırır.
Bir SSL sertifikası eklemek için:
- App Service’inizde "TLS/SSL settings" bölümüne gidin
- "Private Key Certificates" öğesini seçin
- Aşağıdaki seçeneklerden birini tercih edin:
- Ücretsiz App Service yönetimli sertifika oluşturun
- Bir App Service sertifikası içe aktarın
- Bir PFX sertifikası yükleyin
- Sertifika eklendikten sonra "Bindings" bölümüne gidin
- Özel alan adınız için bir SSL bağlaması ekleyin
Hassas bilgi işleyen veri uygulamaları için, tüm trafiğin şifrelenmesini sağlamak üzere yalnızca HTTPS kipini etkinleştirmenizi öneririm:
- "TLS/SSL settings" içinde "HTTPS Only" bölümüne gidin
- Anahtarı "On" konumuna getirin
- "Save" öğesine tıklayın
Kimlik doğrulama ve yetkilendirmeyi yapılandırma
Birçok veri uygulaması, hassas verilere veya işlevlere erişimi kontrol etmek için kullanıcı kimlik doğrulaması gerektirir. Azure App Service, kodunuza kimlik doğrulama mantığı ekleme işini ortadan kaldırabilecek yerleşik kimlik doğrulama seçenekleri sunar.
Kimlik doğrulamayı kurmak için:
- App Service’inizde sol kenar çubuğundan "Authentication" bölümüne gidin
- "Add identity provider" öğesine tıklayın
- Kimlik sağlayıcınızı seçin:
- Microsoft (Azure AD)
- GitHub
- OpenID Connect
- Sağlayıcı ayarlarını yapılandırın
- Yönlendirme URL’lerini ve belirteç depolama yapılandırmalarını ayarlayın

Kurumsal veri uygulamaları için, mevcut kurumsal kimliklerle bütünleştirildiği ve koşullu erişim ile çok faktörlü kimlik doğrulama gibi özellikleri desteklediği için çoğunlukla Azure Active Directory tercih edilir.
Ayrıca, uygulamanıza kimlerin erişebileceğini kontrol etmek için yetkilendirme kısıtlamalarını da yapılandırabilirsiniz:
- Authentication ayarlarında, kimlik sağlayıcınızın yanındaki "Edit" seçeneğini seçin
- "Restrict access" altında şunlardan birini seçin:
- Kimliği doğrulanmamış isteklere izin ver
- Kimlik doğrulamasını zorunlu kıl
- Anonim isteklere izin ver (işlem yok)
- Gerekirse izin verilen harici yönlendirme URL’lerini yapılandırın
Uygulama ayarları ve bağlantı dizeleri
Uygulama ayarlarına kısaca değ inmiştik, ancak bunları veri uygulamanızı etkili bir şekilde yapılandırmak için nasıl kullanabileceğinize daha derinlemesine bakalım.
Azure App Service’deki uygulama ayarları, uygulamanız için ortam değişkenleri görevini görür. Özellikle şunlar için kullanışlıdır:
- Veritabanı bağlantı dizeleri
- API anahtarları
- Özellik bayrakları (feature flags)
- Çevreye özgü yapılandırmalar
Uygulama ayarları eklemek veya değiştirmek için:
- App Service’inizde sol kenar çubuğundan "Configuration" bölümüne gidin
- "Application settings" sekmesini seçin
- Bir anahtar-değer çifti eklemek için "New application setting" öğesine tıklayın
- Hassas değerler için, slot değişimleri sırasında takas edilmelerini önlemek için "deployment slot setting" seçeneğini açabilirsiniz

Veri uygulamaları için yaygın ayarlar şunları içerir:
- Veritabanı bağlantı dizeleri
- Depolama hesabı erişim anahtarları
- Makine öğrenmesi model uç nokta adresleri
- A/B testleri için özellik bayrakları
Ayrıca, özellikle veritabanı bağlantıları için kullanışlı olan bağlantı dizelerini ayrı olarak yapılandırabilirsiniz:
- Configuration sayfasında "Connection strings" sekmesini seçin
- "New connection string" öğesine tıklayın
- Bir ad, değer ve tür (SQL Server, MySQL, PostgreSQL, vb.) belirtin
Bağlantı dizeleri de uygulamanıza ortam değişkenleri olarak sunulur, ancak dil/çerçevenize bağlı olarak farklı bir adlandırma kuralı kullanılır.
Python uygulamanızda ayarları almak için:
import os
# Retrieve an application setting
api_key = os.environ.get('API_KEY')
# Retrieve a connection string (Python)
connection_string = os.environ.get('SQLCONNSTR_MyDatabase')
Key Vault referanslarını kullanma
Veritabanı kimlik bilgileri veya API anahtarları gibi çok hassas bilgiler için Azure Key Vault ek bir güvenlik katmanı sağlar. Sırlarınızı doğrudan uygulama ayarlarınızda referans gösterebilirsiniz:
- Bir Azure Key Vault oluşturun ve sırlarınızı ekleyin
- App Service’inizin yönetilen bir kimliğe sahip olduğundan emin olun
- Bu kimliğe Key Vault için erişim izni verin
- Uygulama ayarlarınızda şu biçimi kullanarak sırra referans verin: @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)
Bu yaklaşım, hassas bilgileri uygulama yapılandırmanızdan ayırarak merkezi sır yönetimi sağlar.
Azure App Service’i Ölçeklendirme ve Yönetme
Artık uygulamanız dağıtıldı ve yapılandırıldı; şimdi iyi performans göstermesini, güvenilir kalmasını ve değişen iş yüklerine uyum sağlamasını sağlamaya odaklanalım.
Azure App Service’i doğru ölçeklendirmek ve yönetmek, genellikle değişken kaynak ihtiyaçları olan ve hassas bilgiler işleyebilen veri uygulamaları için özellikle önemlidir.
App Service planlarını ölçeklendirme
Azure gibi bulut platformlarının en büyük avantajlarından biri, talebe göre kaynakları yukarı veya aşağı ölçeklendirme olanağıdır. Veri uygulamaları için bu özellikle değerlidir; çünkü iş yükleri çoğu zaman yoğun veri işlemeden, düşük trafikli sessiz dönemlere kadar önemli ölçüde değişir.
Azure App Service iki ana ölçeklendirme yöntemi sunar:
Dikey ölçeklendirme (Scale up/down)
Dikey ölçeklendirme, App Service planınızın boyutunu değiştirerek daha fazla veya daha az CPU, bellek ve disk alanı sağlamayı kapsar. Bu, uygulamanızın performansı tek bir örneğin kaynakları tarafından sıkıştırıldığı durumlarda kullanışlıdır.
Dikey olarak ölçeklendirmek için:
- App Service planınızda sol kenar çubuğundan "Scale up (App Service plan)" seçeneğini seçin
- İhtiyaçlarınıza göre farklı bir fiyatlandırma katmanı veya örnek boyutu seçin
- "Apply" öğesine tıklayın

Veri uygulamaları için, şu durumlarda dikey ölçeklendirmeyi değerlendirin:
- Büyük veri işleme işlemleri nedeniyle bellek baskısı yaşıyorsanız
- Model çıkarımı sırasında CPU sınırlarına ulaşıyorsanız
- Veri önbellekleme veya geçici dosyalar için ek depolamaya ihtiyacınız varsa
Yatay ölçeklendirme (Scale out/in)
Yatay ölçeklendirme, uygulamanızı çalıştıran sanal makine örneklerinin sayısını değiştirir. Bu yaklaşım, yükü dağıtmak ve kullanılabilirliği artırmak için idealdir.
Yatay olarak ölçeklendirmek için:
- App Service planınızda sol kenar çubuğundan "Scale out (App Service plan)" seçeneğini seçin
- Örnek sayısını el ile ayarlayın veya otomatik ölçeklendirme kurallarını yapılandırın
- "Save" öğesine tıklayın
El ile ölçeklendirme için, örnek sayısını istenen değere getirmeniz yeterlidir. Ancak, otomatik ölçeklendirme, metriklere dayalı olarak kaynakları otomatik ayarladığı için daha fazla esneklik sağlar.
Otomatik ölçeklendirme kurallarını ayarlama
Değişken iş yüklerine sahip veri uygulamaları için otomatik ölçeklendirme özellikle değerlidir. örneğin, bir makine öğrenmesi modeli sunan API, iş saatlerinde daha yüksek, gece ise daha düşük trafik görebilir.
Otomatik ölçeklendirmeyi yapılandırmak için:
- "Scale out" bölümünde "Enable autoscale" seçeneğini belirleyin
- Ş u bileşenlerle bir ölçek koşulu tanımlayın:
- Varsayılan örnek sayısı
- Ölçeğe genişletme kuralları (örnek ne zaman eklensin)
- Ölçeğe daraltma kuralları (örnek ne zaman kaldırılsın)
- İsteğe bağlı zamanlama tabanlı kurallar

İşte yaygın bir otomatik ölçeklendirme kuralı örneği:
- Scale out: CPU yüzdesi 10 dakika boyunca %70’in üzerindeyse bir örnek ekleyin
- Scale in: CPU yüzdesi 10 dakika boyunca %30’un altındaysa bir örnek kaldırın
Ayrıca şunlara dayalı daha sofistike kurallar da oluşturabilirsiniz:
- Bellek kullanımı
- Veri kuyruğu uzunluğu
- Application Insights’tan özel metrikler
Veri bilimi iş yükleri için şu otomatik ölçeklendirme stratejilerini düşünün:
- Uygulamanız makine öğrenmesi modelleri sunuyorsa, kestirim gecikmesini düşük tutmak için istek kuyruğu uzunluğuna göre ölçeklendirin
- ETL süreçleri için, bilinen işleme pencerelerinde ek kapasite planlayın
- Küresel kullanıcılara sahip uygulamalar için, farklı saat dilimlerinde yeterli kapasite sağlamak üzere zamanlama tabanlı ölçeklendirme kullanın
Azure CLI kullanarak da otomatik ölçeklendirmeyi yapılandırabilirsiniz:
# Create an autoscale setting with a rule to scale out when CPU > 70%
az monitor autoscale create --resource-group MyResourceGroup --resource MyAppServicePlan --resource-type "Microsoft.Web/serverfarms" --name MyAutoScaleConfig --min-count 2 --max-count 5 --count 2
# Add a scale out rule
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale out 1 --condition "Percentage CPU > 70 avg 10m"
# Add a scale in rule
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale in 1 --condition "Percentage CPU < 30 avg 10m"
İzleme ve Tanılama
Güvenilir veri uygulamalarını sürdürmek için etkili izleme kritik öneme sahiptir. Azure, uygulamanızın performansı, kullanım desenleri ve olası sorunları hakkında görünürlük sağlayan kapsam lı izleme araçları sunar.
Azure Monitor ve Application Insights
Azure Monitor, Azure hizmetlerinin izlenmesi için temel altyapıdır; Application Insights ise uygulamaya özgü daha derin içgörüler sağlar.
App Service’iniz için Application Insights’ı etkinleştirmek için:
- App Service’inizde sol kenar çubuğundan "Application Insights" öğesini seçin
- "Turn on Application Insights" öğesine tıklayın
- Yeni veya mevcut bir Application Insights kaynağı yapılandırın
- "Apply" öğesine tıklayın

Etkinleştirildikten sonra Application Insights, uygulamanızla ilgili çeşitli veriler toplar; bunlar şunları içerir:
- İstek oranları, yanıt süreleri ve hata oranları
- Bağımlılık çağrıları (veritabanları, harici API’ler)
- Sayfa görünüm performansı
- İstisna günlükleri
- Kodda tanımladığınız özel olaylar
Python uygulamaları için Application Insights SDK’sını yüklemeniz gerekir:
pip install opencensus-ext-azure
Ardından uygulamanıza araçlandırma ekleyin:
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer
# Configure the Azure exporter
azure_exporter = AzureExporter(
connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000'
)
# Create a tracer
tracer = Tracer(exporter=azure_exporter, sampler=ProbabilitySampler(1.0))
# Use the tracer in your application
with tracer.span(name="main_function"):
# Your code here
pass
Günlükleri görüntüleme ve uyarıları ayarlama
Azure App Service, sorunları tanılamanıza yardımcı olabilecek günlükleri otomatik olarak toplar:
- App Service’inizde "Log stream" seçeneğini belirleyerek gerçek zamanlı günlükleri görüntüleyin
- Daha ayrıntılı analiz için "Diagnostic logs" bölümüne gidin ve uygulama günlüğünü etkinleştirin
- Günlük düzeyini yapılandırın (Error, Warning, Information, Verbose)

Veri uygulamaları için özellikle şunlara dikkat edin:
- Büyük veri kümesi işlerken sık karşılaşılan bellek yetmedi hataları
- Veri kaynaklarına bağlantı zaman aşım ları
- Veri dönüşüm işlemleri sırasında performans darboğazları
Uyarıları ayarlamak, sorunlar kullanıcıları etkilemeden önce haberdar edilmenizi sağlar:
- Azure Monitor içinde "Alerts" bölümünü seçin
- "New alert rule" öğesine tıklayın
- Kaynak olarak App Service’inizi seçin
- Uyarıyı tetiklemesi gereken koşulu tanımlayın
- Kimin, nasıl bilgilendirileceğini belirlemek için eylem gruplarını yapılandırın
- Uyarınıza ad verin ve kaydedin
Veri uygulamaları için yaygın uyarılar şunları içerir:
- Yüksek bellek kullanımı (%80’den fazla)
- Sunucu hataları (5xx yanıtlar)
- Temel işlemler için uzun işleme süreleri
- Başarısız veri bağlantı denemeleri
Veri uygulamaları için özel izleme
Veriye özgü izleme ihtiyaçları için şu özel metrikleri izlemeyi düşünün:
- Veri işleme verimi (dakika başına işlenen kayıt)
- Model çıkarım gecikmesi
- Özellik (feature) hesaplama süresi
- Önbellek isabet/kaçırma oranları
SDK’yı kullanarak özel metrikleri Application Insights’a gönderebilirsiniz:
from opencensus.ext.azure import metrics_exporter
from opencensus.stats import aggregation, measure, stats, view
# Create a metrics exporter
exporter = metrics_exporter.new_metrics_exporter(
connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000')
# Create and record custom metrics
prediction_time = measure.MeasureFloat(
"prediction_time", "Time taken for model inference", "ms")
prediction_time_view = view.View(
"prediction_time_view", "Model inference time", [], prediction_time, aggregation.LastValueAggregation())
# Register the view
stats.stats.view_manager.register_view(prediction_time_view)
# Record metrics
mmap = stats.stats.stats_recorder.new_measurement_map()
mmap.measure_float_put(prediction_time, 175.5) # Record 175.5ms inference time
mmap.record()
# Force metrics to be sent immediately
exporter.export_metrics([])
Yedekleme ve Geri Yükleme
Veri uygulamaları genellikle değerli bilgileri yönetir; bu da yedekleme ve kurtarma yetkinliklerini zorunlu kılar. Azure App Service, uygulamanızın dosyalarını, yapılandırmasını ve bağlı veritabanlarını yakalayabilen yerleşik yedekleme işlevselliği sağlar.
Otomatik yedeklemeleri ayarlama
Yedeklemeleri yapılandırmak için:
- App Service’inizde sol kenar çubuğundan "Backups" bölümünü seçin
- "Configure" öğesine tıklayın
- Yedekleme zamanlamasını ayarlayın (günlük, haftalık veya özel)
- Yedek dosyaları için bir depolama hesabı belirtin
- İsteğe bağlı olarak veritabanlarını yedeklemeye dahil edin
- "Save" öğesine tıklayın

Veri uygulamaları için şu yedekleme en iyi uygulamalarını göz önünde bulundurun:
- Yedeklemeleri düşük etkinlik dönemlerinde zamanlayın
- Daha hızlı yedeklemeler için depolama hesabınızın App Service’inizle aynı bölgede olduğundan emin olun
- Sık veri değişikliği olan uygulamalar için daha sık yedeklemeler yapılandırın
- Büyük veritabanların yedekleme boyut sınırlarını aşabileceğini unutmayın; bu durumlar için veritabanına özgü yedekleme stratejilerini değerlendirin
Yedekten geri yükleme
Uygulamanızı geri yüklemeniz gerekirse:
- Backups bölümünde, geri yüklemek istediğiniz yedekleme noktasını seçin
- "Restore" öğesine tıklayın
- Uygulama içeriğini, yapılandırmayı ve bağlı veritabanlarını geri yükleyip yüklemeyeceğinizi seçin
- Hedef App Service’i belirtin (aynı uygulama veya farklı bir uygulama olabilir)
- Geri yükleme sürecini başlatmak için "OK" öğesine tıklayın
Kritik veri uygulamaları için, kurtarma stratejinizin beklendiği gibi çalıştığından emin olmak üzere geri yükleme sürecini dönems el olarak test etmenizi öneririm.
Veritabanına özgü yedekleme stratejileri
App Service yedeklemeleri bağlı veritabanlarını içerebilse de, veri yoğun uygulamalar genellikle veritabanına özgü yedekleme stratejilerinden fayda sağlar:
- Azure SQL veritabanları için nokta atış zaman kurtarmalı otomatik yedeklemeleri yapılandırın
- Cosmos DB için sürekli yedekleme kipini kullanın
- Azure Storage’da saklanan büyük veri kümesi için depolama hesabı çoğaltma ve sürüm oluşturmayı düşünün
Azure App Service’te Güvenlik ve Uyumluluk
Güvenlik, özellikle hassas ya da düzenlemeye tabi bilgileri işleyen veri uygulamaları için hayati öneme sahiptir. Azure App Service, uygulamalarınızı korumaya yardımcı olacak çeşitli güvenlik özellikleri sunar.
Rol tabanlı erişim denetimi (RBAC)
RBAC, App Service kaynaklarınızı kimin yönetebileceğini denetlemenizi sağlar:
- Azure Portal’da App Service’inize gidin
- Sol kenar çubuğunda "Access control (IAM)" öğesini seçin
- "Add"a ve ardından "Add role assignment"a tıklayın
- Uygun rolü seçin:
- Contributor: App Service’i yönetebilir ancak başkalarına erişim veremez
- Reader: Görüntüleyebilir ancak hiçbir şeyi değiştiremez
- Website Contributor: Web sitelerini yönetebilir ancak App Service planını yönetemez
- Rol ataması yapılacak kullanıcıları, grupları veya hizmet sorumlularını (service principal) seçin
- "Save"e tıklayın

Veri ekipleri için, iş sorumluluklarına göre belirli işlemlere erişimi sınırlayan özel roller oluşturmayı düşünün.
IP kısıtlamaları ve ağ iletişimi
IP kısıtlamaları, App Service’inize hangi IP adreslerinin erişebileceğini denetlemenizi sağlar:
- App Service’inizde sol kenar çubuğunda "Networking" öğesini seçin
- "Access Restrictions" bölümüne gidin
- "Add rule"a tıklayın
- IP adres aralığını, işlemi (Allow/Deny), önceliği ve adı belirtin
- "Add rule"a tıklayın
İç kaynaklara bağlanan veri uygulamaları için şunları göz önünde bulundurun:
- VNet Integration: App Service’inizi sanal ağınıza bağlayın
- Service Endpoints: SQL ve Storage gibi Azure hizmetlerine güvenli bağlantılar
- Private Endpoints: Sanal ağınızdan App Service’inize özel bağlantı oluşturun
VNet Integration kurmak için:
- Networking bölümünde "VNet Integration" öğesini seçin
- "Add VNet"e tıklayın
- Bir sanal ağ ve alt ağ (subnet) seçin veya oluşturun
- "OK"a tıklayın
Bu entegrasyon, ağınızdaki veritabanlarına veya diğer veri kaynaklarına güvenli biçimde bağlanmak için özellikle kullanışlıdır.
Yaygın Azure App Service Sorunlarını Giderme
Dikkatli planlamaya rağmen App Service’inizde sorunlar yaşanabilir. İşte özellikle veri uygulaması senaryolarına odaklanarak bazı yaygın problemler ve çözümleri.
Uygulama çakışmalarını teşhis etme
Uygulamanız çöküyor veya yanıt vermiyorsa:
- App Service günlüklerini kontrol edin:
- Gerçek zamanlı günlükler için "Log stream"e gidin
- Geçmiş veriler için "Diagnostic logs"u kontrol edin
- Hataları belirlemek için Application Insights kullanın
- Kudu tanılama araçlarını çalıştırın:
https://<your-app-name>.scm.azurewebsites.net/DebugConsoleadresine gidin- Dosyaları ve süreçleri incelemek için konsolu kullanın
Veri uygulamalarında çökme nedenlerinin yaygın olanları şunlardır:
- Bellek sınırları: Büyük veri kümelerini işlemek mevcut belleği aşabilir
- Bağımlılık sorunları: Eksik veya uyumsuz paketler
- Yapılandırma hataları: Hatalı bağlantı dizeleri veya ortam değişkenleri
Bellek yoğun işlemler için şunları değerlendirin:
- Daha fazla belleğe sahip daha yüksek bir katmana ölçekleme
- Daha küçük partileri işlemek için veri parçalama (chunking) uygulama
- Daha verimli algoritmalar veya veri yapıları kullanma
Performans sorunlarını hata ayıklama
Uygulamanız yavaş çalışıyorsa:
- Application Insights performans izlemesini kullanın:
- Yavaş istekleri belirlemek için Performance bölümünü kontrol edin
- Darboğaza neden olabilecek bağımlılık çağrılarını arayın
- Azure Monitor’da sunucu metriklerini inceleyin:
- CPU ve bellek kullanımı
- HTTP kuyruk uzunluğu
- Veri yoğun işlemler için veritabanı sorgu performansını kontrol edin
Performansı artırmak için:
- Sık yapılan sorgular için önbellekleme uygulayın
- Veritabanı indekslerini optimize edin
- Yukarı veya dışa doğru ölçeklemeyi değerlendirin
- Uzun süren işlemler için asenkron operasyonlar kullanın
Günlükleri ve hata iletilerini inceleme
Azure App Service çeşitli günlük seçenekleri sunar:
- Uygulama günlükleri: Uygulamanızın kendi günlükleri
- Web sunucusu günlükleri: HTTP istek ve hata günlükleri
- Dağıtım günlükleri: Dağıtım sürecinize ilişkin bilgiler
- Ayrıntılı hata günlüğü: HTTP hataları hakkında daha fazla bilgi
Daha ayrıntılı günlüğü yapılandırmak için:
- App Service’inizde "Diagnostic logs"a gidin
- Uygun günlük türlerini etkinleştirin
- Uygun düzeyi ayarlayın (Error, Warning, Information, Verbose)
- Günlüklerin dosya sisteminde mi yoksa blob depolamada mı saklanacağını seçin
Python uygulamaları için günlüğü şu şekilde güçlendirebilirsiniz:
import logging
import sys
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[
logging.StreamHandler(sys.stdout)
]
)
# Use logging in your application
logger = logging.getLogger(__name__)
logger.info("Processing data batch")
logger.error("Failed to connect to database", exc_info=True)
Azure App Service ile Maliyet Yönetimi
Veri uygulamaları sıklıkla önemli kaynaklar tüketebilir; bu nedenle maliyetleri anlamak ve optimize etmek özellikle önemlidir. Bu son bölümde Azure App Service fiyatlandırma modellerini ve maliyetleri etkili şekilde yönetme stratejilerini inceleyeceğiz.
Azure App Service fiyatlandırmasını anlama
Azure App Service fiyatlandırması esas olarak seçtiğiniz App Service planına dayanır. Dikkate alınacak maliyet unsurlarını parçalara ayıralım:
App Service plan katmanları
Daha önce ele aldığımız gibi Azure, her biri farklı yeteneklere ve maliyetlere sahip çeşitli fiyatlandırma katmanları sunar:
|
Katman |
Aylık maliyet aralığı (USD) |
Özellikler |
En uygun kullanım |
|
Free |
$0 |
1GB depolama, paylaşımlı altyapı, günde 60 dakika işlem |
Geliştirme, öğrenme |
|
Shared (D1) |
$10-15 |
1GB depolama, günde 240 dakika işlem |
Düşük trafikli siteler, test |
|
Basic (B1-B3) |
$55-220 |
Adanmış VM’ler, manuel ölçek, özel etki alanları |
Canlı iş yükleri, düşük ila orta trafik |
|
Standard (S1-S3) |
$70-400 |
Otomatik ölçekleme, hazırlık yuvaları, günlük yedeklemeler |
Değişken trafiğe sahip üretim uygulamaları |
|
Premium (P1V2-P3V2) |
$80-500 |
Geliştirilmiş performans, daha fazla ölçekleme seçeneği |
Yüksek performans gereksinimleri, büyük uygulamalar |
|
Isolated |
$300-1000+ |
Adanmış ağ/işlem izolasyonu |
Sıkı uyumluluk gereksinimleri olan uygulamalar |
Not: Fiyatlar yaklaşık olup bölgeye veya Azure fiyatlandırmasındaki değişikliklere göre farklılık gösterebilir. En güncel bilgi için resmi fiyatlandırma sayfasına bakın.
Ek maliyet unsurları
Temel App Service planının ötesinde, şu ek maliyetleri dikkate alın:
- Giden veri aktarımı: Aylık ilk 5GB’tan (ücretsiz) sonra giden veri aktarımı ücretlendirilir. Büyük veri kümelerini kullanıcılara sunan veri uygulamaları için bu önemli hale gelebilir.
- SSL sertifikaları: Azure ücretsiz sertifikalar sunsa da, özel sertifikalar ek maliyetlidir.
- Özel etki alanları: İlk özel etki alanı ücretsizdir, ancak ek alanlar için ücret alınabilir.
- Depolama: Katmanınızda yer alanın ötesindeki ek depolama için ekstra ücret alınır.
- Eklentiler ve bağlı hizmetler: Veritabanları, önbellek hizmetleri ve App Service’inize bağlı diğer Azure kaynakları kendi ücretlerine tabidir.
Maliyetleri izleme
Azure, harcamalarınızı izlemek ve tahmin etmek için araçlar sağlar:
- Azure cost management: Azure Portal’da bu araca erişerek kaynak bazında maliyetleri görüntüleyebilir, bütçeler belirleyebilir ve uyarılar oluşturabilirsiniz.
- Pricing calculator: Azure Pricing Calculator’ı kullanarak dağıtımdan önce maliyetleri tahmin edin.
- Advisor recommendations: Azure Advisor, kullanım kalıplarınıza göre maliyet optimizasyonu önerileri sunar.
> Azure hizmetleri genelinde maliyet, güvenlik ve performansı etkili şekilde yönetmek için Azure Management and Governance kursu şiddetle tavsiye edilir.
Maliyet optimizasyon stratejileri
Artık fiyatlandırma modelini anladığımıza göre, Azure App Service üzerindeki veri uygulamaları için maliyetleri optimize etme stratejilerini inceleyelim.
App Service planınızı doğru boyutlandırma
Maliyetleri kontrol etmenin en etkili yollarından biri, uygun App Service planını kullandığınızdan emin olmaktır:
- Uygun bir temel ile başlayın: Yüksek katmanlı bir plana varsayılan olarak geçmek yerine, orta seviyede başlayın ve yalnızca gerektiğinde yukarı ölçekleyin.
- Kaynak kullanımını izleyin: CPU, bellek ve disk kullanımını izlemek için Azure Monitor’u kullanın. Sürekli olarak %50’nin altında kalıyorsanız küçültmeyi düşünün.
- Katmanı iş yükünüzle eşleştirin: Öngörülebilir, istikrarlı iş yüklerine sahip veri uygulamaları için Basic veya Standard katman yeterli olabilir. Yoğun performans gereksinimleri olan uygulamalar için Premium katmanları ayırın.
Veri bilimi uygulamaları için şu özel önerileri göz önünde bulundurun:
- Model sunum API’leri düşük gecikme gereksinimleri ancak orta trafik ile genellikle otomatik ölçeklemeli Standard planlarda iyi çalışır.
- Zamanlanmış çalışan veri işleme hatları, işlem süresi kritik değilse sıklıkla Basic planları kullanabilir.
- Etkileşimli panolar çok sayıda eşzamanlı kullanıcıyla yanıt verebilirliği korumak için genellikle Standard veya Premium planlar gerektirir.
Otomatik ölçeklemeyi etkili kullanma
Otomatik ölçekleme yalnızca trafik sıçramalarını karşılamak için değildir—aynı zamanda güçlü bir maliyet optimizasyon aracıdır:
- Mümkünse sıfıra ölçekleyin: Kritik olmayan uygulamalar veya geliştirme ortamları için, mesai dışı saatlerde en az sıfır örneğe inecek şekilde yapılandırmayı düşünün.
- Uygun ölçekleme eşikleri belirleyin: Çok agresif şekilde dışa ölçeklemeyin. Muhafazakâr eşiklerle başlayın (ör. %70 CPU) ve performans gözlemlerine göre ayarlayın.
- Zamanlanmış ölçekleme uygulayın: Öngörülebilir iş yükleri için, metrik tabanlı otomatik ölçekleme yerine zamanlanmış ölçekleme kuralları kullanın. Örneğin, iş saatlerinde ölçeği artırın, gece ve hafta sonlarında düşürün.
# Example: Create a scheduled autoscale rule to scale down at night
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale to 1 --condition "Current time is between 22:00 and 06:00 recurring"
Geliştirme ve test ortamlarını optimize etme
Geliştirme ve test ortamları önemli maliyet tasarrufu fırsatları sunar:
- Mümkün olduğunda Free veya Shared katmanını kullanın geliştirme ortamları için.
- Otomatik kapatma uygulayın üretim dışı ortamlar için mesai dışı saatlerde. App Service yerleşik bir kapatma özelliğine sahip olmasa da, uygulamaları bir zamanlamaya göre durdurup başlatmak için Azure Automation veya Logic Apps kullanabilirsiniz.
- Dağıtım yuvalarından verimli yararlanın: Hazırlık için ayrı ortamlar sürdürmek yerine tek bir üretim App Service içinde dağıtım yuvaları kullanın. Bu yaklaşım, maliyetleri kopyalamadan ortam değişimi yapmanızı sağlar.
# Create a staging slot
az webapp deployment slot create --name MyWebApp --resource-group MyResourceGroup --slot staging
# Swap staging to production
az webapp deployment slot swap --name MyWebApp --resource-group MyResourceGroup --slot staging --target-slot production
Veriye özgü maliyet optimizasyonları
Veri uygulamaları için şu özel maliyet tasarrufu yaklaşımlarını değerlendirin:
- Ağır işlemleri dışarı aktarın: Yoğun veri işlemlerini App Service içinde yapmak yerine Azure Functions (sunucusuz işlem) veya Azure Data Factory (ETL iş akışları) gibi adanmış hizmetleri kullanmayı düşünün.
- Önbellekleme uygulayın: Sık değişmeyen veriler için önbellekleme yaparak veritabanı çağrılarını ve hesaplamayı azaltın. Azure Cache for Redis, App Service ile iyi entegre olur.
- Veritabanı maliyetlerini optimize edin: Çoğunlukla App Service’inize bağlı veritabanının maliyeti, App Service’in kendisinden daha fazladır. Şunları değerlendirin:
- SQL veritabanları için esnek havuzlar (elastic pools) kullanma
- Uygun indeksleme uygulama
- Daha seyrek erişilen veriler için katmanlı depolama kullanma
- Yanıtları sıkıştırın: Kullanıcılara büyük veri kümeleri sunan uygulamalar için, giden veri aktarım maliyetlerini azaltmak üzere sıkıştırmayı etkinleştirin:
# Example for Flask applications
from flask import Flask
from flask_compress import Compress
app = Flask(__name__)
Compress(app)
Veri Uygulamaları için İleri Düzey Teknikler
Maliyet optimizasyonunun ötesinde, Azure App Service üzerindeki veri uygulamalarınızın performansını ve yeteneklerini artırmak için çeşitli ileri düzey teknikler vardır.
Veri uygulamalarını konteynerleştirme
Konteynerler, ortamlar arasında tutarlılık sağlar ve bağımlılık yönetimini basitleştirebilir—karmaşık gereksinimlere sahip veri uygulamalarında yaygın bir zorluktur:
- Azure Portal’da yeni bir Web App oluşturun
- Yayınlama seçeneğinde "Code" yerine "Docker Container"ı seçin
- Single Container’ı seçin ve Docker imgenizi belirtin
Veri bilimi uygulamaları için, NumPy, pandas ve scikit-learn gibi yaygın kullanılan kitaplıkları içeren bir temel konteyner imgesi korumayı düşünerek dağıtımları hızlandırabilirsiniz.
Veri iş akışları için CI/CD uygulama
Temel CI/CD’nin ötesine geçerek, özellikle veri uygulamaları için otomatik testler uygulamayı düşünün:
- Veri doğrulama testleri: Veri işlemenin beklenen sonuçları ürettiğini doğrulayın
- Model performans testleri: ML modellerinin doğruluk ve performans eşiklerini karşıladığından emin olun
- Yük testi: Uygulamanın beklenen veri hacimlerini kaldırdığını doğrulayın
Bir veri uygulaması için GitHub Actions iş akışı örneği:
name: Data App CI/CD
on:
push:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pytest pytest-cov
- name: Test with pytest
run: |
pytest tests/data_validation_tests.py
pytest tests/model_performance_tests.py
deploy:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Deploy to Azure
uses: azure/webapps-deploy@v2
with:
app-name: 'my-data-app'
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
Arka plan işlemleri için WebJobs kullanma
Arka plan işlemleri gerektiren veri uygulamaları için Azure WebJobs, App Service’inizle aynı bağlamda komut dosyaları veya programlar çalıştırmanın bir yolunu sunar:
- App Service’inizde sol kenar çubuğunda "WebJobs"a gidin
- "Add"a tıklayın
- Komut dosyası dosyanızı yükleyin (ör. veri işleme için bir Python betiği)
- Tetikleyici türünü seçin (manuel, zamanlanmış veya sürekli)
- "OK"a tıklayın
WebJobs özellikle şunlar için kullanışlıdır:
- Zamanlanmış veri temizliği
- Düzenli rapor oluşturma
- Periyodik model yeniden eğitimi
- Sistemler arası veri senkronizasyonu
Şirket içi veriler için hibrit bağlantı
Birçok kuruluşun şirket içinde kalan verileri vardır. Azure App Service bu verilere şu yöntemlerle bağlanabilir:
- VNet integration: App Service’inizi, ExpressRoute veya VPN üzerinden şirket içi ağınıza bağlantısı olan bir sanal ağa bağlayın.
- Hybrid connections: VPN gerektirmeyen, App Service’inizin belirli şirket içi sunuculara ana bilgisayar adı ve bağlantı noktası ile erişmesine olanak tanıyan daha basit bir alternatiftir.
Hybrid Connections kurmak için:
- App Service’inizde sol kenar çubuğunda "Networking" öğesini seçin
- "Hybrid Connections"a gidin
- "Add hybrid connection"a tıklayın
- Yeni bir tane oluşturun veya mevcut bir bağlantıyı kullanın
- Uç nokta ana bilgisayar adını ve bağlantı noktasını belirtin
- Şirket içi sunucunuza Hybrid Connection Manager’ı yükleyin
Veri uygulamaları için özellik bayrakları (feature flags) uygulama
Özellik bayrakları, işlevleri seçici biçimde etkinleştirmenizi sağlar; bu da veri özelliklerinde A/B testleri yapmak veya yeni modelleri kademeli olarak yayına almak için değerlidir:
{
"FeatureFlags": {
"NewRecommendationModel": false,
"AdvancedDataFiltering": true
}
}
Bu bayrakları kodunuzda okuyun:
import os
import json
feature_flags = json.loads(os.environ.get('FeatureFlags', '{}'))
use_new_model = feature_flags.get('NewRecommendationModel', False)
if use_new_model:
# Use new recommendation model
else:
# Use existing model
Bu yaklaşım, yeni özellikleri kullanıcıların bir alt kümesiyle test etmenize veya sorunlu özellikleri yeniden dağıtım yapmadan hızla devre dışı bırakmanıza olanak tanır.
> ML modellerinin dağıtımını otomatikleştirmeyi daha derinlemesine incelemek için CI/CD for Machine Learning kursuna göz atın.
Sonuç
Bu eğitim boyunca, veri uygulamaları için Azure App Service’i nasıl kuracağınızı, dağıtacağınızı, yapılandıracağınızı, ölçekleyeceğinizi ve optimize edeceğinizi ele aldık. İlk App Service’inizi oluşturmaktan otomatik ölçekleme ve hibrit bağlantı gibi ileri düzey özellikleri uygulamaya kadar, artık Azure’un platformundan veri iş yükleriniz için yararlanacak bilgiye sahipsiniz.
Öne çıkan noktalar
- Azure App Service, tamamen yönetilen bir platform sunar; bu sayede veri profesyonelleri altyapı yönetimi yerine uygulama mantığına odaklanabilir.
- Birden çok dağıtım seçeneği, GitHub, Azure DevOps veya yerel Git depoları kullanıyor olun fark etmeksizin mevcut geliştirme iş akışınızla sorunsuz entegrasyon sağlar.
- Ölçekleme yetenekleri, uygulamanızın geliştirme testlerinden üretim trafiği artışlarına kadar değişen iş yüklerini karşılamasını sağlar.
- Yerleşik izleme ve tanılama araçları, veri uygulamalarına özel metriklerle güvenilirliği ve performansı korumaya yardımcı olur.
- Maliyet optimizasyon stratejileri, özellikle kaynak yoğun veri iş yükleri için, harcamaları en aza indirirken değeri en üst düzeye çıkarmanıza olanak tanır.
Sonraki adımlar
Azure App Service yolculuğunuza devam etmek için şunları keşfetmeyi düşünün:
- Azure ML ile entegrasyon: Azure Machine Learning’de eğitilen modelleri kestirim için App Service’inize dağıtın.
- Azure Functions: App Service uygulamalarınızı tamamlayan, olaya dayalı, sunucusuz işlem.
- Azure API Management: Veri hizmetlerinizi açığa çıkaran API’leri güvenceye almak ve yönetmek için.
- Azure Logic Apps: App Service’iniz ile diğer veri kaynakları arasında iş akışı otomasyonu için.
- Microsoft Azure Fundamentals öğrenim yolu, sertifikaya hazırlanıyorsanız veya yapılandırılmış öğrenme istiyorsanız da harika bir kaynaktır.
Bulut dünyasının hızla evrildiğini unutmayın; bu nedenle, veri uygulamalarınızı geliştirebilecek yeni özellikler ve hizmetler için Azure güncellemeler sayfasını takip edin!

Makine öğrenmesi, veri bilimi, kantitatif modelleme, yazılım mühendisliği, DevOps ve bulut bilişimi dâhil geniş bir teknik geçmişe sahiptir.

Uygulamaları verimli bir şekilde dağıtmak, onları geliştirmek kadar önemli hale geldi. Bir veri uzmanı olarak, modellerimizi ve uygulamalarımızı mükemmelleştirmeye ciddi zaman ayırırken, dağıtım sürecinin bazen arka planda kaldığını sıkça gördüm. İşte bu noktada Azure App Service devreye giriyor—dağıtımı basitleştirirken ölçeklenebilirlik, güvenlik ve izleme için sağlam özellikler sunan bir platform.
Bu kapsamlı eğitimde, Azure App Service üzerinde uygulama kurulumunu, dağıtımını ve ölçeklendirmeyi adım adım anlatacağım.
İlk uygulamasını dağıtmak isteyen bir junior veri uzmanı olun ya da bulut altyapınızı optimize etmek isteyen deneyimli bir profesyonel, bu kılavuz pratik adımlar ve en iyi uygulamalar sunacaktır.
Azure App Service Nedir?
Azure App Service, temel altyapıyı yönetmeden web uygulamaları oluşturup barındırmanıza olanak tanıyan Microsoft’un Hizmet Olarak Platform (PaaS) teklifidir. Python, Java, Node.js, .NET ve daha fazlası dahil olmak üzere birden çok programlama dili ve çerçeveyi desteklemek üzere tasarlanmıştır.
Kurulum sürecine dalmadan önce, Azure App Service’i veri uzmanları için özellikle değerli kılan şeyleri anlayalım:
Bir veri bilimci veya mühendisi olarak, App Service’in Azure Functions veya Azure Kubernetes Service gibi diğer Azure hizmetlerinden nasıl ayrıldığını merak ediyor olabilirsiniz. Temel fark, App Service’in mükemmel bir orta yol sunmasıdır—sunucusuz seçeneklerden daha fazla esneklik, konteyner orkestrasyon platformlarından daha az karmaşıklık.
> Azure’un ekosistemi ve hizmetlerine ilişkin temel bir genel bakış için Microsoft Azure’a giriş kursunu inceleyin.
Azure App Service’i Kurma
Artık Azure App Service’in ne olduğunu anladığımıza göre, işe koyulup ilk App Service’imizi kuralım. Süreç iki ana adımdan oluşur: bir App Service planı oluşturmak ve ardından bu plan içinde bir web uygulaması oluşturmak.
Azure App Service planı oluşturma
Bir App Service planı; uygulamalarınız için bilgi işlem kaynaklarını, bölgeyi ve fiyatlandırma katmanını tanımlar. Bunu, uygulamalarınızın çalışacağı sunucu çiftliği olarak düşünebilirsiniz. Birden çok uygulama tek bir App Service planını paylaşabilir; bu da birden fazla küçük uygulamayı çalıştırmak için maliyet etkinlik sağlar.
App Service planı şöyle oluşturulur:
Fiyatlandırma katmanlarından söz açılmışken, Azure App Service birkaç seçenek sunar:
Katman
Özellikler
En uygun kullanım
Free
1GB depolama, paylaşılan altyapı, günde 60 dakika işlem
Geliştirme ve test
Shared
1GB depolama, günde 240 dakika işlem
Düşük trafikli uygulamalar, geliştirme
Basic
10GB depolama, adanmış VM’ler, özel alan adları
Orta trafikli üretim iş yükleri
Standard
50GB depolama, otomatik ölçeklendirme, aşama slotları
Daha yüksek trafikli üretim uygulamaları
Premium
250GB depolama, geliştirilmiş performans, daha fazla ölçeklendirme seçeneği
Kurumsal uygulamalar, yüksek performans ihtiyaçları
Veri uygulamaları için, üretimde genellikle en az Basic katmanla başlamayı öneririm; çünkü veri işleme çoğu zaman basit web sunumundan daha fazla kaynak gerektirir. Önemli hesaplama gücü gerektiren makine öğrenimi modelleri sunuyorsanız, otomatik ölçeklendirme özellikleri nedeniyle Standard katmanı düşünün.
Bir App Service planını Azure CLI ile de oluşturabilirsiniz:
App Service web uygulaması oluşturma
Bir App Service planınız olduğunda, bunun içinde bir web uygulaması oluşturabilirsiniz. Web uygulaması, kodunuzu çalıştıracak olan gerçek uygulama örneğidir.
Bir web uygulaması oluşturmak için şu adımları izleyin:
myapp.azurewebsites.net)Azure CLI kullanıyorsanız, tek bir komutla bir web uygulaması oluşturabilirsiniz:
Web uygulamanızı oluşturduktan sonra Azure gerekli kaynakları sağlar. Tamamlandığında, "Go to resource"a tıklayarak veya kaynak grubunuzda bularak yeni web uygulamanıza gidebilirsiniz.
Bu aşamada, uygulamanızın URL’sini (
https://your-app-name.azurewebsites.net) ziyaret ettiğinizde varsayılan bir sayfa görmelisiniz. Bu, uygulamanızın çalıştığını doğrular; ancak henüz sizin kodunuzu içermiyor—dağıtımı bir sonraki bölümde ele alacağız.Temel uygulama ayarlarını yapılandırma
Dağıtıma geçmeden önce, uygulamamız için bazı temel yapılandırmaları yapalım. Veri uygulamaları için, veritabanı bağlantıları veya API anahtarları gibi belirli ortam değişkenlerine ihtiyaç duyabilirsiniz.
Uygulama ayarlarını yapılandırmak için:
Bunları Azure CLI kullanarak da ayarlayabilirsiniz:
Bu ayarlar, uygulamanız tarafından ortam değişkenleri olarak kullanılabilir; bu da yapılandırmayı kaynak kodunuza gömmeden saklamanın güvenli bir yoludur.
İlk Uygulamanızı Dağıtma
Azure App Service altyapımızı kurduğumuza göre, şimdi uygulamamızı dağıtma zamanı. Azure App Service, çalışma şeklinize ve tercihlerinize göre esneklik sağlayan birden çok dağıtım yöntemi sunar. Bu bölümde, kaynak kontrolden (GitHub veya Azure Repos), FTP’den ve yerel Git depolarından uygulama dağıtmayı inceleyeceğiz.
Bir veri uzmanı olarak bu adım kritik önemdedir; çünkü yerel geliştirme ortamınız ile modellerinizi veya veri işleme hatlarınızı sunabilen üretime hazır bir uygulama arasındaki köprüyü kurar.
> Dağıtım ilkelerine yeniyseniz, bu DevOps kursu temel kavramlar ve araçlara net bir giriş sunar.
GitHub veya Azure Repos’tan dağıtım
Azure App Service’in en güçlü özelliklerinden biri yerleşik sürekli dağıtım (CD) yetenekleridir. App Service’inizi bir GitHub veya Azure DevOps deposuna bağlayarak, belirli bir dala kod gönderildiğinde değişiklikleri otomatik olarak dağıtabilirsiniz.
Bu yaklaşım, ortak projelerde çalışan veri ekipleri için özellikle değerlidir; çünkü:
> Sürüm kontrolüne yeniyseniz, GitHub Foundations yolu temel konularda hız kazanmanıza yardımcı olabilir. Ayrıca dağıtım hatlarınızı ve sürüm kontrolünü yönetmek için sağlam bir alternatif olarak Azure DevOps’u keşfedebilirsiniz.
GitHub üzerinden sürekli dağıtımı şöyle kurarsınız:
Azure, seçilen dala değişiklikler gönderildiğinde uygulamanızı otomatik olarak oluşturan ve dağıtan bir GitHub iş akışı dosyasını deponuzda oluşturacaktır. Bu iş akışı, CI/CD sürecini yönetmek için GitHub Actions kullanır.
> Dağıtımları daha da otomatikleştirmek için, Makefile’ları GitHub Actions ile birleştirmeyi düşünün.
Python uygulamaları için iş akışı genellikle şu adımları içerir:
requirements.txt’ten bağımlılıkları yükleyinSürekli dağıtımı Azure CLI kullanarak da kurabilirsiniz:
Dağıtım ayarlarını yapılandırma
Dağıtımınızı ince ayarlamak için, GitHub iş akışı dosyasında veya Azure Portal’da ek ayarlar yapılandırabilirsiniz:
Veri bilimi uygulamaları için, bilimsel paketleri kuran veya model eğitim betiklerini çalıştıran özel derleme adımları eklemeniz gerekebilir. Bunlar doğrudan deponuzdaki iş akışı dosyasına eklenebilir.
FTP veya yerel Git kullanarak dağıtım
GitHub veya Azure Repos’tan sürekli dağıtım ekip ortamları için önerilse de, bazen daha doğrudan dağıtım yöntemlerine ihtiyaç duyabilirsiniz. Azure App Service bu senaryolar için hem FTP’yi hem de yerel Git’i destekler.
FTP dağıtımı
FTP dağıtımı, uygulama dosyalarınızı doğrudan Azure App Service’e yüklemenin basit bir yoludur. Bu yöntem, hızlı güncellemeler veya karmaşık derleme süreçleri gerektirmeyen uygulamalar için kullanışlıdır.
FTP ile dağıtmak için:
/site/wwwroot/dizinine yükleyinPython uygulamaları için
requirements.txtdosyanızın yüklemeye dahil olduğundan emin olun. Azure App Service gerekli paketleri otomatik olarak kuracaktır.Yerel Git dağıtımı
Yerel Git dağıtımı, yerel Git deponuzdan doğrudan Azure’a kod göndermenize olanak tanır. Bu yöntem, Git’in sürüm kontrol yeteneklerinden yararlanırken dağıtım süreci üzerinde daha fazla kontrol sağlar.
Yerel Git dağıtımını kurmak için:
Kodu Azure uzak deposuna gönderdiğinizde, platform uygulamanızı otomatik olarak derler ve dağıtır.
Dağıtım durumunu izleme
Hangi dağıtım yöntemini seçerseniz seçin, sorunları erken yakalamak için dağıtım sürecini izlemek önemlidir. Azure, dağıtım durumunu izlemek için birkaç yol sunar:
Bir dağıtım başarısız olursa, günlükler neyin yanlış gittiğine dair bilgi sağlar. Yaygın sorunlar şunlardır:
requirements.txtiçinde eksik bağımlılıklarDağıtım sorunlarını gidermek için:
requirements.txtdosyanızda listelendiğinden emin olunVeri bilimi uygulamalarında dağıtım hataları genellikle büyük paket kurulumları veya başlangıç sırasında bellek yoğun işlemler nedeniyle ortaya çıkar. Bu sorunlarla karşılaşırsanız şunları düşünün: