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


Существует два способа указать зависимости для 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 .