Предоставляйте динамический контент и размещайте микросервисы с помощью хостинга 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 FAQ .

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

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