Çoğu zaman, Firebase konsolundan otomatik yayınları veya manuel olarak tetiklenen yayınları kullanmanızı öneririz. Ancak, daha özelleştirilmiş bir dağıtım akışına ihtiyacınız olabilir. App Hosting, özel dağıtım için birden fazla seçeneğe sahiptir.
Kaynaktan dağıtma
Kaynaktan dağıtım, uygulamanızın kaynak kodunu ve yapılandırmasını kalıcı bir GitHub bağlantısı gerektirmeden doğrudan App Hosting'ya göndermenize olanak tanır.
Kaynaktan dağıtım yaparken App Hosting, kaynak kodunuzu bir Google Cloud Storage paketine yükler, Cloud Build içinde çerçevenizin derleme komutunu çalıştırır ve derlenmiş yapıları Cloud Run ile Cloud CDN'ye dağıtır. Yerel kaynak dağıtımları için de GitHub dağıtımlarında kullanılan derleme işlemi kullanılır. Projenizde .gitignore dosyası varsa bu dosyanın içinde listelenen dosyalar ve klasörler dağıtımınızın dışında tutulur.
Firebase KSA'yı veya Firebase konsolunu kullanarak yerel bir kaynaktan dağıtım yapabilirsiniz.
Gerekli IAM izinleri ve altyapı kurulumu
Hem Firebase CLI hem de Firebase konsol, kaynak arşivlerinizi depolamak ve oluşturmak için aynı arka uç altyapısını kullandığından her iki dağıtım yöntemi için de aynı IAM izin koşulları geçerlidir.
Tam olarak hangi şartların karşılanması gerektiği, belirli bir konuma (bölge) ilk kez dağıtım yapıp yapmadığınıza bağlıdır. İzinler hakkında daha fazla bilgi için Firebase IAM'ye genel bakış ve Firebase App Hosting'e özel izinler başlıklı makaleleri inceleyin.
İlk Kullanıma Alma İzinleri (Bir konuma ilk dağıtım)
Bir proje konumunda yerel kaynak dağıtımı ilk kez başlatıldığında, Hosting arşivlerinizi depolamak için bir GCS paketi sağlamalı ve Hosting hizmet aracısına bu paketlere erişim izni vermelidir. Bunlar proje düzeyinde yönetim görevleri olduğundan proje sahibi veya IAM yöneticisi izinleri gerekir. Temel Düzenleyici veya Görüntüleyici rolüne sahip bir kullanıcı bu ilk kurulumu gerçekleştiremez ve engellenir.
Ön koşul olarak gerekli kurulum izinleri şunlardır:
- Enable Storage API:
serviceusage.services.enable - Kaynak paketi oluşturma:
storage.buckets.createvestorage.buckets.list - Hizmet aracısını yapılandırma:
resourcemanager.projects.setIamPolicy, derlemeler sırasında yüklenen kodu getirebilmesi için Hosting okuma erişimi (roles/storage.objectViewer) verir.
İlk dağıtım için GCS grubu 30 günlük bir yaşam döngüsüyle oluşturulur. Bu sürenin sonunda grup silinir. Ancak bu zaman aralığını Cloud Console'da Cloud Storage -> Paketler -> Yaşam Döngüsü -> Kurallar bölümünden yönetebilirsiniz. Nesne yaşam döngülerini yönetme başlıklı makaleyi inceleyin.
Sonraki Dağıtımlar İçin İzinler (Konum başlatıldıktan sonra)
Bir konum için kaynak paketi ve rol bağlamaları başlatıldıktan sonra (ilk CLI dağıtımı veya konsol kurulumuyla) normal geliştiriciler, düzenleyiciler veya App Hosting yöneticiler güncellemeleri dağıtabilir. Rutin dağıtımlar için proje düzeyinde yönetim izinleri gerekmez.
Etkin dağıtım izinleri şunlardır:
- Paketi doğrulayın:
storage.buckets.list - Kaynak arşivi yükle:
storage.objects.create - Derleme oluşturma ve kullanıma sunma: Standart Hosting izinleri (
apphosting.builds.createveapphosting.rollouts.create)
Firebase CLI ile kaynaktan dağıtma
Firebase CLI v14.4.0 ve sonraki sürümler uygulamanızın kaynak kodunu ve yapılandırmalarını doğrudan yerel makinenizden Firebase'e göndermenize olanak tanır. Bu, diğer Firebase dağıtımlarını (ör. güvenlik kuralları veya işlevler) zaten yönetiyorsanız ve web uygulamanızı ile arka uç hizmetlerinizi tek bir CLI komutuyla birlikte dağıtmak istiyorsanız kullanışlıdır.
Ön koşullar
- Projeleriniz Blaze planı kapsamında olmalıdır.
- firebase-tools 14.4.0 veya daha yeni bir sürümü kullanıyor olmanız gerekir.
Dağıtım adımları
- Yerel proje dizininizde
firebase init apphostingkomutunu çalıştırın. - İstendiğinde Mevcut bir projeyi kullan'ı seçin ve hedef Firebase projenizi belirleyin.
- Dağıtım için yeni veya mevcut bir arka uç seçin. Bu adım, yerel dizininiz için Hosting dağıtımlarını ayarlar ve yapılandırma ayrıntılarını girmenizi ister:
- Dağıtım yapılacak arka ucun kimliği
- Yeni bir arka uç oluşturuyorsanız dağıtım yapılacak bölge
- Uygulama kodunuzun kök dizininin yolu
- Tercih ettiğiniz Node.js çalışma zamanı. Sürümlendirilmiş bir çalışma zamanı seçtiğinizde, temel ortamınıza güvenlik yamalarını otomatik olarak uygulamak için Otomatik Temel Görüntü Güncellemeleri (ABIU) etkinleştirilir.
- App Hosting, dağıtım tercihleriniz
firebase.json'e kaydedilir. Dosya henüz yoksa yerel projenizde oluşturulur. Başlatma işlemi başarıyla tamamlandıktan sonra kaynak kodunuzu dağıtmak içinfirebase deploykomutunu çalıştırın.
Örnek firebase.json
{
"apphosting": [
{
"backendId": "my-backend",
// rootDir specifies the directory containing the app to deploy, but the entire
// parent directory of firebase.json will be zipped and uploaded to ensure that
// dependencies outside of the app directory will be available at build time.
"rootDir": "./my-app",
"ignore": [
"node_modules",
".git",
"firebase-debug.log",
"firebase-debug.*.log",
"functions"
]
}
]
}
Firebase konsoluyla dağıtma (ZIP yükleme)
Firebase konsolu, sıkıştırılmış bir kaynak arşivini doğrudan yükleyerek uygulamaları dağıtmak için grafik bir arayüz sağlar. Bu, GitHub'ı kullanmak istemediğiniz veya farklı bir CI/CD kurulumunu tercih ettiğiniz durumlarda GitHub bağlantı akışına alternatif olarak kullanılır.
Arşiv yüklemeleri, ilk arka uç oluşturma sırasında veya manuel dağıtım oluştururken yapılabilir. Bu, başlangıçta Firebase CLI kullanılarak dağıtılan arka uçlar da dahil olmak üzere mevcut bir arka uçta yapılabilir.
Desteklenen biçimler
Konsol yükleyici, iki sıkıştırılmış arşiv biçimini yerel olarak doğrular ve kabul eder:
.zip.tgz
Bu biçimler, dosya yükleyicinin açıklama metninde açıkça gösterilir.
Dağıtım adımları
A seçeneği: İlk arka uç katılımı sırasında
- Kaynak Seçin: Arka uç oluşturma sihirbazında, "Uygulamanızı nasıl içe aktarmak istersiniz?" adımında Zip dosyası yükle'yi seçin.
- İlk Katılım Hazırlığı: "Sonraki"yi tıkladığınızda arka planda hazırlık akışı tetiklenir. Bu akış, Storage API'yi sırayla etkinleştirir, doğru rollerin ayarlandığından emin olur ve paketi günceller. Kullanıcı arayüzünde, dinamik durum mesajlarıyla birlikte bir yükleme çarkı gösterilir: "API etkinleştiriliyor..." "İzinler kontrol ediliyor..." ve "Paket hazırlanıyor..."
- Hata İşleme ve Koruma: Herhangi bir hazırlık adımı başarısız olursa (ör. Sahibi olmayan bir kullanıcı, yetersiz IAM izinleri nedeniyle
403 PERMISSION_DENIEDalırsa) kullanıcı arayüzünde, bir proje sahibiyle iletişime geçmenizi isteyen özel bir uyarı gösterilir. Adım adım gezinme kesinlikle kilitlenir ve sorun çözülene kadar "Sonraki" düğmesi ile son "Bitir ve Dağıt" düğmesi devre dışı kalır.
- Hata İşleme ve Koruma: Herhangi bir hazırlık adımı başarısız olursa (ör. Sahibi olmayan bir kullanıcı, yetersiz IAM izinleri nedeniyle
- Dosyaları Yükleme: Hazırlama işlemi başarıyla tamamlandıktan sonra arşiv dosyanızı seçin veya dosya yükleyici bileşenine sürükleyin.
Ayarları Yapılandırma: Uygulama kök dizininizi belirtin (varsayılan olarak
/).Bitir ve Dağıt'ı tıklayın: Arşiv yüklemek tek seferlik bir işlem olduğundan ve işlevsel bir arka uç sağlamak için hemen dağıtım yapılması gerektiğinden, bağımsız "Bitir" düğmesi zip yüklemeleri için devre dışı bırakılır.
B seçeneği: Manuel dağıtım oluşturma
- Açık iletişim kutusu: Hosting kontrol panelinde Yayın oluştur'u tıklayın.
- Kaynak Seç: İletişim kutusunun adımında Zip dosyası yükle'yi seçin. Arka uçta mevcut bir GitHub bağlantısı yoksa "GitHub" seçeneği devre dışı bırakılır.
- Hazırlama ve Yükleme: Bu seçim, aynı arka plan hazırlama akışını ("API etkinleştiriliyor...", "İzinler kontrol ediliyor..." ve "Bucket hazırlanıyor..."). Başarılı olduktan sonra yükleyiciyi kullanarak arşiv dosyanızı sürükleyin veya seçin, Uygulama kök dizinini belirtin ve derleme ile kullanıma sunma işlemini tetiklemek için Dağıt'ı tıklayın.
Terraform kullanarak dağıtma
Derleme işlemi ve dağıtılan ortam üzerinde daha fazla kontrole ihtiyacınız varsa Terraform kullanarak dağıtım yapabilirsiniz. Terraform, bildirim temelli yapılandırma dosyalarını kullanarak App Hosting kaynaklarınızı tanımlamanıza ve yönetmenize olanak tanır. Ayrıca, kaynak kodunuzdan derleme yapmak için App Hosting'ya güvenmek yerine kendi önceden oluşturulmuş kapsayıcı görüntünüzü doğrudan App Hosting'ya dağıtma olanağı sağlar.
Terraform'u kullanmaya yeni başladıysanız Terraform ve Firebase'i kullanmaya başlama başlıklı makaleyi inceleyin. Terraform'a aşinaysanız örnek yapılandırma dosyaları ve diğer App Hosting kaynaklarla başlayabilirsiniz.
CI/CD için GitHub bağlantısı ayarlama
Firebase konsolunda bir arka uç ayarlarının Dağıtım sekmesinden istediğiniz zaman bir GitHub deposu bağlayabilirsiniz. Bu sayede, yerel bir ortamdan uygulama prototipi dağıtabilir ve hazır olduğunuzda otomatik bir CI/CD ardışık düzenine geçebilirsiniz.
Yapay zeka araçlarını kullanarak dağıtma
Firebase Studio, 22 Mart 2027'de kullanımdan kaldırılacak. App Hosting arka uçlarınız etkilenmez ancak Firebase Studio içindeki Yayınla düğmesi kullanımdan kaldırılır. URL'nizi değiştirmeden güncellemeler yayınlamaya devam etmek için projenizi taşıyın. Nasıl taşıyacağınızı öğrenin.