Lokale Entwicklung
Cloud Run Functions unterstützt mehrere Methoden zum Ausführen von Funktionen außerhalb der standardmäßigen Bereitstellungsumgebung. Dies ist besonders bei der iterativen Entwicklung und in Situationen nützlich, in denen Sie die Funktion vor der Bereitstellung testen möchten.
Anwendungsfälle
Die Möglichkeit, Funktionen ohne Bereitstellung auszuführen, kann lokale Tests, die Einhaltung von Datenlokalitätsbeschränkungen und Multi-Cloud-Bereitstellungen vereinfachen.
Lokales Testen
Wenn Sie eine Funktion testen, indem Sie sie nach jeder Änderung noch einmal bereitstellen, müssen Sie jedes Mal auf die Bereitstellung warten. Im Gegensatz dazu kann das Testen der Funktion direkt in der Entwicklungsumgebung den iterativen Testzyklus verkürzen.
Weitere Informationen zum Testen finden Sie unter Cloud Run Functions-Funktionen vor der Bereitstellung testen.
Datenlokalitätsbeschränkungen
In einigen Fällen können Vorschriften oder Richtlinien vorgeben, dass Daten innerhalb einer bestimmten geografischen, organisatorischen oder Netzwerkgrenze bleiben müssen, auf die Cloud Run Functions selbst möglicherweise nicht zugreifen kann.
Wenn eine Plattform, die Ihren Datenlokalitätsbeschränkungen entspricht, mit einer der Abstraktionsebenen von Cloud Run Functions kompatibel ist, können Sie Ihre Funktionen direkt auf dieser Plattform auf einer dieser Ebenen ausführen.
Multi-Cloud-Bereitstellungen
Multi-Cloud-Funktionsbereitstellungen sind eine gängige Methode, um das Ausfallrisiko in Umgebungen zu minimieren, in denen Zuverlässigkeit höchste Priorität hat. Die Bereitstellung von Funktionen in anderen Umgebungen als Cloud Run Functions verringert das Risiko von ungeplanten Ausfallzeiten Ihrer Anwendung.
Entscheidungen bei der Implementierung
Bevor Sie eine eigene Hostingumgebung für Funktionen einrichten können, müssen Sie zwei wichtige Entscheidungen treffen:
- Welche Abstraktionsebene verwendet werden soll
- Welche Art von Funktion ausgeführt wird
Abstraktionsebenen
Cloud Run Functions selbst verwendet eine Architektur mit mehreren Ebenen, die größtenteils als Open Source zur Verfügung steht. Mit diesen Open-Source-Komponenten können Sie für Cloud Run Functions entwickelten Code auf anderen Plattformen ausführen.
Zwei Komponenten dieser Architektur, die Sie außerhalb der Cloud Functions-Infrastruktur ausführen können, sind das Functions Framework und der Functions Emulator. In diesem Dokument werden der Zweck dieser zwei Ebenen und deren Zusammenwirken erläutert.
Das folgende Diagramm zeigt das typische Layout von Funktionsbereitstellungen auf Cloud Run Functions, Cloud Run und anderen containerbasierten Plattformen:
Ereignistypen
Cloud Run Functions bietet zwei Haupttypen an Funktionen:
HTTP-Funktionen können durch beliebige HTTP-Anfragen wie Webhooks ausgelöst werden, während ereignisgesteuerte Funktionen Ereignisse empfangen, die von anderen Google Cloud Platform-Produkten generiert wurden.
Abstraktionsebene auswählen
Sie können Funktionen entweder mit Functions Framework oder Functions Emulator lokal ausführen.
Das Functions Framework ist eine Reihe von Open-Source-Bibliotheken, die in Cloud Run Functions verwendet werden, um eingehende HTTP-Anfragen in sprachspezifische Funktionsaufrufe umzuwandeln. Sie können damit Ihre Funktion in einen lokal ausführbaren HTTP-Dienst konvertieren.
Functions Emulator verwendet Cloud Native Buildpacks und Docker, um die von Functions Frameworks erstellten HTTP-Dienste zu verpacken und in ausführbare Container aufzunehmen, die dann in einer containerbasierten Architektur von Cloud Run Functions ausgeführt werden.
Beide Optionen bieten Vor- und Nachteile:
- Auf Functions Framework basierende Umgebungen haben häufig niedrigere Ressourcenanforderungen.
- Für Functions Framework ist keine zugrunde liegende Containerisierungssoftware (z. B. Docker) erforderlich.
- Auf Functions Framework basierende Umgebungen erfordern eine zugrunde liegende Sprachinfrastruktur (z. B. Paketmanager und Sprachlaufzeiten).
- Der Functions Emulator spiegelt Produktionsbefehle wie Aufrufe und Bereitstellungen wider.
- Der Functions Emulator bietet eine hohe Genauigkeit bei der Ausführung von Funktionen, wenn diese in der Produktion eingesetzt werden.
Funktionen lokal ausführen
Sowohl Functions Framework als auch Functions Emulator leiten HTTP-Anfragen an Ihre Funktion weiter.
Weitere Informationen zum lokalen Ausführen von Funktionen mit Functions Framework finden Sie unter Functions Framework ausführen.
Weitere Informationen zum lokalen Ausführen von Funktionen mit dem Functions Emulator finden Sie unter Funktionen mit dem Functions Emulator ausführen.