Cloud Functions для Firebase

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

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

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

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

Интегрирует функции Firebase и обеспечивает связь Firebase с Google Cloud.

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

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

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

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

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

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

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

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

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

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

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