Canlı yayınları yönetin siteniz için kanalları, sürümleri ve sürümleri önizleme

Firebase Hosting, Firebase konsolu ve Firebase CLI aracılığıyla Hosting sitenizin kanallarını, sürümlerini ve versiyonlarını yönetmek için araçlar sunar.

Hosting altyapısına genel bakış

Hosting altyapısını anlamak, bu sayfada açıklanan yönetim seçeneklerini anlamanıza yardımcı olur.

Her Firebase projesinin, projenin tüm kaynaklarına (veritabanları, kimlik doğrulama, işlevler vb.) erişimi olan varsayılan bir Hosting sitesi vardır. Bir sitede bir veya daha fazla kanal bulunur. Her kanal, belirli içeriklerin sunulduğu bir URL ve bir Hosting yapılandırmasıyla ilişkilendirilir.

Firebase Hosting hiyerarşisinin görüntüsü

Her Hosting sitesinin, içerik yayınlayan bir "canlı" kanalı ve (1) sitenin Firebase tarafından sağlanan alt alan adlarında (SITE_ID.web.app ve SITE_ID.firebaseapp.com) ve (2) bağlı tüm özel alan adlarında bir Hosting yapılandırması vardır. İsteğe bağlı olarak, kendi içeriklerini ve yapılandırmalarını geçici, paylaşılabilir "önizleme URL'lerinde" (SITE_ID--CHANNEL_ID-RANDOM_HASH.web.app) sunan "önizleme" kanalları da oluşturabilirsiniz.

Her kanal tarafından sunulan içerik ve yapılandırma, benzersiz tanımlayıcıya sahip bir sürüm nesnesi olarak paketlenir. Sitenize dağıtım yaptığınızda Firebase, belirli bir sürümü işaret eden bir yayın nesnesi oluşturur. Yayın, dağıtımla ilgili meta verileri (ör. kimin ne zaman dağıtım yaptığı) içerir.

Firebase projenizin Hosting kontrol panelinde, canlı kanalınızın yayınlarının tam geçmişini Yayın geçmişi tablosunda görebilirsiniz. Birden fazla Hosting siteniz varsa yayın geçmişini görmek istediğiniz site için Görüntüle'yi tıklayın. Önizleme kanallarınız varsa bunlar da Hostingkontrol panelinde gösterilir.

Kanal ayarlarını yönetme

Sitenizin her kanalı için ayarları kontrol edebilirsiniz. Kanalın süresinin dolması gibi bazı ayarlar yalnızca önizleme kanalları için geçerlidir.

Saklanacak yayın sayısını sınırlayın

Bir kanala her dağıtım yaptığınızda (ve yayın oluşturduğunuzda) Hosting, projenizin Hosting depolama alanında önceki yayınla ilişkili sürümü saklar. Projenizdeki her kanal için (hem canlı hem de önizleme kanalları) saklanacak sürüm sayısını ayarlayabilirsiniz.

  • Hosting neden önceki sürümleri saklıyor?
    Canlı kanalınız için önceki sürümleri tutmak, gerekirse sitenizin önceki bir sürümüne geri çekmenizi sağlar. Önizleme kanallarınızda geri alma özelliği henüz kullanılamamaktadır.

  • Saklanacak yayın sayısını neden sınırlamalıyım?
    Bu özellik, önceki sürümlere ait içerikler bu depolama alanında tutulduğu için projenizin Hosting depolama alanının kullanım düzeyini kontrol etmenize yardımcı olabilir. Hosting depolama alanınızı konsoldaki Depolama sekmesinden izleyebilirsiniz.

  • Saklanacak yayın sayısını sınırladığınızda ne olur?
    Saklanacak sürüm sayısı için bir sınır belirlediğinizde, belirlediğiniz sınırı aşan sürümlerin içeriği silinmek üzere planlanır. En eski sürümlerden başlanarak silme işlemi gerçekleştirilir.

Bir kanal için yayın depolama alanı sınırını şu şekilde ayarlayabilirsiniz:

  1. Firebase konsolunda, yayın depolama alanı ayarı iletişim kutusuna erişmek için Hosting & Serverless (Barındırma ve Sunucusuz) > Hosting'e gidin:

    • Canlı kanalınız için
      Sitenizin Yayın Geçmişi tablosunda simgesini tıklayın, ardından Yayın depolama ayarları'nı seçin.

    • Tüm önizleme kanalları için
      Önizleme kanalının satırında simgesini tıklayın, ardından Kanal ayarları'nı seçin.

  2. Saklamak istediğiniz yayın sayısını girip Kaydet'i tıklayın.

