Вы можете развертывать, удалять и изменять функции с помощью команд CLI Firebase или путем настройки параметров среды выполнения в исходном коде функций.
Развертывание функций
Чтобы развернуть функции, выполните следующую команду Firebase CLI:
firebase deploy --only functions
По умолчанию интерфейс командной строки Firebase развертывает все функции в источнике одновременно. Если в вашем проекте больше пяти функций, рекомендуем использовать флаг --only с названиями определенных функций, чтобы развернуть только те, которые вы изменили. Развертывание определенных функций таким образом ускоряет процесс развертывания и помогает избежать превышения квот на развертывание. Пример:
firebase deploy --only functions:addMessage,functions:makeUppercase
При развертывании большого количества функций вы можете превысить стандартную квоту и получить сообщения об ошибках HTTP 429 или 500. Чтобы решить эту проблему, развертывайте функции группами по 10 или менее.
Полный список доступных команд приведен в справочнике по CLI Firebase.
По умолчанию CLI Firebase ищет исходный код в папке functions/. При желании вы можете организовать функции в базах кода или нескольких наборах файлов.
Удалите артефакты развертывания
В рамках развертывания функций образы контейнеров генерируются и хранятся в Artifact Registry. Эти образы не требуются для работы развернутых функций. Cloud Functions извлекает и сохраняет копию образа при первоначальном развертывании, но сохраненные артефакты не нужны для работы функции во время выполнения.
Хотя образы контейнеров обычно небольшие, со временем они могут накапливаться и увеличивать расходы на хранение. Вы можете сохранить их на некоторое время, если планируете проверить созданные артефакты или запустить поиск уязвимостей контейнера.
Чтобы вам было проще управлять расходами на хранение, в Firebase CLI 14.0.0 и более поздних версиях можно настроить правила очистки Artifact Registry для хранилищ, в которых после каждого развертывания функции сохраняются артефакты развертывания.
Вы можете вручную настроить или изменить правила очистки с помощью команды functions:artifacts:setpolicy:
firebase functions:artifacts:setpolicy
По умолчанию эта команда настраивает Artifact Registry на автоматическое удаление образов контейнеров старше 1 дня. Это обеспечивает разумный баланс между минимизацией затрат на хранение и возможностью потенциальной проверки недавних сборок.
Вы можете настроить срок хранения с помощью параметра --days:
firebase functions:artifacts:setpolicy --days 7 # Delete images older than 7 days
Если вы развертываете функции в нескольких регионах, то можете настроить правила очистки для определенного местоположения с помощью параметра --location:
$ firebase functions:artifacts:setpolicy --location europe-west1
Как отказаться от очистки объектов
Если вы хотите управлять очисткой изображений вручную или не хотите, чтобы изображения удалялись, вы можете полностью отказаться от правил очистки:
$ firebase functions:artifacts:setpolicy --none
Эта команда удаляет все существующие правила очистки, настроенные в интерфейсе командной строки Firebase, и запрещает Firebase настраивать правила очистки после развертывания функций.
Удалить функции
Удалить ранее развернутые функции можно следующими способами:
- явно в интерфейсе командной строки Firebase с помощью
functions:delete; - явно в консоли Google Cloud.
- неявно, удалив функцию из источника перед развертыванием.
При удалении функции из рабочей среды всегда запрашивается подтверждение.
Явное удаление функций в CLI Firebase поддерживает несколько аргументов, а также группы функций и позволяет указать функцию, выполняемую в определенном регионе. Вы также можете переопределить запрос подтверждения.
Удаляет все функции, соответствующие указанному названию, во всех регионах:
firebase functions:delete FUNCTION-1_NAME
Удаляет указанную функцию, выполняемую в регионе, отличном от региона по умолчанию:
firebase functions:delete FUNCTION-1_NAME --region REGION_NAME
Удаляет несколько функций:
firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME
Удаляет указанную группу функций:
firebase functions:delete GROUP_NAME
Обход запроса подтверждения:
firebase functions:delete FUNCTION-1_NAME --force
При неявном удалении функций firebase deploy анализирует исходный код и удаляет из рабочей среды все функции, которые были удалены из файла.
Как изменить название, регион или триггер функции
Если вы переименовываете или меняете регионы или триггер для функций, которые обрабатывают рабочий трафик, следуйте инструкциям в этом разделе, чтобы избежать потери событий во время модификации. Прежде чем выполнять описанные ниже действия, убедитесь, что ваша функция идемпотентна, поскольку во время изменения будут одновременно выполняться и новая, и старая версии функции.
Как переименовать функцию
Чтобы переименовать функцию, создайте в источнике ее новую версию с другим названием, а затем выполните две отдельные команды развертывания. Первая команда развертывает функцию с новым названием, а вторая удаляет ранее развернутую версию. Например, если вы хотите переименовать вебхук, активируемый по HTTP, измените код следующим образом:
Node.js
// before
const {onRequest} = require('firebase-functions/v2/https');
exports.webhook = onRequest((req, res) => {
res.send("Hello");
});
// after
const {onRequest} = require('firebase-functions/v2/https');
exports.webhookNew = onRequest((req, res) => {
res.send("Hello");
});
Python
# before
from firebase_functions import https_fn
@https_fn.on_request()
def webhook(req: https_fn.Request) -> https_fn.Response:
return https_fn.Response("Hello world!")
# after
from firebase_functions import https_fn
@https_fn.on_request()
def webhook_new(req: https_fn.Request) -> https_fn.Response:
return https_fn.Response("Hello world!")
Затем выполните следующие команды, чтобы развернуть новую функцию:
# Deploy new function firebase deploy --only functions:webhookNew # Wait until deployment is done; now both functions are running # Delete webhook firebase functions:delete webhook
Как изменить регион или регионы функции
Если вы меняете регионы для функции, которая обрабатывает рабочий трафик, то, чтобы избежать потери событий, выполните следующие действия:
- Переименуйте функцию и измените ее регион или регионы.
- Разверните переименованную функцию, чтобы временно запустить один и тот же код в обоих наборах регионов.
- Удалить предыдущую функцию.
Например, если у вас есть функция, активируемая Cloud Firestore, которая в настоящее время развернута в us-central1, и вы хотите перенести ее в asia-northeast1, вам нужно сначала изменить исходный код, чтобы переименовать функцию и изменить регион.
Node.js
// before
exports.firestoreTrigger = onDocumentCreated(
"my-collection/{docId}",
(event) => {},
);
// after
exports.firestoreTriggerAsia = onDocumentCreated(
{
document: "my-collection/{docId}",
region: "asia-northeast1",
},
(event) => {},
);
В обновленном коде должен быть указан правильный фильтр событий (в данном случае document) и регион. Дополнительная информация приводится в описании класса Cloud Functions.
Python
# Before
@firestore_fn.on_document_created("my-collection/{docId}")
def firestore_trigger(event):
pass
# After
@firestore_fn.on_document_created("my-collection/{docId}",
region="asia-northeast1")
def firestore_trigger_asia(event):
pass
Затем выполните развертывание, запустив:
firebase deploy --only functions:firestoreTriggerAsia
Теперь у вас есть две одинаковые функции: firestoreTrigger в us-central1 и firestoreTriggerAsia в asia-northeast1.
Затем удалите firestoreTrigger:
firebase functions:delete firestoreTrigger
Теперь у нас есть только одна функция – firestoreTriggerAsia, которая выполняется в asia-northeast1.
Как изменить тип триггера функции
По мере развития развертывания Cloud Functions for Firebase вам может потребоваться изменить тип триггера функции по разным причинам. Например, вы можете изменить тип события Firebase Realtime Database или Cloud Firestore.
Изменить тип события функции, просто изменив исходный код и запустив firebase deploy, нельзя. Чтобы избежать ошибок, измените тип триггера функции, выполнив следующие действия:
- Измените исходный код, чтобы добавить новую функцию с нужным типом триггера.
- Разверните функцию. В результате будут временно запущены и старая, и новая функции.
- Явно удалите старую функцию из рабочей среды с помощью интерфейса командной строки Firebase.
Например, если у вас была функция, которая запускалась при удалении объекта, но затем вы включили управление версиями объектов и хотите подписаться на событие архивирования, сначала переименуйте функцию и измените ее, чтобы у нее был новый тип триггера.
Node.js
// before
const {onObjectDeleted} = require("firebase-functions/v2/storage");
exports.objectDeleted = onObjectDeleted((event) => {
// ...
});
// after
const {onObjectArchived} = require("firebase-functions/v2/storage");
exports.objectArchived = onObjectArchived((event) => {
// ...
});
Python
# before
from firebase_functions import storage_fn
@storage_fn.on_object_deleted()
def object_deleted(event):
# ...
# after
from firebase_functions import storage_fn
@storage_fn.on_object_archived()
def object_archived(event):
# ...
Затем выполните следующие команды, чтобы сначала создать новую функцию, а потом удалить старую:
# Create new function objectArchived firebase deploy --only functions:objectArchived # Wait until deployment is done; now both objectDeleted and objectArchived are running # Delete objectDeleted firebase functions:delete objectDeleted
Как задать настройки среды выполнения
Cloud Functions for Firebase позволяет выбирать параметры среды выполнения, такие как версия среды выполнения Node.js, время ожидания для каждой функции, распределение памяти и минимальное/максимальное количество экземпляров функции.
Рекомендуется задавать эти параметры (кроме версии Node.js) в объекте конфигурации в коде функции. Этот объект RuntimeOptions является источником достоверных данных для параметров среды выполнения функции и переопределяет параметры, заданные любым другим методом (например, консолью Google Cloud или gcloud CLI).
Если в процессе разработки вы вручную задаете параметры среды выполнения с помощью консоли Google Cloud или gcloud CLI и не хотите, чтобы эти значения перезаписывались при каждом развертывании, задайте для параметра preserveExternalChanges значение true. Если для этого параметра задано значение true, Firebase объединяет параметры среды выполнения, заданные в коде, с настройками текущей развернутой версии функции со следующим приоритетом:
- В коде функций задан параметр, который переопределяет внешние изменения.
- В коде функций задано значение
RESET_VALUE: внешние изменения переопределяются значением по умолчанию. - Параметр не задан в коде функции, но задан в развернутой функции: используется параметр, заданный в развернутой функции.
Использовать вариант preserveExternalChanges: true не рекомендуется в большинстве случаев, поскольку ваш код больше не будет единственным источником истины для параметров среды выполнения ваших функций. Если вы все же используете ее, проверьте консоль Google Cloud или используйте gcloud CLI, чтобы посмотреть полную конфигурацию функции.
Как задать версию Node.js
Firebase SDK для Cloud Functions позволяет выбрать среду выполнения Node.js. Вы можете запустить все функции проекта в среде выполнения, соответствующей одной из следующих поддерживаемых версий Node.js:
- Node.js 22
- Node.js 20
- Node.js 18 (поддержка прекращена)
Поддержка Node.js версий 14 и 16 была прекращена в начале 2025 года. Развертывание с этими версиями отключено. Важную информацию о поддержке этих версий Node.js можно найти в расписании.
Чтобы задать версию Node.js, выполните следующие действия:
Вы можете указать версию в поле engines файла package.json, который был создан в каталоге functions/ во время инициализации.
Например, чтобы использовать только версию 20, измените эту строку в файле package.json:
"engines": {"node": "20"}
Если вы используете менеджер пакетов Yarn или у вас есть другие требования к полю engines, вы можете задать среду выполнения для SDK Firebase для Cloud Functions в файле firebase.json:
{
"functions": {
"runtime": "nodejs20" // or nodejs22
}
}
CLI использует значение, заданное в firebase.json, а не значение или диапазон, заданные отдельно в package.json.
Обновите среду выполнения Node.js
Чтобы обновить среду выполнения Node.js:
- Убедитесь, что в вашем проекте используется тарифный план Blaze.
- Убедитесь, что вы используете Firebase CLI версии 11.18.0 или более поздней.
- Измените значение
enginesв файлеpackage.json, который был создан в каталогеfunctions/во время инициализации. Например, если вы переходите с версии 18 на версию 20, запись должна выглядеть так:"engines": {"node": "20"}. - При желании вы можете протестировать изменения с помощью Firebase Local Emulator Suite.
- Повторно разверните все функции.
Выберите систему модулей Node.js
По умолчанию в Node.js используется система модулей CommonJS (CJS), но текущие версии Node.js также поддерживают модули ECMAScript (ESM). Cloud Functions поддерживает оба варианта.
По умолчанию ваши функции используют CommonJS. Это означает, что импорт и экспорт выглядят следующим образом:
const {onRequest} = require("firebase-functions/https");
exports.helloWorld = onRequest(async (req, res) => res.send("Hello from Firebase!"));
Чтобы использовать ESM, задайте поле "type": "module" в файле package.json:
{
...
"type": "module",
...
}
После этого используйте синтаксис ESM import и export:
import {onRequest} from "firebase-functions/https";
export const helloWorld = onRequest(async (req, res) => res.send("Hello from Firebase!"));
Обе системы модулей полностью поддерживаются. Вы можете выбрать тот, который лучше всего подходит для вашего проекта. Подробную информацию можно найти в документации Node.js по модулям.
Установить версию Python
Firebase SDK для Cloud Functions версии 12.0.0 и выше позволяет выбрать среду выполнения Python. Укажите версию среды выполнения в файле firebase.json, как показано ниже.
{
"functions": {
"runtime": "python310" // or python311
}
}
Управлять поведением при масштабировании.
По умолчанию Cloud Functions for Firebase масштабирует количество запущенных экземпляров в зависимости от количества входящих запросов, потенциально уменьшая масштаб до нуля экземпляров в периоды снижения трафика. Однако если вашему приложению требуется уменьшенная задержка и вы хотите ограничить количество холодных запусков, вы можете изменить этот режим работы по умолчанию, указав минимальное количество экземпляров контейнера, которые должны быть теплыми и готовыми к обслуживанию запросов.
Аналогичным образом можно задать максимальное количество экземпляров, чтобы ограничить масштабирование в ответ на входящие запросы. Используйте эту настройку, чтобы контролировать расходы или ограничить количество подключений к вспомогательному сервису, например к базе данных.
Используя эти настройки вместе с настройкой параллелизма для каждого экземпляра (новая во 2-м поколении), вы можете контролировать и настраивать поведение масштабирования для своих функций. Выбор настроек, которые обеспечат наилучшую производительность и экономическую эффективность, зависит от характера вашего приложения и функции.
Для некоторых приложений с низким трафиком оптимальным является вариант с меньшим количеством ЦП без многопоточности. Если же холодный запуск критичен, то высокая параллельность и минимальное количество экземпляров позволят всегда иметь готовые к работе экземпляры на случай резкого увеличения трафика.
Для небольших приложений с низким трафиком установка низкого максимального количества экземпляров с высокой параллельностью означает, что приложение может обрабатывать всплески трафика без чрезмерных затрат. Однако имейте в виду, что если максимальное количество экземпляров установлено слишком низким, запросы могут быть отклонены при достижении потолка.
Как разрешить параллельные запросы
В Cloud Functions for Firebase первого поколения каждый экземпляр мог обрабатывать только один запрос за раз, поэтому поведение масштабирования задавалось только с помощью настроек минимального и максимального количества экземпляров.
В Cloud Functions for Firebase (второе поколение) можно не только контролировать количество экземпляров, но и задавать число запросов, которые каждый экземпляр может обрабатывать одновременно. Для этого используется параметр concurrency. По умолчанию установлено значение 80, но вы можете указать любое целое число от 1 до 1000.
Функции с более высокими настройками параллелизма могут поглощать всплески трафика без холодного запуска, поскольку каждый экземпляр, вероятно, имеет некоторый запас. Если экземпляр настроен на обработку до 50 параллельных запросов, но в настоящее время обрабатывает только 25, он может обработать всплеск из 25 дополнительных запросов без необходимости холодного запуска нового экземпляра. Если же значение параллелизма равно 1, то такой всплеск запросов может привести к 25 холодным запускам.
Этот упрощенный сценарий демонстрирует потенциальный прирост эффективности параллелизма. На самом деле масштабирование для оптимизации эффективности и сокращения холодных запусков с помощью параллелизма устроено сложнее. Параллельная обработка в Cloud Functions for Firebase второго поколения работает на основе Cloud Run и следует правилам Cloud Run для автоматического масштабирования экземпляров контейнеров.
При экспериментировании с более высокими настройками параллелизма в Cloud Functions for Firebase (второе поколение) учитывайте следующее:
- Для оптимальной производительности при более высоких настройках параллелизма могут потребоваться более мощные ЦП и ОЗУ. Например, функции, которая выполняет сложную обработку изображений или видео, может не хватить ресурсов для обработки 1000 параллельных запросов, даже если настройки ЦП и ОЗУ установлены на максимум.
- Поскольку Cloud Functions for Firebase второго поколения работает на базе Cloud Run, вы также можете ознакомиться с рекомендациями по оптимизации параллельной обработки для Google Cloud.
- Прежде чем переходить на параллельную обработку в рабочей среде, тщательно протестируйте ее в тестовой среде.
Поддерживайте минимальное количество экземпляров в режиме ожидания
Вы можете задать минимальное количество экземпляров для функции в исходном коде. Например, эта функция задает минимальное количество экземпляров, равное 5:
Node.js
const { onCall } = require("firebase-functions/v2/https");
exports.getAutocompleteResponse = onCall(
{
// Keep 5 instances warm for this latency-critical function
minInstances: 5,
},
(event) => {
// Autocomplete user’s search term
}
);
Python
@https_fn.on_call(min_instances=5)
def get_autocomplete_response(event: https_fn.CallableRequest) -> https_fn.Response:
При настройке минимального количества экземпляров учитывайте следующее:
- Если Cloud Functions for Firebase масштабирует ваше приложение выше заданного значения, вы столкнетесь с холодным запуском для каждого экземпляра выше этого порога.
- Холодный запуск сильнее всего влияет на приложения с резкими скачками трафика. Если трафик вашего приложения неравномерен и вы установите достаточно высокое значение, чтобы уменьшить количество холодных запусков при каждом увеличении трафика, вы увидите значительно меньшую задержку. Для приложений с постоянным трафиком холодные запуски вряд ли серьезно повлияют на производительность.
Задавать минимальное количество экземпляров имеет смысл для рабочих сред, но обычно не рекомендуется для тестовых сред. Чтобы в тестовом проекте выполнялась полная остановка, а в рабочем – сокращалось время холодного запуска, можно задать минимальное количество экземпляров в параметризованной конфигурации:
Node.js
const { onRequest } = require('firebase-functions/https'); const { defineInt, defineString } = require('firebase-functions/params'); // Define some parameters const minInstancesConfig = defineInt('HELLO_WORLD_MININSTANCES'); const welcomeMessage = defineString('WELCOME_MESSAGE'); // To use configured parameters inside the config for a function, provide them // directly. To use them at runtime, call .value() on them. export const helloWorld = onRequest( { minInstances: minInstancesConfig }, (req, res) => { res.send(`${welcomeMessage.value()}! I am a function.`); } );Python
MIN_INSTANCES = params.IntParam("HELLO_WORLD_MININSTANCES") WELCOME_MESSAGE = params.StringParam("WELCOME_MESSAGE") @https_fn.on_request(min_instances=MIN_INSTANCES.value()) def get_autocomplete_response(event: https_fn.Request) -> https_fn.Response: return https_fn.Response(f"{WELCOME_MESSAGE.value()} I'm a function.")
Ограничьте максимальное количество экземпляров функции
Вы можете задать значение для максимального количества экземпляров в исходном коде функции. Например, эта функция устанавливает ограничение в 100 экземпляров, чтобы не перегружать гипотетическую устаревшую базу данных:
Node.js
const { onMessagePublished } = require("firebase-functions/v2/pubsub");
exports.mirrorevents = onMessagePublished(
{ topic: "topic-name", maxInstances: 100 },
(event) => {
// Connect to legacy database
}
);
Python
@pubsub_fn.on_message_published(topic="topic-name", max_instances=100)
def mirrorevents(event: pubsub_fn.CloudEvent):
# Connect to legacy database
Если HTTP-функция масштабируется до максимального количества экземпляров, новые запросы ставятся в очередь на 30 секунд, а затем отклоняются с кодом ответа 429 Too Many Requests, если к тому времени ни один экземпляр не доступен.
Чтобы узнать больше о рекомендациях по использованию настроек максимального количества экземпляров, ознакомьтесь с рекомендациями по настройке максимального количества экземпляров.
Как настроить сервисный аккаунт
Сервисные аккаунты по умолчанию для функций имеют широкий набор разрешений, позволяющих взаимодействовать с другими сервисами Firebase и Google Cloud:
- Функции второго поколения: PROJECT_NUMBER-compute@developer.gserviceaccount.com (название – Сервисный аккаунт Compute Engine по умолчанию)
- Функции первого поколения: PROJECT_ID@
appspot.gserviceaccount.com (называется Сервисный аккаунт App Engine по умолчанию).
Вы можете переопределить сервисный аккаунт по умолчанию и ограничить функцию только необходимыми ресурсами. Для этого создайте собственный сервисный аккаунт и назначьте его нужной функции с помощью значения конфигурации serviceAccount.
const { onRequest } = require("firebase-functions/https");
exports.helloWorld = onRequest(
{
// This function doesn't access other Firebase project resources, so it uses a limited service account.
serviceAccount:
"my-limited-access-sa@", // or prefer the full form: "my-limited-access-sa@my-project.iam.gserviceaccount.com"
},
(request, response) => {
response.send("Hello from Firebase!");
},
);
Если вы хотите задать один и тот же сервисный аккаунт для всех функций, используйте функцию setGlobalOptions.
Как задать время ожидания и распределение памяти
В некоторых случаях для функций могут потребоваться особые требования к длительному времени ожидания или большому объему выделенной памяти. Вы можете задать эти значения в консоли Google Cloud или в исходном коде функции (только для Firebase), используя значения времени ожидания в пределах следующих ограничений максимальной продолжительности:
- HTTP и вызываемые функции: 3600 секунд (60 минут).
- Функции запланированных задач и очереди задач: 1800 секунд (30 минут).
- Другие функции, управляемые событиями: 540 секунд (9 минут).
Чтобы задать выделение памяти и время ожидания в исходном коде функций, используйте глобальные параметры для памяти и времени ожидания в секундах для настройки виртуальной машины, на которой выполняются ваши функции. Например, эта функция Cloud Storage использует 1 ГиБ памяти и прекращает работу по истечении 300 секунд:
Node.js
exports.convertLargeFile = onObjectFinalized({
timeoutSeconds: 300,
memory: "1GiB",
}, (event) => {
// Do some complicated things that take a lot of memory and time
});
Python
@storage_fn.on_object_finalized(timeout_sec=300, memory=options.MemoryOption.GB_1)
def convert_large_file(event: storage_fn.CloudEvent):
# Do some complicated things that take a lot of memory and time.
Чтобы задать распределение памяти и время ожидания в консоли Google Cloud, выполните следующие действия:
- В консоли Google Cloud выберите Cloud Functions for Firebase в меню слева.
- Выберите функцию, нажав на ее название в списке.
- Нажмите на значок Изменить в верхнем меню.
- В раскрывающемся меню Выделенная память выберите нужный вариант.
- Нажмите Ещё, чтобы открыть дополнительные настройки, и введите количество секунд в текстовом поле Время ожидания.
- Нажмите Сохранить, чтобы обновить функцию.
Переопределить настройки ЦП по умолчанию
Выделяется до 2 ГБ памяти. Каждой функции в Cloud Functions for Firebase (второе поколение) по умолчанию назначается один ЦП, а при увеличении объема памяти до 4 и 8 ГБ – два ЦП. Обратите внимание, что это значительно отличается от режима работы по умолчанию в первом поколении и может привести к несколько более высоким затратам на функции с малым объемом памяти, как показано в следующей таблице:
| Выделенная оперативная память | Версия 1, ЦП по умолчанию (дробное значение) | ЦП по умолчанию для версии 2 | Увеличение цены за миллисекунду |
|---|---|---|---|
| 128 МБ | 1/12 | 1 | 10,5x |
| 256 МБ | 1/6 | 1 | 5,3x |
| 512 МБ | 1/3 | 1 | 2,7x |
| 1 ГБ | 7/12 | 1 | 1,6x |
| 2 ГБ | 1 | 1 | 1x |
| 4 ГБ | 2 | 2 | 1x |
| 8 ГБ | 2 | 2 | 1x |
| 16 ГБ | – | 4 | – |
Если вы хотите, чтобы функции второго поколения работали так же, как в первом поколении, задайте настройки по умолчанию для первого поколения в качестве глобального параметра:
Node.js
// Turn off Firebase defaults
setGlobalOptions({ cpu: 'gcf_gen1' });
Python
# Use 1st gen behavior
set_global_options(cpu="gcf_gen1")
Для функций, интенсивно использующих ЦП, второе поколение обеспечивает гибкость настройки дополнительных ресурсов ЦП. Вы можете увеличить мощность ЦП для каждой функции, как показано ниже:
Node.js
// Boost CPU in a function:
export const analyzeImage = onObjectFinalized({ cpu: 2 }, (event) => {
// computer vision goes here
});
Python
# Boost CPU in a function:
@storage_fn.on_object_finalized(cpu=2)
def analyze_image(event: storage_fn.CloudEvent):
# computer vision goes here