Firebase Hosting предоставляет инструменты как через консоль Firebase , так и через Firebase CLI для управления каналами, релизами и версиями вашего сайта Hosting .
Обзор инфраструктуры Hosting
Понимание инфраструктуры Hosting поможет вам разобраться в вариантах управления, описанных на этой странице.
Каждый проект Firebase имеет сайт Hosting по умолчанию с доступом ко всем ресурсам проекта (базы данных, аутентификация, функции и т. д.). Сайт содержит один или несколько каналов , где каждый канал связан с URL, который обслуживает определенный контент и конфигурацию Hosting .
Иерархия хостинга Firebase" />
Каждый Hosting сайт имеет "живой" канал, который обслуживает контент и конфигурацию Hosting на (1) поддоменах сайта, предоставленных Firebase ( SITE_ID .web.app
и SITE_ID .firebaseapp.com
) и (2) любых подключенных пользовательских доменах . Вы также можете по желанию создать каналы "предварительного просмотра", которые обслуживают свой собственный контент и конфигурацию на временных, общих "URL-адресах предварительного просмотра" (SITE_ID -- CHANNEL_ID - RANDOM_HASH .web.app
).
Контент и конфигурация, обслуживаемые каждым каналом, упакованы в объект версии , имеющий уникальный идентификатор. При развертывании на вашем сайте Firebase создает объект релиза , который указывает на определенную версию. Релиз содержит метаданные о развертывании, например, кто и когда выполнил развертывание.
На панели Hosting вашего проекта Firebase вы можете увидеть полную историю релизов вашего живого канала в таблице истории релизов . Если у вас несколько сайтов Hosting , нажмите «Просмотр» для нужного сайта, чтобы увидеть его историю релизов. Если у вас есть какие-либо каналы предварительного просмотра, они также отображаются на панели управления Hosting .
Управление настройками канала
Для каждого канала вашего сайта вы можете управлять его настройками. Некоторые настройки, такие как истечение срока действия канала, применимы только для каналов предварительного просмотра.
Ограничьте количество сохраняемых релизов
Каждый раз, когда вы развертываете на канале (и создаете релиз), Hosting сохраняет версию, связанную с предыдущим релизом, в хранилище Hosting вашего проекта. Вы можете задать количество релизов, которые нужно хранить для каждого канала в вашем проекте, как в реальном времени, так и в предварительном просмотре.
Почему Hosting хранит предыдущие релизы?
Для вашего живого канала сохранение предыдущих релизов позволяет вам откатиться к предыдущей версии вашего сайта, если это необходимо. Для ваших каналов предварительного просмотра откат пока недоступен.Зачем ограничивать количество сохраняемых релизов?
Эта функция может помочь вам контролировать уровень использования хранилища Hosting вашего проекта , поскольку контент для предыдущих релизов хранится в этом хранилище. Вы можете контролировать хранилище Hosting на вкладке Storage в консоли.Что произойдет, если ограничить количество сохраняемых релизов?
Если вы устанавливаете лимит на количество хранимых релизов, содержимое любых релизов, превышающих установленный лимит, будет удалено, начиная с самых старых релизов .
Вот как установить лимит хранения релизов для канала:
В консоли Firebase откройте диалоговое окно настроек хранилища релизов:
Для вашего живого канала
В таблице «История релизов» для вашего сайта нажмите , затем выберите Настройки хранилища релизов .Для любого канала предварительного просмотра
В строке предварительного просмотра канала нажмите , затем выберите Настройки канала .
Введите количество релизов, которые вы хотели бы сохранить, затем нажмите «Сохранить» .
Установить срок действия предварительного просмотра канала
По умолчанию срок действия канала предварительного просмотра истекает через 7 дней с даты его создания, но срок действия канала прямого эфира вашего сайта не истекает никогда.
Когда срок действия канала предварительного просмотра истекает, канал вместе с его релизами и связанными с ним версиями планируется удалить в течение 24 часов. Связанный URL предварительного просмотра также деактивируется. Исключением из этого удаления версии является случай, когда версия связана с другим релизом (это происходит, например, если вы клонируете версию с одного канала на другой в пределах одного сайта ).
Hosting поддерживает два разных способа управления сроком действия канала:
Консоль Firebase
В строке для предварительного просмотра канала нажмите , затем выберите Настройки канала . Введите дату и время истечения срока действия.Firebase CLI
При развертывании на предварительном канале передайте флаг--expires DURATION
, например:firebase hosting:channel:deploy new-awesome-feature --expires 7d
Срок действия может составлять до 30 дней с даты развертывания. Используйте
h
для часов,d
для дней иw
для недель (например,12h
,7d
,2w
соответственно).
Клонировать версию с одного канала на другой
Вы можете клонировать развернутую версию из одного канала в другой канал. Вы можете клонировать по каналам live или preview, по сайтам Hosting или даже по проектам Firebase.
Команда клонирования также развертывается на «целевом» канале, так что клонированный контент и конфигурация Hosting автоматически обслуживаются по связанному URL-адресу «целевого» канала.
Эта функция полезна для отслеживания версий или если вы хотите быть уверены, что вы развертываете именно тот контент, который вы просмотрели и/или протестировали на другом канале. Вот несколько примеров:
Клонирование канала предварительного просмотра «QA» на действующий канал вашего сайта (запуск в эксплуатацию!)
Клонирование из живого канала вашего сайта в «отладочный» канал предварительного просмотра (как до отката)
Клонирование из канала в вашем «промежуточном» проекте Firebase в канал предварительного просмотра в вашем «производственном» проекте Firebase
Чтобы клонировать версию, выполните следующую команду из любого каталога:
firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID
Замените каждый заполнитель следующим:
SOURCE_SITE_ID и TARGET_SITE_ID : это идентификаторы сайтов Hosting , содержащих каналы.
- Для вашего Hosting сайта по умолчанию используйте идентификатор вашего проекта Firebase.
- Вы можете указать сайты Hosting , которые находятся в одном проекте Firebase или даже в разных проектах Firebase.
SOURCE_CHANNEL_ID и TARGET_CHANNEL_ID : это идентификаторы каналов.
- Для прямого эфира используйте
live
в качестве идентификатора канала. - Если указанный «целевой» канал еще не существует, эта команда создает канал перед развертыванием на нем.
- Для прямого эфира используйте
Когда вы клонируете версию из одного канала в другой канал на том же сайте Hosting , Firebase создает новый объект релиза, который указывает на ту же самую версию . Вы увидите два релиза на вашем сайте Hosting , которые оба указывают на одну и ту же версию (как идентифицируется по идентификатору версии).
Однако если вы клонируете версию на канал на другом сайте Hosting (или в другом проекте Firebase), Firebase создаст как новый релиз, так и новую версию (идентифицируемую по другому идентификатору версии).
Вернитесь к предыдущей версии вашего сайта
Вы можете выполнить откат, чтобы обслуживать предыдущую версию живого канала вашего сайта. Это действие полезно, если в вашем текущем выпуске есть проблема, и вы хотите выполнить откат, чтобы обслуживать известную рабочую версию вашего сайта. Или, возможно, ваш сайт обслуживал временный контент для праздника или особого события, но теперь вы хотите выполнить откат, чтобы обслуживать ваш "обычный" контент.
Откатываясь назад, вы создаете новый релиз, который обслуживает ту же версию контента, что и предыдущий релиз. В вашей таблице истории релизов оба релиза будут содержать один и тот же идентификатор версии.
Вот как можно выполнить откат:
В консоли Firebase в таблице «История релизов» для вашего сайта наведите курсор на предыдущую запись релиза, к которой вы хотите вернуться.
Нажмите
, затем выберите Откатить .
Удалить релиз вручную
Вам может потребоваться вручную удалить релиз из вашего живого канала, чтобы освободить хранилище Hosting для вашего проекта. Вы можете удалить только предыдущие релизы, а не релиз, который в данный момент обслуживается на вашем живом сайте.
Когда вы удаляете релиз, вы фактически удаляете его содержимое, которое запланировано к удалению в течение 24 часов. Сам объект релиза сохраняется, так что вы по-прежнему можете видеть его метаданные (кто развернул и когда развернул).
Вот как удалить релиз:
В консоли Firebase в таблице «История релизов» для вашего сайта наведите указатель мыши на предыдущую запись релиза, которую вы хотите удалить.
Нажмите
, затем выберите Удалить .
Удалить файлы вручную
В Firebase Hosting основным способом удаления выбранных файлов с развернутого сайта является локальное удаление файлов с последующим повторным развертыванием.
Удалить канал предварительного просмотра вручную
Вы можете предварительно просмотреть свои каналы, нажав на канал, который вы хотите предварительно просмотреть. Из этого представления вы можете просматривать, удалять и откатывать новейшие развертывания и выпуски, которые привязаны к определенному каналу. Вы можете удалить канал предварительного просмотра, но вы не можете удалить канал вашего сайта в реальном времени.
При удалении канала предварительного просмотра, канал вместе с его релизами и связанными с ним версиями планируется удалить в течение 24 часов. Связанный URL предварительного просмотра также деактивируется. Исключением из удаления версии является случай, когда версия связана с другим релизом (это происходит, например, если вы клонируете версию с одного канала на другой в пределах одного сайта ).
Hosting поддерживает два разных способа удаления канала предварительного просмотра:
Консоль Firebase
В строке для канала предварительного просмотра нажмите , затем выберите Удалить канал . Подтвердите удаление.Firebase CLI
Выполните следующую команду из любого каталога:firebase hosting:channel:delete CHANNEL_ID
Команды CLI для предварительного просмотра каналов и клонирования
Команды для предварительного просмотра каналов
Все команды для каналов предварительного просмотра поддерживают цели развертывания, если у вас несколько сайтов Hosting .
Команда | Описание |
---|---|
firebase hosting:channel:create CHANNEL_ID | Создает новый канал предварительного просмотра на сайте Hosting по умолчанию, используя указанный Эта команда не развертывается в канале. |
firebase hosting:channel:delete CHANNEL_ID | Удаляет указанный канал предварительного просмотра Вы не можете удалить прямой эфир сайта. |
firebase hosting:channel:deploy CHANNEL_ID | Развертывает ваш Hosting контент и конфигурацию на указанном канале предварительного просмотра. Если канал предварительного просмотра еще не существует, эта команда создает канал на сайте Hosting по умолчанию перед развертыванием на канале. |
firebase hosting:channel:list | Перечисляет все каналы (включая «живой» канал) на сайте Hosting по умолчанию |
firebase hosting:channel:open CHANNEL_ID | Открывает браузер по указанному URL-адресу канала или возвращает URL-адрес, если открытие в браузере невозможно. |
Команды для клонирования версий
Команда | Описание |
---|---|
firebase hosting:clone \ | Клонирует последнюю развернутую версию на указанном «исходном» канале в указанный «целевой» канал. Эта команда также развертывает указанный "целевой" канал. Если "целевой" канал еще не существует, эта команда создает новый канал предварительного просмотра на "целевом" сайте Hosting перед развертыванием на канале. |
firebase hosting:clone \ | Клонирует указанную версию в указанный «целевой» канал. Эта команда также развертывает указанный "целевой" канал. Если "целевой" канал еще не существует, эта команда создает новый канал предварительного просмотра на "целевом" сайте Hosting перед развертыванием на канале. Вы можете найти |