App Hosting'e dağıtmanın alternatif yolları

Çoğu zaman Firebase konsolundan otomatik yayınlamaları veya manuel olarak tetiklenen yayınlamaları 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 konsolu, 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.

Kesin koşullar, 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, App Hosting arşivlerinizi depolamak için bir GCS paketi sağlamalı ve App Hosting hizmet aracısına bu paketlere erişim izni vermelidir. Bu işlemler 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.create ve storage.buckets.list
  • Hizmet aracısını yapılandırma: resourcemanager.projects.setIamPolicy, derlemeler sırasında yüklenen kodu getirebilmesi için App Hosting okuma erişimi (roles/storage.objectViewer) vermek üzere kullanılır.

İlk dağıtım için GCS paketi 30 günlük bir yaşam döngüsüyle oluşturulur. Bu sürenin sonunda paket silinir. Ancak bu zaman aralığını Cloud Console'da Cloud Storage -> Buckets -> Lifecycle -> Rules (Cloud Storage -> Paketler -> Yaşam Döngüsü -> Kurallar) bölümünde 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 App Hosting izinleri (apphosting.builds.create ve apphosting.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. 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 bu yöntem kullanışlıdır.

Ön koşullar

  • Projeleriniz Blaze planında olmalıdır.
  • firebase-tools 14.4.0 sürümü veya daha yeni bir sürümü kullanmanız gerekir.

Dağıtım adımları

  1. Yerel proje dizininizde firebase init apphosting komutunu çalıştırın.
  2. İstendiğinde Mevcut bir projeyi kullan'ı seçin ve hedef Firebase projenizi belirleyin.
  3. Dağıtım için yeni veya mevcut bir arka uç seçin. Bu adım, yerel dizininiz için App 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ın otomatik olarak uygulanmasını sağlayan Otomatik Temel Görüntü Güncellemeleri (ABIU) etkinleştirilir.
  4. App Hosting, dağıtım tercihlerini firebase.json'e kaydeder ve dosya yoksa yerel projenizde oluşturur. Başlatma işlemi başarıyla tamamlandıktan sonra kaynak kodunuzu dağıtmak için firebase deploy komutunu ç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şivi 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 Firebase CLI kullanılarak ilk kez dağıtılanlar da dahil olmak üzere mevcut bir arka uçta manuel kullanıma sunum oluşturulurken gerçekleştirilebilir.

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
  1. Kaynak Seçin: Arka uç oluşturma sihirbazında, "Uygulamanızı nasıl içe aktarmak istersiniz?" adımında Bir zip dosyası yükleyin'i seçin.
  2. İ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ı içeren bir yükleme çarkı gösterilir: "API etkinleştiriliyor..." "İzinler kontrol ediliyor..." ve "Bucket hazırlanıyor..."
    • Hata İşleme ve Koruma: Hazırlık adımlarından herhangi biri başarısız olursa (ör. Sahibi olmayan bir kullanıcı, yetersiz IAM izinleri nedeniyle 403 PERMISSION_DENIED alı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.
  3. 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.
  4. Ayarları Yapılandırın: Uygulama kök dizininizi belirtin (varsayılan olarak /).

  5. Bitir ve Dağıt'ı tıklayın: Arşiv yükleme 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, zip yüklemelerinde bağımsız "Bitir" düğmesi devre dışıdır.

B seçeneği: Manuel dağıtım oluşturma
  1. Açık iletişim: App Hosting kontrol panelinde Dağıtım oluştur'u tıklayın.
  2. Kaynak Seç: İletişim kutusunun adımında ZIP 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.
  3. Hazırlık ve Yükleme: Seçim, aynı arka plan hazırlık akışını ("API etkinleştiriliyor...", "İzinler kontrol ediliyor..." ve "Bucket hazırlanıyor..."). İşlem 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 oluşturmak 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 çalışmaya başlayabilirsiniz.

CI/CD için GitHub bağlantısı oluşturma

Firebase konsolundaki bir arka uç ayarlarının Dağıtım sekmesinde 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 etkilenmese de Firebase Studio bölümündeki Yayınla düğmesi kullanımdan kaldırılacak. URL'nizi değiştirmeden güncellemeler yayınlamaya devam etmek için projenizi taşıyın. Nasıl taşıyacağınızı öğrenin.