deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Vercel blog

Vercel, Python projelerine routing rules ekledi: yeniden dağıtım gerektirmeden rewrites ve headers

Vercel üzerindeki Python projeleri artık FastAPI, Django ve Flask uygulamaları için CDN düzeyinde rewrites ve response headers tanımlayabiliyor; değişiklikler yeni bir dağıtım olmadan küresel olarak anında geçerli oluyor.

Vercel, Python projelerine routing rules ekledi: yeniden dağıtım gerektirmeden rewrites ve headers

Vercel, Python projelerine routing rules özelliğini ekledi; böylece FastAPI, Django ve Flask gibi framework'lerle geliştirilen uygulamalar response headers ayarlayabiliyor ve gelen istekleri CDN üzerinde rewrite edebiliyor. Vercel blog'una göre kurallar, istek uygulamaya ulaşmadan önce değerlendiriliyor; dolayısıyla bir değişiklik, yeni bir dağıtım yapmadan tüm bölgelerde anında etkili oluyor.

Kuralların kapsamı

İki yetenek sunuluyor: response headers ayarlama ve istekleri içeri yönlendirmelere rewrite etme. Vercel'in örnek çalışmasında, /new yoluna sahip olan ve bir JSON mesajı döndüren bir FastAPI uygulaması kullanılıyor. Bir routing rule /old yolunu /new ile eşleştiriyor; böylece eski yola gelen istekler, uygulama koduna dokunulmadan yeni handler tarafından karşılanıyor.

Değerlendirme Python süreci içinde değil, Vercel CDN'inde gerçekleştiği için yayımlanan kurallar her bölgede anında uygulanıyor. Yayımlanan kural kümeleri ayrıca sürümlendiriliyor: bir önceki sürüm, proje panosundaki History sekmesinden geri yüklenebiliyor; bu da ekiplere bir kural sorun çıkardığında kullanabilecekleri bir geri alma yolu sunuyor.

Kuralları yönetmenin üç yolu

Kurallar üç farklı yüzeyden oluşturulup yayımlanabiliyor. İlki, rewrite'ların arayüz üzerinden yapılandırıldığı proje panosundaki CDN sekmesi. İkincisi, kullanılmadan önce en son sürüme güncellenmesi gerektiğini Vercel'in belirttiği Vercel CLI. CLI, hazırlama (staging) ile yayımlamayı birbirinden ayırıyor:

  • vercel routes add --ai "Rewrite /old to /new" --yes bir rewrite'ı hazırlar; --ai bayrağı, kuralın doğal dille yazılmış bir açıklamasını kabul eder.
  • vercel routes list --diff hazırlanan değişiklikleri inceler.
  • vercel routes publish bunları üretime gönderir.

Üçüncü yüzey ise Python'ın kendisi. vercel SDK'sı, Vercel'in REST API'sini sarmalıyor; böylece routing, uygulama ile aynı dilden betiklenebiliyor. Bir ad, kaynak ve hedef taşıyan RewriteRoute nesnesi, kuralı hazırlamak için project_routes.add_route fonksiyonuna veriliyor; update_route_version fonksiyonunun promote eylemiyle kural yayımlanıyor — tıpkı CLI'nin önce hazırla sonra yayımla akışı gibi.

Bunun vercel. ile ilişkisi

Rewrite'lar hâlâ vercel. içinde tanımlanabiliyor; ancak bunlar belirli bir dağıtıma aittir ve yalnızca o dağıtım değiştiğinde değişir. Yeni proje düzeyindeki kurallar ise herhangi bir tekil dağıtımın dışında yaşar ve Vercel, bunların bir dağıtımın kendi rotalarından önce değerlendirildiğini belirtiyor. Pratikteki sonuç öncelik sırasıdır: yayımlanmış bir proje kuralı ile bir vercel. rewrite'ı aynı yolu hedeflediğinde, proje kuralı kazanır. Vercel bu ikisini farklı iş akışlarına uygun olarak konumlandırıyor: vercel. routing'i dağıtıma bağlı tutarken, proje kuralları dağıtımdan bağımsız çalışıyor.

Neden önemli

Çalışan bir hizmetin routing davranışını değiştirmek geleneksel olarak kodu ya da yapılandırmayı düzenlemeyi ve yeni bir build yayınlamayı gerektiriyordu. Dağıtım merkezli bir platformda bu, yeniden adlandırılan bir uç noktayı köprüleme veya bir response header'ı ayarlama gibi operasyonel ince ayarları tam sürüm hattına bağlı hale getiriyor. Bu kuralları CDN'de değerlendirmek bu döngüyü tek bir publish komutuna indiriyor, değişikliği aynı anda küresel olarak uyguluyor ve güvenlik için sürümlendirilmiş geri alma sunuyor.

Python ekipleri için SDK en az CLI kadar önemli: routing, uygulamanın zaten yazıldığı dilden otomatikleştirilebilir hale geliyor — ister bir URL geçişi sırasında bir grup rewrite'ı betiklemek ister header'ları programatik olarak yönetmek olsun. Düz bir dil ifadesini hazırlanmış bir kurala dönüştüren --ai bayrağı, eşiği daha da düşürüyor. Özellik şu anda kullanılabilir durumda; CLI'nın en son sürüme güncellenmesi gerekiyor.

  • #vercel
  • #python
  • #routing
  • #fastapi
  • #django

İlgili yazılar