Uygulama Barındırma'yı ve işleyiş şeklini öğrenin

App Hosting, uygulamanızın dağıtımını basitleştirmek için karmaşık arka plan görevlerini yerine getirir. Bu sayfada görev akışının önemli kısımları açıklanır ve uygulamanızın ihtiyaçlarına bağlı olarak akışı özelleştirmek isteyebileceğiniz noktalar hakkında bilgi verilir.

Çerçeve desteği

App Hosting, aşağıdaki çerçevelerde geliştirilen web uygulamaları için yapılandırma gerektirmeyen derleme ve dağıtım desteği sunar:

  • Next.js 13 ve sonraki sürümler
  • Angular 17.2+

App Hosting, hangi çerçeveyi kullandığınızı belirlemek için deponuzdaki package-lock.json dosyasını veya diğer kilit dosyalarını inceler. Kilit dosyası olmayan bir Node.js uygulamasını dağıtmaya çalışırsanız Uygulama Barındırma, uygulamanızı geliştirip çalıştıramaz. Kök dizininizde npm install komutunu çalıştırarak package-lock.json oluşturabilirsiniz.

Uygulama Barındırma çerçeve bağdaştırıcılarının iki temel rolü vardır:

  1. Uygulamanızın yapılandırılmış davranışını anlamak için kaynak kodunuzu ve çerçeveye özgü yapılandırma dosyalarını (next.config.js gibi) ayrıştırır.
  2. Bu komutlar, statik öğeler oluşturmak ve uygulamanızın optimize edilmiş bir sürümünü oluşturmak için uygulamanızın derleme komutunu çalıştırır.

Çerçeve bağdaştırıcıları, Node.js uygulamanızı npm run build ile oluşturur ve her çerçevede 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 derlemeleri dener ancak güvenilir bir şekilde başarı garantisi veremez.

App Hosting depo entegrasyonunun işleyiş şekli

GitHub deponuz ile Uygulama Barındırma arka ucu arasındaki önemli bağlantı, Google Cloud'un harici DevOps araçları için kullanılan bağlantı platformu Developer Connect tarafından yönetilir. Uygulama Barındırma arka ucu oluşturulurken Developers Connect'in kullanıcı arayüzü iş akışı, Firebase GitHub uygulamasının yüklenmesi boyunca size yol gösterir. Bu süreçteki temel adımlar şu şekildedir:

  1. Developer Connect'e Secret Manager Yöneticisi rolünü verirsiniz. Bu sayede sistem, kimlik bilgilerini Cloud Secret Manager'da güvenli bir şekilde "gizli anahtar" olarak depolayabilir.
  2. Firebase GitHub uygulamasına GitHub deponuza erişme yetkisi verirsiniz.
  3. Developer Connect, projenizin gizli anahtar yöneticisi deposunda özel bir GitHub yetkilendirme jetonu saklar. Bu jetonu değiştirmeyin veya silmeyin.

Ayrıca App Hosting, kullanıma sunma denetimi sağlamak için GitHub checks API ile entegre olur. Bu kontrol, GitHub'da sunumunuzun durumunu görüntülemenize ve herhangi bir hata olması durumunda dağıtım sürecinde hata ayıklamanıza olanak tanır.

Firebase ve diğer Google hizmetleriyle entegrasyon

App Hosting, hem derleme hem de çalışma zamanı ortamlarınızı oluşturur. Böylece Google Uygulama Varsayılan Kimlik Bilgileri ile Firebase Admin SDK'yı başlatabilirsiniz. Bu şekilde, arka ucunuz hem derleme hem de dağıtım sırasında diğer Firebase ürünleriyle iletişim kurabilir.

App Hosting arka uç hizmet hesabı

Derleme sırasında ve çalışma zamanında, Uygulama Barındırma arka ucunuz, hizmet hesabı olan diğer Google hizmetleriyle kimlik doğrular. Bir Firebase projesinde Uygulama Barındırma'yı ilk kez etkinleştirdiğinizde aşağıdaki 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ı derlemenize, çalıştırmanıza ve izlemenize olanak tanıyan minimum düzeyde izne sahiptir. Ayrıca Cloud Firestore'dan veri yükleme gibi işlemler gerçekleştirmek için Yönetici SDK'sının Uygulama Varsayılan Kimlik Bilgileri ile kimliğini doğrulama iznine de sahiptir. Firebase Uygulama Barındırma rolleri sayfasını inceleyin.

Uygulamanızın, derleme sırasında veya çalışan bir arka uçtan ek Google hizmetleriyle etkileşim kurması gerekiyorsa roller ekleyerek varsayılan hizmet hesabını özelleştirebilirsiniz. Örneğin, uygulamanız Vertex AI için izin gerektiriyorsa roles/aiplatform.user veya ilgili bazı roller eklemeniz gerekebilir.

Anahtar terimler ve tanımlar

  • Arka Uç: Uygulama Barındırma'nın web uygulamanızı geliştirmek ve çalıştırmak için oluşturduğu yönetilen kaynaklar koleksiyonu.
  • Kullanıma sunma: Canlı uygulamanızın git kaydına bağlı belirli bir sürümü.
  • Live dal: GitHub deponuzun yayındaki URL'nize dağıtılan dalı. Genellikle özellik dallarının veya geliştirme dallarının birleştirildiği daladır.

Bilinen sorunlar ve sınırlamalar

Uygulama Barındırma önizlemesinin bilinen bazı sınırlamaları vardır:

  • Resim optimizasyonu henüz kullanılamıyor.
  • Bazı durumlarda bir Uygulama Barındırma arka ucu, uygulamanızın URL'sinde Intermittent connection error mesajları döndürebilir. Sonraki bir sürümde bunun için bir düzeltme yayınlanacaktır.
  • Önbellek üst bilgileri, CDN önbelleklerini 60 saniyeyle sınırlayacak şekilde değiştirilir. Uygulama Barındırma, gelecekte dağıtım sırasında önbelleği hızlı bir şekilde temizleyebildiğinde bu sınır kaldırılacaktır.
  • Önbelleğe alınmamış statik dosyalar Cloud Run'dan sunulur. Daha sonraki bir sürümde, daha iyi performans için saklanıp App Hosting kaynağından sunulur.
  • Özel alan adı olarak joker karakter alt alan adları, sonraki bir sürümde kullanıma sunulacaktır.
  • Uygulama Barındırma SKU'ları Firebase konsolundaki arka uç kullanım sayfasında gösterilmeyebilir. Bunlar sonraki bir sürümde kullanıma sunulacaktır.
  • Firebase konsolu, arka uç oluşturulurken zaman zaman "yapı bulunamadı ve geçersiz" hatası gösterilebilir.
  • root\_directory öğesinin Firebase konsolu veya CLI ile yapılandırılmış olmasından bağımsız olarak, iç içe yerleştirilmiş package.json dosyalarına sahip projeler desteklenmemektedir. Sonraki bir sürümde bu sorunun çözümü kullanıma sunulacaktır.
  • Şu anda aynı projedeki tüm arka uçlar bir GitHub kuruluşunu/hesabını paylaşmaktadır. Bu kuruluş/hesap altındaki farklı depolara bağlanabilirler. Farklı GitHub hesaplarına bağlı arka uçlar oluşturmak için bunları ayrı projelere yerleştirin.
  • Şu anda yalnızca us-central1 bölgesi desteklenmektedir.