Существует две версии 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 минут |
|
| Служебный аккаунт* | Сервисный аккаунт 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 , следующим образом:
- Перейдите на страницу «Отчеты Cloud Billing » в консоли Google Cloud.
- При появлении запроса выберите платежный аккаунт, связанный с вашим проектом Google Cloud.
- В панели «Фильтры» , в разделе «Метки» , добавьте фильтр меток с ключом
goog-managed-byи значениемcloudfunctions.
Ограничения
Cloud Functions for Firebase (2-го поколения) не поддерживает события Analytics .
Хотя Cloud Functions for Firebase (2-го поколения) поддерживает события блокировки аутентификации, он не поддерживает тот же набор базовых событий Authentication , что и 1-е поколение.
Однако, поскольку функции первого и второго поколений могут сосуществовать в одном исходном файле, вы по-прежнему можете разрабатывать и развертывать триггеры Analytics и базовой Authentication для функций первого поколения вместе с функциями второго поколения.