Zależności dla funkcji Cloud Functions napisanych w Pythonie można określić na 2 sposoby: za pomocą pliku requirements.txt menedżera pakietów pip lub przez spakowanie lokalnych zależności wraz z funkcją.
Specyfikacja zależności przy użyciu standardu Pipfile/Pipfile.lock nie jest obsługiwana. Projekt nie powinien zawierać tych plików.
Określanie zależności za pomocą pip
Zależności w Pythonie są zarządzane za pomocą narzędzia pip i wyrażane w pliku metadanych o nazwie requirements.txt.
Ten plik musi znajdować się w tym samym katalogu co plik main.py zawierający kod funkcji.
Gdy wdrażasz lub ponownie wdrażasz funkcję, Cloud Functions używa narzędzia pip do pobierania i instalowania najnowszej wersji zależności zadeklarowanych w pliku requirements.txt.
Plik requirements.txt zawiera po jednym wierszu na pakiet. Każdy wiersz zawiera nazwę pakietu i opcjonalnie żądaną wersję. Więcej informacji znajdziesz w requirements.txtdokumentacji.
Aby zapobiec wpływowi zmian wersji zależności na kompilację, rozważ przypięcie pakietów zależności do określonej wersji.
Oto przykład pliku requirements.txt:
functions-framework requests==2.20.0 numpy
Pakowanie zależności lokalnych
Możesz też spakować i wdrożyć zależności razem z funkcją. To podejście jest przydatne, jeśli zależności nie są dostępne w menedżerze pakietów pip lub jeśli dostęp do internetu w środowisku Cloud Functions jest ograniczony.
Możesz na przykład użyć takiej struktury katalogów:
myfunction/
├── main.py
└── localpackage/
├── __init__.py
└── script.py
Następnie możesz zaimportować kod w zwykły sposób z localpackage, używając tego polecenia:import
# Code in main.py from localpackage import script
Pamiętaj, że ta metoda nie uruchomi żadnych plików setup.py. Pakiety z tymi plikami można nadal łączyć, ale mogą one nie działać prawidłowo na urządzeniu Cloud Functions.