Önizleme kanalının geçerlilik bitiş tarihini ayarlama

Önizleme kanallarının süresi varsayılan olarak oluşturulma tarihinden itibaren 7 gün sonra dolar ancak sitenizin canlı kanalının süresi asla dolmaz.

Bir önizleme kanalının geçerlilik süresi dolduğunda kanal, yayınları ve ilişkili sürümleriyle birlikte 24 saat içinde silinmek üzere planlanır. İlişkili önizleme URL'si de devre dışı bırakılır. Bu sürüm silme işlemine bir istisna vardır: Bir sürüm başka bir yayınla ilişkilendirilmişse (örneğin, bir sürümü bir kanaldan aynı site içindeki başka bir kanala klonlarsanız bu durum oluşur) sürüm silinmez.

Hosting, kanalın geçerlilik süresini kontrol etmenin iki farklı yolunu destekler:

  • Firebase konsolu
    Önizleme kanalının satırında simgesini tıklayın, ardından Kanal ayarları'nı seçin. Son kullanma tarihini ve saatini girin.

  • Firebase CLI
    Önizleme kanalınıza dağıtım yaparken --expires DURATION işaretini iletin. Örneğin:

    firebase hosting:channel:deploy new-awesome-feature --expires 7d

    Geçerlilik süresi, dağıtım tarihinden itibaren 30 günü bulabilir. Saat için h, gün için d, hafta için w kullanın (örneğin, sırasıyla 12h, 7d, 2w).

Bir kanaldaki sürümü başka bir kanala kopyalama

Dağıtılan bir sürümü bir kanaldan farklı bir kanala klonlayabilirsiniz. Canlı veya önizleme kanallarında, Hosting sitelerinde, hatta Firebase projelerinde klonlama yapabilirsiniz.

Klonlama komutu, klonlanan içerik ve yapılandırmanın "hedef" kanalın ilişkili URL'sinde otomatik olarak sunulması için"hedef" kanala da dağıtım yapar.Hosting

Bu özellik, sürüm takibi için veya başka bir kanalda görüntülediğiniz ve/veya test ettiğiniz tam içeriği dağıttığınızdan emin olmak istediğinizde kullanışlıdır. Aşağıda bazı örnekler verilmiştir:

  • Sitenizin canlı kanalına "kalite güvencesi" önizleme kanalından klonlama (yayına alma)

  • Sitenizin canlı kanalından bir "hata ayıklama" önizleme kanalına (ör. geri alma işleminden önce) klonlama

  • "Hazırlama" Firebase projenizdeki bir kanaldan "üretim" Firebase projenizdeki bir önizleme kanalına kopyalama

Bir sürümü klonlamak için herhangi bir dizinden aşağıdaki komutu çalıştırın:

firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID

Her yer tutucuyu aşağıdakilerle değiştirin:

  • SOURCE_SITE_ID ve TARGET_SITE_ID: Bunlar, kanalları içeren Hosting sitelerinin kimlikleridir.

    • Varsayılan Hosting siteniz için Firebase proje kimliğinizi kullanın.
    • Aynı Firebase projesinde veya farklı Firebase projelerinde bulunan Hosting site belirtebilirsiniz.
  • SOURCE_CHANNEL_ID ve TARGET_CHANNEL_ID: Bunlar, kanalların tanımlayıcılarıdır.

    • Canlı kanal için kanal kimliği olarak live simgesini kullanın.
    • Belirtilen "hedef" kanal henüz mevcut değilse bu komut, kanala dağıtım yapmadan önce kanalı oluşturur.

Sitenizin önceki bir sürümüne geri dönme

Sitenizin canlı kanalının önceki bir sürümünü sunmak için geri dönebilirsiniz. Bu işlem, mevcut sürümünüzde bir sorun varsa ve sitenizin bilinen çalışan bir sürümünü sunmak için geri dönmek istiyorsanız kullanışlıdır. Veya sitenizde bir tatil ya da özel etkinlik için geçici içerik yayınlanmış olabilir ancak artık "normal" içeriğinizi yayınlamaya geri dönmek istiyorsunuzdur.

Geri dönerek, önceki bir sürümle aynı içerik sürümünü sunan yeni bir sürüm oluşturursunuz. Sürüm geçmişi tablonuzda her iki sürüm de aynı sürüm tanımlayıcısını listeler.

Geri alma işlemini şu şekilde yapabilirsiniz:

  1. Firebase konsolunda Hosting & Serverless (Barındırma ve Sunucusuz) > Hosting'e gidin.

  2. Sitenizin Yayın geçmişi tablosunda, geri dönmek istediğiniz önceki yayın girişinin üzerine gelin.

  3. simgesini tıklayın ve Geri çek'i seçin.

