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

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

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

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

Случаи применения

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

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

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

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

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

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

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

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

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

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

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

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

JavaScript и TypeScript

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

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

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

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

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

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

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