Check out what’s new from Firebase at Google I/O 2022. Learn more

Облачные функции для Firebase

Cloud Functions for Firebase — это бессерверная платформа, которая позволяет автоматически запускать серверный код в ответ на события, вызванные функциями Firebase и HTTPS-запросами. Ваш код JavaScript или TypeScript хранится в облаке Google и работает в управляемой среде. Нет необходимости управлять собственными серверами и масштабировать их.

Уже используете облачные функции в Google Cloud? Узнайте больше о том, как Firebase вписывается в картину.

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

Ключевые возможности

Интегрирует платформу Firebase

Написанные вами функции могут реагировать на события, генерируемые различными функциями Firebase и Google Cloud, от триггеров аутентификации Firebase до триггеров облачного хранилища .

Интегрируйте функции Firebase с помощью Admin SDK вместе с Cloud Functions и интегрируйте их со сторонними сервисами, создавая собственные веб-перехватчики. Облачные функции минимизируют шаблонный код, упрощая использование Firebase и Google Cloud внутри вашей функции.
Нулевое обслуживание Разверните свой код JavaScript или TypeScript на наших серверах с помощью одной команды из командной строки. После этого Firebase автоматически масштабирует вычислительные ресурсы в соответствии с моделями использования ваших пользователей. Вам никогда не придется беспокоиться об учетных данных, конфигурации сервера, подготовке новых серверов или выводе из эксплуатации старых.
Обеспечивает конфиденциальность и безопасность вашей логики Во многих случаях разработчики предпочитают контролировать логику приложения на сервере, чтобы избежать вмешательства на стороне клиента. Кроме того, иногда нежелательно допускать обратное проектирование этого кода. Облачные функции полностью изолированы от клиента, поэтому вы можете быть уверены, что они конфиденциальны и всегда делают именно то, что вам нужно.

Как это работает?

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

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

Жизненный цикл фоновой функции

  1. Вы пишете код для новой функции, выбираете поставщика событий (например, Cloud Firestore) и определяете условия, при которых функция должна выполняться.
  2. Когда вы развертываете свою функцию:
    1. Интерфейс командной строки Firebase создает .zip -архив с кодом функции, который затем загружается в корзину облачного хранилища (с префиксом gcf-sources ) в вашем проекте Firebase.
    2. Cloud Build извлекает код функции и создает исходный код функции. Вы можете просмотреть журналы Cloud Build в Google Cloud Console .
    3. Образ контейнера для встроенного кода функций загружается в частный репозиторий Container Registry в вашем проекте (с именем gcf ), и ваша новая функция развертывается.
  3. Когда поставщик событий генерирует событие, соответствующее условиям функции, вызывается код.
  4. Если функция занята обработкой большого количества событий, Google создает больше экземпляров, чтобы обрабатывать работу быстрее. Если функция простаивает, экземпляры очищаются.
  5. Когда вы обновляете функцию путем развертывания обновленного кода, экземпляры более старых версий очищаются вместе с артефактами сборки в Cloud Storage и Container Registry и заменяются новыми экземплярами.
  6. При удалении функции все экземпляры и zip-архивы очищаются вместе со связанными артефактами сборки в Cloud Storage и Container Registry. Связь между функцией и поставщиком событий удалена.

Помимо прослушивания событий с помощью фоновой функции, вы можете вызывать функции напрямую с помощью HTTP-запроса или вызова от клиента .

Путь реализации

Настройка облачных функций Установите интерфейс командной строки Firebase и инициализируйте облачные функции в своем проекте Firebase.
Напишите функции Напишите код JavaScript (или код TypeScript для транспиляции при развертывании) для обработки событий из служб Firebase, облачных служб Google или других поставщиков событий.
Тестовые функции Используйте локальный эмулятор для проверки своих функций.
Развертывание и мониторинг Включите выставление счетов для своего проекта и разверните свои функции с помощью интерфейса командной строки Firebase. Вы можете использовать консоль Firebase для просмотра и поиска в журналах.

Следующие шаги