Сравнение версий облачных функций

Существует две версии Cloud Functions for Firebase :

  • Cloud Functions (2-го поколения) — это сервис, который развертывает ваши функции в Cloud Run , позволяя запускать их с помощью Eventarc и Pub/Sub .
  • Cloud Functions (1-го поколения) — оригинальная версия функций с ограниченным количеством триггеров событий и возможностями настройки.

Мы рекомендуем по возможности выбирать Cloud Functions (2-го поколения) для новых функций. Однако мы планируем продолжать поддержку Cloud Functions (1-го поколения).

На этой странице описаны функции, представленные в Cloud Functions , и приведено сравнение двух версий продукта.

Cloud Functions (2-го поколения)

Cloud Functions — это сервис нового поколения от Firebase, предоставляющий функции как услугу (Functions-as-a-Service). Созданный на основе Cloud Run и Eventarc , Cloud Functions (2-го поколения) обеспечивает улучшенную инфраструктуру и более широкое покрытие событий для Cloud Functions , включая:

  • Функции создаются с помощью Cloud Run Cloud Build и развертываются как сервисы Cloud Run , используя среду выполнения Cloud Run по умолчанию. Это позволяет настраивать функцию так же, как и любой сервис Cloud Run . Для получения информации о параметрах настройки сервиса, таких как ограничения памяти , переменные среды и т.д., обратитесь к документации Cloud Run .
  • Увеличение времени обработки запросов : Запускайте задачи с длительными запросами, например, обработку больших потоков данных из Cloud Storage или BigQuery .
  • Увеличение размера экземпляра : позволяет запускать ресурсоемкие, вычислительно сложные и параллельные рабочие нагрузки.
  • Улучшена параллельность : обработка нескольких одновременных запросов с помощью одного экземпляра функции для минимизации холодных запусков и снижения задержки.
  • Управление трафиком : распределение трафика между различными версиями функций или откат функции к предыдущей версии.
  • Интеграция Eventarc : встроенная поддержка триггеров Eventarc , позволяющая использовать все более 90 источников событий, поддерживаемых Eventarc , в Cloud Functions .
  • Расширенная поддержка CloudEvents : поддержка стандартных для отрасли протоколов CloudEvents во всех средах выполнения для всех языков программирования, обеспечивающая единообразный интерфейс для разработчиков.

Подробности смотрите в сравнительной таблице .

Поскольку Cloud Functions развертывает функции в качестве сервисов на Cloud Run , Cloud Functions разделяет квоты и ограничения на ресурсы с Cloud Run . См. раздел «Квоты» .

Таблица сравнения

Особенность Cloud Functions (1-го поколения) Cloud Functions
реестр изображений Container Registry или Artifact Registry Только Artifact Registry
Истекло время ожидания запроса До 9 минут
  • До 60 минут для функций, запускаемых по протоколу HTTP.
  • До 9 минут для функций, запускаемых по событию.
Служебный аккаунт* Сервисный аккаунт Google App Engine ( PROJECT_ID ) Учетная запись вычислительной службы Google Cloud по умолчанию ( PROJECT_NUMBER -compute@developer.gserviceaccount.com)
Размер экземпляра До 8 ГБ оперативной памяти с 2 виртуальными процессорами. До 16 ГБ оперативной памяти с 4 виртуальными процессорами.
Параллелизм 1 одновременный запрос на каждый экземпляр функции До 1000 одновременных запросов на один экземпляр функции.

* Это учетная запись службы по умолчанию, используемая для доступа к API Firebase или Cloud из запущенной функции. Она используется SDK администратора Firebase при инициализации без аргументов .

Цены

Информацию о ценах см. в разделе «Тарифные планы Firebase» .

Вы можете просмотреть свои расходы, связанные с Cloud Functions , следующим образом:

  1. Перейдите на страницу «Отчеты Cloud Billing » в консоли Google Cloud.
  2. При появлении запроса выберите платежный аккаунт, связанный с вашим проектом Google Cloud.
  3. В панели «Фильтры» , в разделе «Метки» , добавьте фильтр меток с ключом goog-managed-by и значением cloudfunctions .

Ограничения

Cloud Functions for Firebase (2-го поколения) не поддерживает события Analytics .

Хотя Cloud Functions for Firebase (2-го поколения) поддерживает события блокировки аутентификации, он не поддерживает тот же набор базовых событий Authentication , что и 1-е поколение.

Однако, поскольку функции первого и второго поколений могут сосуществовать в одном исходном файле, вы по-прежнему можете разрабатывать и развертывать триггеры Analytics и базовой Authentication для функций первого поколения вместе с функциями второго поколения.