Es gibt zwei Möglichkeiten, Abhängigkeiten für Cloud Functions anzugeben, die in Tabelle geschrieben wurden.
Python: mit dem Parameter des pip-Paketmanagers
requirements.txt
-Datei oder das Packen lokaler Abhängigkeiten zusammen mit der Funktion.
Die Abhängigkeitsspezifikation mit dem Standard Pipfile/Pipfile.lock wird nicht unterstützt. Das Projekt sollte diese Dateien nicht enthalten.
Abhängigkeiten mit pip angeben
Abhängigkeiten in Python werden mit pip verwaltet und in einer Metadatendatei mit dem Namenrequirements.txt
ausgedrückt.
Diese Datei muss sich im selben Verzeichnis wie die Datei main.py
befinden, die den Funktionscode enthält.
Wenn Sie Ihre Funktion bereitstellen oder noch einmal bereitstellen, verwendet Cloud Functions pip, um die neueste Version Ihrer Abhängigkeiten herunterzuladen und zu installieren, wie in der Datei requirements.txt
angegeben.
Die Datei requirements.txt
enthält eine Zeile pro Paket. Jede Zeile enthält den Paketnamen und optional die angeforderte Version. Weitere Informationen finden Sie in der Referenz zu requirements.txt
.
Es empfiehlt sich, Ihre Abhängigkeitspakete an eine bestimmte Version anzuheften, um zu verhindern, dass Ihr Build von Änderungen an der Abhängigkeitsversion beeinträchtigt wird.
Hier sehen Sie eine requirements.txt
-Beispieldatei:
functions-framework requests==2.20.0 numpy
Das Functions Framework ist eine erforderliche Abhängigkeit für alle Funktionen. Obwohl Cloud Functions sie bei der Erstellung der Funktion für Sie installiert, empfehlen wir, sie zur Klarstellung hinzuzufügen.
Wenn Ihre Funktion private Abhängigkeiten benötigt, sollten Sie functions-framework
in Ihre private Registry spiegeln. Fügen Sie die gespiegelte functions-framework
als Abhängigkeit zu Ihrer Funktion hinzu, um die Installation des Pakets aus dem öffentlichen Internet zu vermeiden.
Paket mit lokalen Abhängigkeiten erstellen
Sie können auch ein Paket mit der Funktion und ihren Abhängigkeiten erstellen und bereitstellen. Dies ist nützlich, wenn Ihre Abhängigkeit nicht über den pip-Paketmanager verfügbar ist oder der Internetzugriff Ihrer Cloud Functions-Umgebung eingeschränkt ist.
Beispielsweise können Sie eine Verzeichnisstruktur verwenden, die so aussieht:
myfunction/ ├── main.py └── localpackage/ ├── __init__.py └── script.py
Anschließend können Sie den Code mit der folgenden import
-Anweisung wie gewohnt 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, aber in Cloud Functions unter Umständen nicht ordnungsgemäß ausgeführt werden.