Обработка зависимостей


Для Cloud Functions написанных на Python, существует два способа указания зависимостей: с помощью файла requirements.txt менеджера пакетов pip или путем упаковки локальных зависимостей вместе с вашей функцией.

Указание зависимостей с использованием стандарта Pipfile/Pipfile.lock не поддерживается. Ваш проект не должен включать эти файлы.

Указание зависимостей с помощью pip

В Python зависимости управляются с помощью pip и описываются в метафайле requirements.txt . Этот файл должен находиться в том же каталоге, что и файл main.py , содержащий код вашей функции.

При развертывании или повторном развертывании вашей функции Cloud Functions использует pip для загрузки и установки последней версии ваших зависимостей, указанных в файле requirements.txt . Файл requirements.txt содержит одну строку на каждый пакет. Каждая строка содержит имя пакета и, при необходимости, запрошенную версию. Для получения более подробной информации см. справочник по файлу requirements.txt .

Чтобы изменения версий зависимостей не влияли на процесс сборки, рекомендуется зафиксировать версии пакетов зависимостей на определенном уровне.

Ниже приведён пример файла requirements.txt :

functions-framework
requests==2.20.0
numpy

Упаковка локальных зависимостей

Вы также можете упаковывать и развертывать зависимости вместе с вашей функцией. Этот подход полезен, если ваша зависимость недоступна через менеджер пакетов pip или если доступ к интернету в вашей среде Cloud Functions ограничен.

Например, вы можете использовать следующую структуру каталогов:

myfunction/
├── main.py
└── localpackage/
    ├── __init__.py
    └── script.py

Затем вы можете импортировать код обычным способом из localpackage , используя следующую инструкцию import .

# Code in main.py
from localpackage import script

Note that this approach will not run any setup.py files. Packages with those files can still be bundled, but may not run correctly on Cloud Functions .