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


Для 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

Обратите внимание, что этот подход не будет запускать файлы setup.py . Пакеты, содержащие эти файлы, по-прежнему могут быть включены в состав пакета, но могут работать некорректно в Cloud Functions .