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

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

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 site, bir veya daha fazla kanal içerir. Her kanal, belirli bir içeriği sunan bir URL ve Hosting yapılandırmasıyla ilişkilendirilir.

<span class=Firebase Hosting hiyerarşisi" />

Her Hosting sitesinde, 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ı bulunur. İsterseniz geçici ve paylaşılabilir "önizleme URL'lerinde" (SITE_ID--CHANNEL_ID-RANDOM_HASH.web.app) kendi içeriklerini ve yapılandırmalarını yayınlayan "önizleme" kanalları da oluşturabilirsiniz.

Her kanalın yayınladığı içerik ve yapılandırma, benzersiz bir tanımlayıcıya sahip bir sürüm nesnesine paketlenir. Sitenize dağıttığınızda Firebase, belirli bir sürümü işaret eden bir sürüm nesnesi oluşturur. Sürüm, dağıtımla ilgili meta verileri (ör. dağıtımı yapan kullanıcı ve dağıtım zamanı) içerir.

Firebase projenizin Hosting kontrol panelinde, canlı kanalınızın yayınlamaları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 için istediğiniz sitenin Göster'i tıklayın. Önizleme kanallarınız varsa bunlar da Hosting kontrol panelinde gösterilir.

Kanal ayarlarını yönetme

Sitenizdeki her kanalın ayarlarını kontrol edebilirsiniz. Kanalın geçerlilik süresi gibi bazı ayarlar yalnızca önizleme kanalları için geçerlidir.

Saklanacak sürüm sayısını sınırlama

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

  • Hosting neden önceki sürümleri saklar?
    Canlı kanalınızda önceki sürümleri saklayarak gerekirse sitenizin önceki bir sürümüne geri dönebilirsiniz. Önizleme kanallarınızda geri alma işlemi henüz kullanılamıyor.

  • Saklanacak sürüm sayısı neden sınırlandırılıyor?
    Bu özellik, önceki sürümlerin içeriği bu depolama alanında saklandığından 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 sürümleri sınırladığınızda ne olur?
    Saklanacak sürümler için bir sınır belirlediğinizde, belirlediğiniz sınırın üzerindeki sürümlerin içeriği, en eski sürümlerden başlayarak silinecek şekilde planlanır.

Bir kanalın sürüm depolama alanı sınırını ayarlamak için:

  1. Firebase konsolunda, sürüm depolama alanı ayarı iletişim kutusuna erişin:

    • Canlı kanalınız için
      Sitenizin Yayın Geçmişi tablosunda simgesini tıklayın ve Yayın depolama alanı 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 sürüm sayısını girip Kaydet'i tıklayın.

Önizleme kanalının geçerlilik süresini ayarlama

Varsayılan olarak, önizleme kanalının süresi oluşturulduğu tarihten itibaren 7 gün sonra dolar. Ancak sitenizin yayındaki kanalının süresi hiçbir zaman dolmaz.

Bir önizleme kanalının geçerlilik süresi dolduğunda kanal, sürümleri ve ilişkili versiyonlarıyla birlikte 24 saat içinde silinir. İlişkili önizleme URL'si de devre dışı bırakılır. Bir sürümün başka bir sürümle ilişkilendirilmesi, sürüm silme işleminin istisnası olarak kabul edilir (örneğin, aynı sitedeki bir sürümü bir kanaldan diğerine klonlarsanız bu durum gerçekleşir).

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 ve Kanal ayarları'nı seçin. Geçerlilik bitiş 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

    Son kullanma tarihi, dağıtım tarihinden itibaren 30 gün olabilir. Saatler için h, günler için d ve haftalar için w kullanın (örneğin, sırasıyla 12h, 7d, 2w).

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

Bir kanalda dağıtılan sürümü farklı bir kanala kopyalayabilirsiniz. Canlı veya önizleme kanalları, Hosting siteleri ve hatta Firebase projeleri arasında içerikleri kopyalayabilirsiniz.

