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-адреса для динамического извлечения контента из вашей базы данных.Создание API REST . Вы можете создать 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 объединяет несколько задач в отдельные команды: от инициализации до сборки и развертывания. | Контейнеры предлагают больше настраиваемых возможностей, поэтому задачи настройки, сборки и развертывания включают отдельные этапы. |
Среда выполнения | Требуется Node.js, но вы можете указать, какую версию Node.js использовать. | При создании контейнера вы указываете среду выполнения. |
Поддержка языка и фреймворков | JavaScript и TypeScript Поддерживаются веб-фреймворки, такие как Express.js. | Любой язык, поддерживаемый Dockerfiles, включая Go, Node.js, Python, Java и другие. Поддерживаются веб-фреймворки для каждого языка. |
Таймаут запроса на Hosting | 60 секунд (см. примечание ниже) | 60 секунд (см. примечание ниже) |
Параллелизм | 1 запрос на экземпляр функции (без параллелизма для каждого экземпляра) | До 1000 одновременных запросов на экземпляр контейнера |
Биллинг | Использование Cloud Functions Бесплатная квота использования, но требуется учетная запись Cloud Billing . См. FAQ по Firebase . | Использование Cloud Run + хранилище Container Registry Бесплатная квота использования, но требуется учетная запись Cloud Billing |