App Hosting, uygulamanızın dağıtımını basitleştirmek için karmaşık bir dizi arka plan görevini yönetir. Bu sayfa, görev akışının önemli bölümlerini açıklar ve uygulamanızın ihtiyaçlarına bağlı olarak akışı özelleştirmek isteyebileceğiniz noktalar hakkında bilgi sağlar.
Çerçeve entegrasyonu
App Hosting, aşağıdaki çerçevelerde geliştirilen web uygulamaları için önceden yapılandırılmış derleme ve dağıtım desteği sağlar:
- Next.js 13+
- Angular 17.2 ve sonraki sürümler
App Hosting, package-lock.json
dosyasını veya deponuzdaki diğer kilit dosyasını inceleyerek hangi çerçeveyi kullandığınızı belirler. Kilit dosyası eksik olan bir Node.js uygulamasını dağıtmaya çalışırsanız App Hosting, uygulamanızı derleyip çalıştıramaz. Kök dizininizde npm
install
'yi çalıştırarak package-lock.json
oluşturabilirsiniz.
Çerçeve adaptörleri
App Hosting çerçeve bağdaştırıcıların iki temel işlevi vardır:
- Kaynak kodunuzu ve çerçeveye özgü yapılandırma dosyalarını (
next.config.js
gibi) ayrıştırır ve uygulama barındırma altyapısının geri kalanı tarafından işlenebilecek bir çıktı paketi oluşturur. - Statik öğeler oluşturmak ve uygulamanızın üretime yönelik optimize edilmiş bir sürümünü oluşturmak için uygulamanızın derleme komutunu çalıştırırlar.
Çerçeve bağdaştırıcılar, Node.js uygulamanızı npm run build
ile oluşturur ve her çerçevenin varsayılan derleme komut dosyalarıyla en iyi şekilde çalışır: Next.js için next build
ve Angular için ng build
. App Hosting, özel derleme komutlarıyla derleme yapmayı dener ancak başarının güvenilir bir şekilde garanti edilemeyeceğini belirtir.
Next.js ve Angular bağdaştırıcıların kaynağı firebase-framework-tools'da mevcuttur.
Diğer çerçeveler
Uygulama barındırma, Nextjs ve Angular'a ek olarak çıktı paketi spesifikasyonumuzla eşleşen bir derleme çıkışı sağlayabilen tüm web çerçevelerini de destekler. Çerçeve yazarları, çerçevelerinin App Hosting tarafından desteklenmesini sağlamak için çıkış paketi spesifikasyonundan yararlanabilir.
Daha fazla çerçevenin desteklenmesini istiyorsanız bir bağdaştırıcı oluşturabilir veya derleme çıkışlarını uygulama barındırma biçimine dönüştürmek için çerçevenin koruyucularıyla iletişime geçebilirsiniz. Nextjs ve Angular bağdaştırıcılar, bağdaştırıcılar oluşturan herkes için iyi referans örnekleridir.
Desteklenen çerçeveleri Firebase Open Source'da bulabilirsiniz.
App Hosting deposu entegrasyonu nasıl çalışır?
GitHub deponuz ile App Hostingarka uç arasındaki önemli bağlantı, Google Cloud'un harici DevOps araçları için bağlantı platformu olan Developer Connect tarafından yönetilir. App Hosting arka uç oluştururken Developer Connect'in kullanıcı arayüzü iş akışı, Firebase GitHub uygulamasının kurulumunda size yol gösterir. Bu süreçteki temel adımlar şunlardır:
- Developer Connect'e Secret Manager Yöneticisi rolünü verirsiniz. Bu sayede sistem, kimlik bilgilerini Cloud Secret Manager'da "gizli anahtar" olarak güvenli bir şekilde saklayabilir.
- Firebase GitHub uygulamasına GitHub deponuzdan erişmesi için yetki verin.
- Developer Connect, projenizin gizli yönetici deposunda özel bir GitHub yetkilendirme jetonu depolar. Bu jetonu değiştirmeyin veya silmeyin.
Ayrıca App Hosting, kullanıma sunma işlemleri için kontrol sağlamak amacıyla GitHub Checks API ile entegre olur. Bu kontrol, kullanıma sunma işleminizin durumunu GitHub'da görüntülemenize ve hata olması durumunda dağıtım sürecinde hata ayıklamanıza olanak tanır.
Firebase ve diğer Google hizmetleriyle entegrasyon
App Hosting, Google Uygulama Varsayılan Kimlik Bilgileri ile Firebase Admin SDK'sını başlatabilmeniz için hem derleme hem de çalışma ortamınızı oluşturur. Böylece arka uç, hem derleme hem de dağıtım sırasında diğer Firebase ürünleriyle iletişim kurabilir.
App Hosting yer
App Hosting dağıtımı, arka uç kaynaklarınızı belirli bir konumda oluşturur. Web uygulamanızın konumunda bu esnekliğin önemli avantajları vardır:
- Verileri coğrafi olarak kullanıcılarınıza daha yakın bir yere getirerek performansı iyileştirdi ve gecikmeyi azalttı.
- Bir bölgedeki App Hosting için meydana gelen büyük bir hata, diğer bölgelerde dağıtılan web uygulamalarını etkilemez.
Konsoldan veya Firebase CLI'den App Hosting arka uç oluştururken bu bölgelerden herhangi birini seçebilirsiniz:
us-central1
(Iowa)asia-east1
(Tayvan)europe-west4
(Hollanda)
App Hosting arka uç hizmet hesabı
App Hosting arka uç, derleme sırasında ve çalışma zamanında bir hizmet hesabıyla diğer Google hizmetleriyle kimlik doğrulaması yapar. Firebase projesinde App Hosting'ü ilk kez etkinleştirdiğinizde bu amaçlar için bir varsayılan hizmet hesabı oluşturulur:
firebase-app-hosting-compute@PROJECT ID.iam.gserviceaccount.com
Bu hizmet hesabı varsayılan olarak tüm arka uçlar için geçerlidir ve uygulamanızı oluşturmanıza, çalıştırmanıza ve izlemenize olanak tanıyan minimum bir izin grubuna sahiptir. Ayrıca, Cloud Firestore'den veri yükleme gibi işlemleri gerçekleştirmek için Yönetici SDK'sının kimliğini Uygulama Varsayılan Kimlik Bilgileri ile doğrulama iznine sahiptir. Firebase App Hosting rolleri başlıklı makaleyi inceleyin.
Uygulamanızın derleme sırasında veya çalışan bir arka uçtan ek Google hizmetleriyle etkileşim kurması gerekiyorsa varsayılan hizmet hesabına rol ekleyerek hesabı özelleştirebilirsiniz. Örneğin, uygulamanız Vertex AI için izinler gerektiriyorsa roles/aiplatform.user
veya ilgili bir rol eklemeniz gerekebilir.
Önemli terimler ve tanımlar
- Arka uç: App Hosting'nin web uygulamanızı oluşturmak ve çalıştırmak için oluşturduğu yönetilen kaynaklar koleksiyonu.
- Yayınlama: Yayındaki uygulamanızın, bir git commit'ine bağlı belirli bir sürümü.
- Yayındaki dal: GitHub deponuzun canlı URL'nize dağıtılan dalıdır. Genellikle özellik şubelerinin veya geliştirme şubelerinin birleştirildiği şubedir.
Bilinen sorunlar ve sınırlamalar
App Hosting önizlemesinin bilinen bazı sınırlamaları vardır:
- Bazı durumlarda, App Hosting arka uç, uygulamanızın URL'sinde
Intermittent connection error
mesajları döndürebilir. Bu sorun sonraki bir sürümde düzeltilecektir. - Cache-Control başlıkları, CDN önbelleğini 60 saniyeyle sınırlayacak şekilde değiştirilir. Gelecekte, App Hosting dağıtımda önbelleği hızlıca temizleyebildiğinde bu sınır kaldırılacaktır.
- Resim optimizasyonu varsayılan olarak Cloud Run'te yapılır ve optimize edilmiş resimler kalıcı olmaz. Daha iyi bir çözüm bulunana kadar resim optimizasyonunu devre dışı bırakmanızı veya yükleyiciyi manuel olarak belirtmenizi öneririz.
- Önbelleğe alınmamış statik dosyalar Cloud Run üzerinden yayınlanır. Daha sonraki bir sürümde, daha iyi performans için App Hosting kaynağından depolanıp yayınlanacak.
- App Hosting SKU'lar, konsoldaki arka uç kullanım sayfasında gösterilmeyebilir. Firebase Bu özellikler daha sonraki bir sürümde kullanıma sunulacaktır.
- Firebase konsolu, arka uç oluşturma işleminde ara sıra "derleme bulunamadı ve geçersiz" hatası gösterebilir.
- Şu anda aynı projedeki tüm arka uçlar bir GitHub kuruluşunu/hesabını paylaşıyor. Bu kuruluş/hesap altındaki farklı depolara bağlanabilirler. Farklı GitHub hesaplarına bağlı arka uç oluşturmak için bunları ayrı projelere koyun.
- Next.js ara yazılımı, yeniden yazmalar ve yönlendirmeler, CDN'nin arkasındaki Cloud Run'te yürütülür. Bunlar önbelleğe alınan yanıtları korumadığından, oluşturmakta olduğunuz içerik için uygun denetim yönergelerini ayarladığınızdan emin olun.