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

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

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

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

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

Интегрирует функции Firebase и соединяет Firebase с Google Cloud.

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

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

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

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

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

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

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

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

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

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

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