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.
Google Cloud ve App Hosting mimarisi
App Hosting, web uygulamanızı dağıtabilmeniz, sunabilmeniz ve izleyebilmeniz için bir dizi Google Cloud ürününü koordine eder. Uygulamalar Cloud Build ile oluşturulur, Cloud Run üzerinde yayınlanır ve Cloud CDN'de önbelleğe alınır. Cloud Secret Manager gibi entegre hizmetler, API anahtarlarınızı güvende tutar.

- Canlı şubenize bir taahhüt itildiğinde Google Cloud Developer Connect, Firebase App Hosting adresine bir etkinlik gönderir.
- Bu etkinliğe yanıt olarak Firebase App Hosting, depoya bağlı her arka uç için yeni bir kullanıma sunma işlemi başlatır.
- Firebase App Hosting, commit'iniz için yeni bir Cloud Build derlemesi oluşturur. Bu işte Google Cloud buildpack'leri, uygulamanıza uygun bir kapsayıcı ve yapılandırma (çevre değişkenleri, gizli veriler, minimum veya maksimum örnekler, eşzamanlı bellek, CPU ve VPC yapılandırması dahil) oluşturmak için uygulamanızda hangi çerçevenin kullanıldığını belirler.
- Cloud Build işi tamamlandığında kapsayıcınız, Firebase App Hosting'ye özel bir Artifact Registry deposunda saklanır. Firebase App Hosting, görüntünüzü ve yapılandırmanızı kullanarak Cloud Run hizmetine yeni bir Cloud Run Düzeltme ekler. Cloud Run Düzeltmenizin sağlıklı olduğu doğrulandıktan sonra Firebase App Hosting, tüm yeni istekleri yeni Cloud Run Düzeltmenize yönlendirecek şekilde trafik yapılandırmasını değiştirir. Bu aşamada, kullanıma sunma işlemi tamamlanır.
- Firebase App Hosting üzerinde barındırılan bir web sitesine istek gönderildiğinde istek, Cloud CDN etkinken Google Cloud Yük Dengelemesi tarafından sunulur. Önbelleğe alınmamış istekler Cloud Run hizmetinize gönderilir.
Ç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.5.x ve sonraki sürümler
- Angular 18.2.x ve üzeri
Belirli sürümler ve destek düzeyleriyle ilgili ayrıntılar için destek programlarına bakın.
App Hosting, Next.js ve Angular'a ek olarak çıktı paketi spesifikasyonumuzla eşleşen bir derleme çıkışı sağlayabilen tüm web çerçevelerini de destekler. App Hosting tarafından desteklenen çerçeveler, çerçeve bağdaştırıcılar ve ilgili araçlar hakkında daha fazla bilgi için App Hosting için çerçeveler ve araçlar başlıklı makaleyi inceleyin.
App Hosting deposu entegrasyonunun işleyiş şekli
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 önemli 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 deponuza erişme yetkisi verirsiniz.
- 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, Firebase Admin SDK'sını Google Uygulama Varsayılan Kimlik Bilgileri ile başlatabilmeniz için hem derleme hem de çalışma ortamınızı oluşturur. Böylece arka uç, hem derleme hem de çalışma zamanında diğer Firebase ürünleriyle iletişim kurabilir. Uygulamanızı başlatma ve Firebase SDK'larıyla ilgili diğer konular hakkında daha fazla bilgi için Firebase SDK'larını web uygulamanıza entegre etme başlıklı makaleyi inceleyin.
App Hosting yer
App Hosting, arka uç kaynaklarınızı birincil bölgeniz olarak adlandırılan belirli bir konumda oluşturur. App Hosting, hızlı yayınlama için küresel bir CDN ile entegre olurken önbelleğe alınmamış içerik, uygulamanızın birincil bölgesinden yayınlanır. 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 düzeyde izinlere 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.