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