Obsługa zależności

.


Istnieją 2 sposoby określenia zależności dla zasobu Cloud Functions zapisanego w Python: użycie polecenia menedżera pakietów pip requirements.txt lub pakowanie lokalnych zależności razem z funkcją.

Specyfikacja zależności za pomocą standardu Pipfile/Pipfile.lock to nieobsługiwane. Twój 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 Twoje kodu funkcji.

Po wdrożeniu lub ponownym wdrożeniu funkcji Cloud Functions używa pip do pobrania i zainstalowania najnowszej wersji zadeklarowane 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: requirements.txt odwołania.

Aby zapobiec wpływowi zmian wersji zależności na kompilację, rozważ przypięcie pakietów zależności do konkretnej wersji.

Oto przykładowy plik requirements.txt:

functions-framework
requests==2.20.0
numpy

platforma funkcji to wymaga zależność dla wszystkich funkcji. Chociaż Cloud Functions zainstaluje ją w Twoim imieniu podczas tworzenia funkcji, zalecamy uwzględnić je jako wyraźną zależność w celu uniknięcia wątpliwości.

Jeśli zależy od prywatnych zależności, zalecamy powielanie functions-framework w rejestrze prywatnym. Dołącz lustrzane functions-framework jako zależność od funkcji, która pozwala uniknąć instalowania z publicznego internetu.

Pakowanie zależności lokalnych

Możesz też spakować i wdrażać zależności razem z funkcją. Ten metoda jest przydatna, jeśli zależność nie jest dostępna za pośrednictwem potoku menedżera pakietów lub jeśli internet w Twoim środowisku Cloud Functions dostęp jest ograniczony.

Możesz na przykład użyć struktury katalogów na przykład:

myfunction/
├── main.py
└── localpackage/
    ├── __init__.py
    └── script.py

Następnie możesz zaimportować kod w zwykły sposób z usługi localpackage, korzystając z następującego import: instrukcja.

# Code in main.py
from localpackage import script

Pamiętaj, że ta metoda nie uruchomi żadnych plików setup.py. Pakiety z takimi danymi Pliki można połączyć w pakiety, ale mogą nie działać prawidłowo w systemie Cloud Functions.