Sürümü manuel olarak silme

Projeniz için Hosting depolama alanı açmak üzere bir yayını canlı kanalınızdan manuel olarak silmeniz gerekebilir. Yalnızca önceki sürümleri silebilirsiniz. Canlı sitenizde şu anda sunulan sürümü silemezsiniz.

Bir yayını sildiğinizde aslında içeriğini silmiş olursunuz. Bu içerik, 24 saat içinde silinmek üzere planlanır. Yayın nesnesi, meta verilerini (kimin ne zaman dağıttığı) görmeye devam edebilmeniz için saklanır.

Yayınları silmek için:

  1. Firebase konsolunda Hosting & Serverless (Barındırma ve Sunucusuz) > Hosting'e gidin.

  2. Sitenizin Yayın Geçmişi tablosunda, silmek istediğiniz önceki yayın girişinin üzerine gelin.

  3. simgesini tıklayın ve Sil'i seçin.

Dosyaları manuel olarak silme

Firebase Hosting'da, dağıtılan bir siteden seçili dosyaları silmenin birincil yolu, dosyaları yerel olarak silip yeniden dağıtmaktır.

Önizleme kanalını manuel olarak silme

Önizlemek istediğiniz kanalı tıklayarak kanallarınızı önizleyebilirsiniz. Bu görünümde, belirli kanalla ilişkili en yeni dağıtımları ve yayınları görebilir, silebilir ve geri alabilirsiniz. Önizleme kanalını silebilirsiniz ancak sitenizin canlı kanalını silemezsiniz.

Bir önizleme kanalını sildiğinizde, kanalın yanı sıra yayınları ve ilişkili sürümleri de 24 saat içinde silinmek üzere planlanır. İlişkili önizleme URL'si de devre dışı bırakılır. Bir sürümün başka bir yayınla ilişkilendirilmesi durumunda sürüm silme işlemi istisnadır (örneğin, bir sürümü bir kanaldan aynı site içindeki başka bir kanala klonlarsanız bu durum oluşur).

Hosting, önizleme kanallarını silmek için iki farklı yöntemi destekler:

  • Firebase konsolu
    Önizleme kanalının satırında simgesini tıklayın, ardından Kanalı sil'i seçin. Silme işlemini onaylayın.

  • Firebase CLI
    Herhangi bir dizinden aşağıdaki komutu çalıştırın:

    firebase hosting:channel:delete CHANNEL_ID

Önizleme kanalları ve klonlama için KSA komutları

Önizleme kanallarına yönelik komutlar

Birden fazla Hosting siteniz varsa önizleme kanallarıyla ilgili tüm komutlar dağıtım hedeflerini destekler.

Komut Açıklama
firebase hosting:channel:create CHANNEL_ID

Belirtilen CHANNEL_ID kullanarak varsayılan Hosting sitesinde yeni bir önizleme kanalı oluşturur.

Bu komut kanala dağıtılmaz.

firebase hosting:channel:delete CHANNEL_ID

Belirtilen önizleme kanalını siler.

Bir sitenin canlı kanalını silemezsiniz.

firebase hosting:channel:deploy CHANNEL_ID

Hosting içeriğinizi ve yapılandırmanızı belirtilen önizleme kanalına dağıtır.

Önizleme kanalı henüz mevcut değilse bu komut, kanala dağıtmadan önce varsayılan Hosting sitesinde kanalı oluşturur.

firebase hosting:channel:list Hosting sitesindeki tüm kanalları ("canlı" kanalı dahil) listeler.
firebase hosting:channel:open CHANNEL_ID Belirtilen kanalın URL'si için bir tarayıcı açar veya tarayıcıda açmak mümkün değilse URL'yi döndürür.

Sürüm klonlama komutları

Komut Açıklama
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Belirtilen "kaynak" kanalındaki en son dağıtılan sürümü belirtilen "hedef" kanala kopyalar.

Bu komut, belirtilen "hedef" kanala da dağıtılır. "target" kanalı henüz mevcut değilse bu komut, kanala dağıtmadan önce "target" Hosting sitesinde yeni bir önizleme kanalı oluşturur.

firebase hosting:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Belirtilen sürümü, belirtilen "hedef" kanala kopyalar.

Bu komut, belirtilen "hedef" kanala da dağıtılır. "target" kanalı henüz mevcut değilse bu komut, kanala dağıtmadan önce "target" Hosting sitesinde yeni bir önizleme kanalı oluşturur.

VERSION_ID simgesini Firebase konsolunun Hosting kontrol panelinde bulabilirsiniz.