Предоставляйте динамический контент и размещайте микросервисы с помощью хостинга Firebase.

Firebase Hosting интегрируется с функциями бессерверных вычислений, включая Cloud Functions for Firebase и Cloud Run . Используя Firebase Hosting с этими функциями, вы можете размещать микросервисы, направляя HTTPS-запросы для запуска ваших функций и контейнеризированных приложений в управляемой безопасной среде.

Cloud Functions for Firebase : вы пишете и развёртываете функцию, представляющую собой бэкенд-код, реагирующий на определённый триггер. Затем, используя Firebase Hosting , вы можете направлять HTTPS-запросы для запуска этой функции.

Cloud Run : вы пишете и развертываете приложение, упакованное в образ контейнера. Затем, используя Firebase Hosting , вы можете направлять HTTPS-запросы для запуска вашего контейнерного приложения.

Варианты использования

Как можно использовать возможности бессерверных вычислений с Firebase Hosting ?

  • Обслуживание динамического контента . Помимо обслуживания статического контента на сайте Hosting , вы можете обслуживать динамически сгенерированные ответы из функции или контейнерного приложения, которое выполняет логику на стороне сервера.

    Например, вы можете указать шаблон URL (например, /blog/<blog-post-id> ) для функции, которая использует параметр идентификатора записи блога URL-адреса для динамического извлечения контента из вашей базы данных.

  • Создавайте REST API . Вы можете создать API микросервисов с помощью функций.

    Например, функции могут управлять функцией входа на вашем сайте. Пока ваш сайт размещен в каталоге / , любой запрос к /api перенаправляется на API вашего микросервиса. Например, ознакомьтесь с этим примером с открытым исходным кодом .

  • Кэширование динамического контента . Вы можете настроить кэширование динамического контента на глобальной сети доставки контента (CDN).

    Например, если функция генерирует новый контент лишь периодически, вы можете ускорить работу приложения, кэшируя сгенерированный контент хотя бы на короткий период времени. Кроме того, вы можете потенциально снизить затраты на выполнение, поскольку контент предоставляется через CDN, а не через триггерную функцию или контейнерное приложение.

  • Предварительно визуализируйте свои одностраничные приложения — вы можете улучшить SEO и оптимизировать обмен информацией в различных социальных сетях, создав динамические meta . Чтобы узнать больше, посмотрите это видео или ознакомьтесь с этим примером с открытым исходным кодом .

Выбор бессерверного варианта

Хотя и Cloud Functions for Firebase , и Cloud Run интегрируются с Firebase Hosting и предлагают полностью управляемую, автоматически масштабируемую и безопасную бессерверную среду, оба варианта можно использовать для разных вариантов использования и желаемого уровня индивидуальной конфигурации.

При использовании любого из вариантов без сервера лучше всего разместить его совместно с серверами для Firebase Hosting , развернув его в одном из следующих регионов:

  • us-west1
  • us-central1
  • us-east1
  • europe-west1
  • asia-east1

В следующей таблице описаны некоторые основные моменты, которые следует учитывать при использовании Cloud Functions for Firebase и Cloud Run . Полный список квот, ограничений и показателей см. в подробной документации каждого продукта ( Cloud Functions for Firebase или Cloud Run ).

Рассмотрение Cloud Functions for Firebase Cloud Run
Настраивать Firebase CLI объединяет несколько задач в одну команду: от инициализации до сборки и развертывания. Контейнеры предлагают больше возможностей настройки, поэтому задачи настройки, сборки и развертывания включают отдельные этапы.
Среда выполнения Требуется Node.js, но вы можете указать, какую версию Node.js использовать. При создании контейнера вы указываете среду выполнения.
Поддержка языка и фреймворков

JavaScript и TypeScript

Поддерживаются веб-фреймворки, такие как Express.js.

Любой язык, поддерживаемый Dockerfiles, включая Go, Node.js, Python, Java и другие

Поддерживаются веб-фреймворки для каждого языка.

Тайм-аут запроса на Hosting 60 секунд (см. примечание ниже) 60 секунд (см. примечание ниже)
Параллелизм 1 запрос на экземпляр функции
(без параллелизма на экземпляр)
До 1000 одновременных запросов на экземпляр контейнера
Биллинг Использование Cloud Functions

Бесплатная квота использования, но требуется учётная запись Cloud Billing . См. раздел часто задаваемых вопросов Firebase .

Использование Cloud Run + хранилище Container Registry

Бесплатная квота использования, но требуется учетная запись Cloud Billing