Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

Обслуживайте динамический контент и размещайте микросервисы с помощью Firebase Hosting

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

Облачные функции для Firebase : вы пишете и развертываете функцию, которая представляет собой внутренний код, который реагирует на определенный триггер. Затем, используя хостинг Firebase, вы можете направлять запросы HTTPS для запуска вашей функции.

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

Сценарии использования

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

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

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

  • Создание API REST - вы можете создать API микросервиса, используя функции.

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

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

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

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

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

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

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

Рассмотрение Облачные функции для Firebase Cloud Run
Настраивать Интерфейс командной строки Firebase объединяет несколько задач в отдельные команды, от инициализации до сборки и развертывания. Контейнеры предлагают больше настраиваемых параметров, поэтому задачи настройки, сборки и развертывания включают отдельные шаги.
Среда выполнения Требуется Node.js, но вы можете указать, какую версию Node.js использовать (в настоящее время версия 10 или 12). При создании контейнера вы указываете среду выполнения.
Поддержка языков и фреймворков

JavaScript и TypeScript

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

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

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

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

Квота бесплатного использования, но требуется учетная запись Cloud Billing . См. FAQ по Firebase .

Использование Cloud Run + хранилище реестра контейнеров

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