Es gibt zwei Möglichkeiten, Abhängigkeiten für in Python geschriebene Cloud-Funktionen anzugeben: Verwenden Sie die Datei requirements.txt
des Pip- Paketmanagers oder packen Sie lokale Abhängigkeiten zusammen mit Ihrer Funktion.
Die Abhängigkeitsspezifikation mithilfe des Pipfile/Pipfile.lock-Standards wird nicht unterstützt. Ihr Projekt sollte diese Dateien nicht enthalten.
Abhängigkeiten mit pip angeben
Abhängigkeiten in Python werden mit pip verwaltet und in einer Metadatendatei namens requirements.txt
ausgedrückt. Diese Datei muss sich im selben Verzeichnis befinden wie die Datei main.py
, die Ihren Funktionscode enthält.
Wenn Sie Ihre Funktion bereitstellen oder erneut bereitstellen, verwendet Cloud Functions pip, um die neueste Version Ihrer Abhängigkeiten herunterzuladen und zu installieren, wie in der Datei requirements.txt
deklariert. Die Datei requirements.txt
enthält eine Zeile pro Paket. Jede Zeile enthält den Paketnamen und optional die angeforderte Version. Weitere Einzelheiten finden Sie in der requirements.txt
Referenz .
Um zu verhindern, dass Ihr Build durch Änderungen der Abhängigkeitsversion beeinträchtigt wird, sollten Sie erwägen, Ihre Abhängigkeitspakete an eine bestimmte Version anzuheften.
Das Folgende ist eine Beispieldatei requirements.txt
:
functions-framework requests==2.20.0 numpy
Das Functions Framework ist eine erforderliche Abhängigkeit für alle Funktionen. Obwohl Cloud Functions es in Ihrem Namen installiert, wenn die Funktion erstellt wird, empfehlen wir Ihnen, es aus Gründen der Übersichtlichkeit als explizite Abhängigkeit einzubeziehen.
Wenn Ihre Funktion auf privaten Abhängigkeiten basiert, empfehlen wir Ihnen, functions-framework
in Ihre private Registrierung zu spiegeln. Fügen Sie das gespiegelte functions-framework
als Abhängigkeit zu Ihrer Funktion hinzu, um die Installation des Pakets aus dem öffentlichen Internet zu vermeiden.
Lokale Abhängigkeiten packen
Sie können neben Ihrer Funktion auch Abhängigkeiten packen und bereitstellen. Dieser Ansatz ist nützlich, wenn Ihre Abhängigkeit nicht über den Pip-Paketmanager verfügbar ist oder der Internetzugang Ihrer Cloud Functions-Umgebung eingeschränkt ist.
Sie könnten beispielsweise eine Verzeichnisstruktur wie die folgende verwenden:
myfunction/ ├── main.py └── localpackage/ ├── __init__.py └── script.py
Anschließend können Sie den Code wie gewohnt mit der folgenden import
aus localpackage
importieren.
# Code in main.py from localpackage import script
Beachten Sie, dass bei diesem Ansatz keine setup.py
Dateien ausgeführt werden. Pakete mit diesen Dateien können weiterhin gebündelt werden, werden jedoch möglicherweise nicht ordnungsgemäß auf Cloud Functions ausgeführt.