Сравнение версий Cloud Functions

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

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

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

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

Cloud Functions (второе поколение)

Cloud Functions – это предложение Firebase по функциям как услуге нового поколения. Cloud Functions (второе поколение) – это улучшенная инфраструктура и более широкий охват событий в Cloud Functions, созданные на основе Cloud Run и Eventarc. В частности, в этой версии доступны:

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

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

Поскольку Cloud Functions развертывает функции как сервисы в Cloud Run, Cloud Functions использует квоты и ограничения ресурсов совместно с Cloud Run. Подробнее о квотах…

Сравнительная таблица

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

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

Цены

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

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

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

Ограничения

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

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