Zależności dla Cloud Functions napisanych w
Pythonie możesz określić na 2 sposoby: za pomocą pliku pip menedżera pakietów'
requirements.txt lub przez spakowanie zależności lokalnych razem z funkcją.
Określanie zależności za pomocą standardu Pipfile/Pipfile.lock nie jest obsługiwane. 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ą 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 pip do pobierania i instalowania najnowszej wersji zależności zadeklarowanych w pliku requirements.txt.
Plik requirements.txt zawiera 1 wiersz na pakiet. Każdy wiersz zawiera nazwę pakietu oraz opcjonalnie żądaną wersję. Więcej informacji znajdziesz w
dokumentacji requirements.txt
referencyjnej.
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ść nie jest dostępna za pomocą menedżera pakietów pip lub jeśli dostęp do internetu w środowisku Cloud Functions jest ograniczony.
requirements.txt
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 jak zwykle z localpackage za pomocą tej instrukcji import.
# Code in main.py from localpackage import script
Pamiętaj, że to podejście nie spowoduje uruchomienia żadnych plików setup.py. Pakiety z tymi
plikami można nadal spakować, ale mogą one nie działać prawidłowo w Cloud Functions.