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.