Obsługa zależności


Istnieją 2 sposoby określania zależności dla funkcji w Cloud Functions zapisanych w Python: przy użyciu biblioteki menedżera pakietów pip requirements.txt lub pakowanie lokalnych zależności równolegle 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.

Gdy wdrażasz lub ponownie wdrażasz swoją funkcję, Cloud Functions używa pip do pobrania i zainstalowania najnowszej wersji zależności 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 czy internet w ś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 pakiet, ale mogą nie działać prawidłowo w Cloud Functions.