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ą narzędzia 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.txt
dokumentacji.
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
Functions Framework to wymagana zależność w przypadku wszystkich funkcji. Chociaż Cloud Functions instaluje go w Twoim imieniu podczas tworzenia funkcji, zalecamy, aby dla jasności uwzględnić go jako wyraźną zależność.
Jeśli Twoja funkcja korzysta z prywatnych zależności, zalecamy skopiowanie functions-framework
do prywatnego rejestru. Dodaj do funkcji odzwierciedlony pakiet functions-framework
jako zależność, aby uniknąć instalowania pakietu z publicznego internetu.
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.