Lokale Entwicklung

Cloud 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 auf der Seite Cloud Functions-Funktion 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 Functions selbst möglicherweise nicht zugreifen kann.

Wenn eine Plattform, die Ihren Datenlokalitätsbeschränkungen entspricht, mit einer der Abstraktionsebenen von Cloud 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 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 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 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 Funktionsemulator für Google Cloud CLI. 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 Functions, Cloud Run und anderen containerbasierten Plattformen:

Grafik: Funktions-Wrapping-Layout: Funktion, Functions Framework, Buildpack, Hostplattform

Ereignistypen

Cloud 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.

Functions Framework besteht aus einer Reihe von Open-Source-Bibliotheken, die in Cloud 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 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.