Klonlama komutu, kopyalanan Hosting içeriğin ve yapılandırmanın "hedef" kanalın ilişkili URL'sinde otomatik olarak yayınlanması için"hedef" kanala da dağıtır.

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 istiyorsanız kullanışlıdır. Aşağıda bazı örnekler verilmiştir:

  • "Soru-cevap" önizleme kanalından sitenizin canlı kanalına kopyala (canlı yayına geçme)

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

  • "Hazırlık" Firebase projenizdeki bir kanalı "ü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ğıdakiyle değiştirin:

  • SOURCE_SITE_ID ve TARGET_SITE_ID: 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 siteyi belirtebilirsiniz.
  • SOURCE_CHANNEL_ID ve TARGET_CHANNEL_ID: Bunlar, kanalların tanımlayıcılarıdır.

    • Canlı kanallar için kanal kimliği olarak live değerini kullanın.
    • Belirtilen "hedef" kanal henüz mevcut değilse bu komut, kanala dağıtımdan ö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ü yayınlamak için geri dönebilirsiniz. Mevcut sürümünüzde sorun varsa ve sitenizin bilinen bir çalışan sürümünü yayınlamak için geri almak istiyorsanız bu işlemden yararlanabilirsiniz. Siteniz bir tatil veya özel etkinlik için geçici içerik yayınladıysa ancak artık "normal" içeriğinizi yayınlamak istiyorsanız da bu özelliği kullanabilirsiniz.

Geri döndüğünüzde, önceki 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, sitenizin Sürüm Geçmişi tablosunda, geri dönmek istediğiniz önceki sürüm girişinin üzerine gelin.

  2. simgesini tıklayın, ardından Geri al'ı seçin.

Bir sürümü manuel olarak silme

Projeniz için Hosting depolama alanı açmak amacıyla bir yayını canlı kanalınızdan manuel olarak silmeniz gerekebilir. Yalnızca yayındaki sitenizde sunulan sürümü değil, yalnızca önceki sürümleri silebilirsiniz.

Bir sürümü sildiğinizde aslında içeriğini silmiş olursunuz. İçerik, 24 saat içinde silinecek şekilde planlanır. Sürüm nesnesini muhafaza ederiz. Böylece, meta verilerini (kim tarafından ne zaman dağıtıldığını) görmeye devam edebilirsiniz.

Bir sürümü silmek için:

  1. Firebase konsolunda, sitenizin Sürüm Geçmişi tablosunda, silmek istediğiniz önceki sürüm girişinin üzerine gelin.

  2. simgesini tıklayın, ardından Sil'i seçin.

Dosyaları manuel olarak silme

Firebase Hosting'te, dağıtılmış bir sitedeki seçili dosyaları silme yönteminin birincil yolu, dosyaları yerel olarak silmek ve ardından 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 bir kanala bağlı en yeni dağıtımları ve sürümleri görebilir, silebilir ve geri alabilirsiniz. Bir önizleme kanalını silebilirsiniz ancak sitenizin canlı kanalını silemezsiniz.

Bir önizleme kanalını sildiğinizde, kanalın yanı sıra sürümleri ve ilişkili sürümleri 24 saat içinde silinecek şekilde planlanır. İlişkili önizleme URL'si de devre dışı bırakılır. Sürüm silme işleminin istisnası, bir sürümün başka bir sürümle ilişkilendirilmesidir (örneğin, aynı sitedeki bir sürümü bir kanaldan diğerine klonlarsanız bu durum gerçekleşir).

Hosting, önizleme kanallarını iki farklı şekilde silme özelliğini destekler:

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

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

    firebase hosting:channel:delete CHANNEL_ID

Kanalları önizleme ve kanalları kopyalama için CLI komutları

Önizleme kanalları için 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 öğesini 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.

Sitelerin canlı kanalları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, kanalı dağıtmadan önce varsayılan Hosting sitesinde oluşturur.

firebase hosting:channel:list Varsayılan Hosting sitesindeki tüm kanalları ("canlı" kanal dahil) listeler
firebase hosting:channel:open CHANNEL_ID Belirtilen kanalın URL'sini içeren bir tarayıcı açar veya tarayıcıda açma 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" kanaldaki en son dağıtılan sürümü, belirtilen "hedef" kanala kopyalar

Bu komut, belirtilen "hedef" kanala da dağıtılır. "Hedef" kanal henüz mevcut değilse bu komut, kanala dağıtımdan önce "hedef" 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. "Hedef" kanal henüz mevcut değilse bu komut, kanala dağıtımdan önce "hedef" Hosting sitesinde yeni bir önizleme kanalı oluşturur.

VERSION_ID'yi Firebase konsolunun Hosting kontrol panelinde bulabilirsiniz.