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

App Hosting, uygulamanızın dağıtımını kolaylaştırmak için bir dizi karmaşık arka plan görevi yürütür. Bu sayfada, söz konusu görev akışının önemli kısımları açıklanarak uygulamanızın ihtiyaçlarına göre akışı özelleştirmek isteyebileceğiniz noktalar hakkında bilgiler sağlar.

Ç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 sağlar:

  • Next.js 13 ve sonraki sürümler
  • Açı 17.2+

App Hosting, deponuzdaki package-lock.json dosyasını veya başka bir kilit dosyasını inceleyerek hangi çerçeveyi kullandığınızı tanımlar. Kilit dosyası eksik bir Node.js uygulamasını dağıtmaya çalışırsanız App Hosting, uygulamanızı derleyip ç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. Bu dosyalar, uygulamanızın yapılandırılmış davranışını anlamak için kaynak kodunuzu ve çerçeveye özel yapılandırma dosyalarını (ör. next.config.js) ayrıştırır.
  2. Uygulamanızın derleme komutunu çalıştırarak statik öğeler ve üretim için uygulamanızın optimize edilmiş bir sürümünü oluştururlar.

Çerçeve bağdaştırıcıları, Node.js uygulamanızı npm run build ile oluşturur ve her çerçeve için 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 başarıyı güvenilir şekilde garanti edemez.

App Hosting deposu 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ına yönelik bağlantı platformu Developer Connect tarafından yönetilir. Uygulama Barındırma arka ucu oluşturulurken, Developer 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 şunlardır:

  1. Developer Connect'e Secret Manager Yöneticisi rolünü verirsiniz. Bu, sistemin kimlik bilgilerini Cloud Secret Manager'da "gizli anahtar" olarak güvenli bir şekilde depolamasını sağlar.
  2. Firebase GitHub uygulamasına GitHub deponuza erişmesi için yetki verirsiniz.
  3. Developer Connect, projenizin gizli yönetici deposunda özel bir GitHub yetkilendirme jetonu depolar. Bu jetonu değiştirmeyin veya silmeyin.

Buna ek olarak App Hosting, kullanıma sunma kontrolü sağlamak için GitHub checks API ile entegre olur. Bu kontrol, GitHub'da sunumunuzun durumunu görüntülemenizi ve hata olması durumunda dağıtım sürecindeki hataları ayıklamanızı sağlar.

Firebase ve diğer Google hizmetleriyle entegrasyon

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

App Hosting arka uç hizmeti hesabı

Derleme sırasında ve çalışma zamanında, Uygulama Barındırma arka ucunuz bir hizmet hesabı olan diğer Google hizmetleriyle kimlik doğrular. Bir Firebase projesinde App Hosting'i ilk kez etkinleştirdiğinizde bu amaçlar doğrultusunda varsayılan bir 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 izinlere sahiptir. Ayrıca, Cloud Firestore'dan veri yükleme gibi işlemler için Uygulama Varsayılan Kimlik Bilgileri ile Admin SDK'nın kimliğini doğrulama iznine de sahiptir. Firebase Uygulama Barındırma rolleri sayfasına göz atın.

Uygulamanızın derleme zamanında veya çalışan bir arka uçtan ek Google hizmetleriyle etkileşime geçmesi gerekiyorsa roller ekleyerek varsayılan hizmet hesabını özelleştirebilirsiniz. Örneğin, uygulamanız Vertex AI izinleri gerektiriyorsa roles/aiplatform.user veya ilgili bir rol eklemeniz gerekebilir.

Anahtar terimler ve tanımlar

  • Arka uç: App Hosting'in web uygulamanızı oluşturmak 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ü.
  • Canlı dal: GitHub kod deponuzun canlı URL'nize dağıtılan dalı. Genellikle, özellik dallarının veya geliştirme dallarının birleştiği daldır.

Bilinen sorunlar ve sınırlamalar

App Hosting önizlemesinde bazı bilinen sınırlamalar mevcuttur:

  • Bazı durumlarda App Hosting arka ucu, uygulamanızın URL'sinde Intermittent connection error mesajları döndürebilir. Sonraki bir sürümde bir düzeltme sunulacaktır.
  • Önbellek başlıkları, CDN önbelleklerini 60 saniyeyle sınırlandıracak şekilde değiştirilir. İleride, Uygulama Barındırma, dağıtım sırasında önbelleği hızlı bir şekilde temizleme özelliğine sahip olduğunda bu sınır kaldırılacaktır.
  • Önbelleğe alınmamış statik dosyalar Cloud Run'dan sunulur. Sonraki sürümlerde daha iyi performans için App Hosting kaynağında depolanır ve sunulur.
  • Joker karakter alt alanları, özel alan adı olarak 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. Daha sonraki bir sürümde kullanıma sunulacaktır.
  • Firebase konsolu, arka uç oluşturulurken aralıklı olarak "derleme bulunamadı ve geçersiz" hatası gösterebilir.
  • root\_directory öğesinin Firebase konsolu veya KSA ile yapılandırılmış olmasına bakılmaksızın, iç içe yerleştirilmiş package.json dosyalarına sahip projeler şu anda desteklenmemektedir. Sonraki bir sürümde bir düzeltme sunulacaktır.
  • Şu anda aynı projedeki tüm arka uçlar bir GitHub kuruluşunu/hesabını paylaşmaktadır. Bunlar, ilgili kuruluş/hesap altındaki farklı veri havuzlarına bağlanabilir. Farklı GitHub hesaplarına bağlı arka uçlar oluşturmak için bunları ayrı projelere yerleştirin.