Предзагружаемая среда выполнения
Предзагружаемая среда выполнения — это особая среда, которая позволяет сократить время холодного запуска функции и автоматически получать обновления среды выполнения.
Как правило предзагружаемыми являются среды выполнения с последней мажорной версией. Подробнее см. в таблице Среды выполнения. Если в сервис Cloud Functions добавлена новая мажорная версия среды выполнения, как предзагружаемая, предыдущая версия спустя какое-то время перестает быть предзагружаемой. Пользователям, использующим старую версию, придет уведомление и будет дано время, чтобы перейти на новую мажорную версию.
Примечание
Cloud Functions не гарантирует использование предзагружаемости для всех сред выполнения, которые ее поддерживают. Для сред, которые поддерживают предзагружаемость, могут вызываться функции с обычной средой выполнения.
Чтобы использовать предзагружаемые среды выполнения, как обычные, добавьте пользовательские переменные окружения:
X_YCF_NO_RUNTIME_POOL
со значением1
.LD_PRELOAD
илиLD_LIBRARY_PATH
при использовании динамических библиотек.
Инициализация среды выполнения
В обычной среде выполнения при холодном вызове функции Cloud Functions запускает интерпретатор после получения запроса на вызов функции. Поэтому время обработки запроса включает:
- время запуска интерпретатора;
- время инициализации компонентов среды выполнения Cloud Functions.
В предзагружаемой среде выполнения при холодном вызове функции интерпретатор и компоненты среды выполнения запускаются до начала обработки запроса. Это позволяет сократить время ожидания ответа.
Примечание
Когда интерпретатор запускается, пользовательские переменные окружения неизвестны предзагружаемой среде выполнения. Они выставляются программно перед инициализацией кода функции.
Обновление среды выполнения
Если при создании версии функции выбрана версия среды выполнения с поддержкой предзагружаемости, то она будет автоматически обновляться до последней минорной версии, доступной в сервисе Cloud Functions. Доступная минорная версия среды выполнения обычно отстает от глобальной минорной версии.
Например, при выборе предзагружаемой среды выполнения Python 3.11 в сервисе Cloud Functions может использоваться минорная версия 3.11.1 в тот момент, когда глобальная актуальная минорная версия — 3.11.4. Спустя некоторое время используемая минорная версия 3.11.1 автоматически обновится до версии 3.11.2, затем до 3.11.3 и так далее.
Если среда выполнения перестает быть предзагружаемой, ее обновление прекращается, а версия откатывается к минорной версии, актуальной на момент создания версии функции. Если в сервис Cloud Functions будет добавлена среда выполнения Python 3.12, как предзагружаемая, для примера выше минорная версия среды выполнения 3.11.4 откатится до 3.11.1 — именно она была актуальной в сервисе Cloud Functions на момент создания версии функции.
Примечание
Мажорная версия среды выполнения автоматически не обновляется.
Если при создании версии функции выбрана обычная среда выполнения, то для ее обновления создайте новую версию функции с новой версией среды выполнения.