Mit Service Extensions können Nutzer von Google Cloud Produkten, wie Cloud Load Balancing und Media CDN, benutzerdefinierten Code direkt in den Datenpfad einfügen. So können Sie das Verhalten dieser Produkte an Ihre geschäftlichen Anforderungen anpassen. Auf dieser Seite finden Sie eine allgemeine Übersicht über Service Extensions.
Arten von Erweiterungen
Der Datenpfad in Netzwerkprodukten wie Cloud Load Balancing und Media CDN kann als Pipeline von Datenverarbeitungsphasen visualisiert werden. Mit Service Extensions können Sie benutzerdefinierte Logik in eine oder mehrere dieser Phasen einfügen.
Service Extensions bietet zwei Möglichkeiten zum Einfügen benutzerdefinierter Logik: Plug-ins und Aufrufe.
Plug-ins
Mit Plug-ins können Sie benutzerdefinierten Code direkt in den Netzwerkdatenpfad einfügen. Sie erstellen diese Plug-ins mit WebAssembly (Wasm) und der Proxy-Wasm-ABI.
Plug-ins werden als Wasm-Module in einer von Google verwalteten Sandbox-Infrastruktur ausgeführt, die einer serverlosen Infrastruktur ähnelt. Plug-ins werden auf von Google verwalteten Compute-Ressourcen ausgeführt. Sie haben eingeschränkte Funktionen und unterliegen strengen Laufzeitanforderungen. Sie werden in der Nähe der Datenebene ausgeführt und die Latenzoptimierung wird verwaltet. Die folgende Abbildung zeigt, wie Plug-ins funktionieren.
Weitere Informationen zu Plug-ins finden Sie unter Plug-in-Übersicht.
Aufrufe
Mit Aufrufen können Sie Cloud Load Balancing verwenden, um Envoy-gRPC-Aufrufe an Google-Dienste und nutzerverwaltete Dienste während der Datenverarbeitung zu senden.
Aufrufe werden als universelle gRPC-Server auf nutzerverwalteten Compute-VMs, auf Google Kubernetes Engine (GKE)-Pods in GKE Multi-Cloud oder in lokalen Umgebungen ausgeführt. Die folgende Abbildung zeigt, wie Aufrufe an Dienste funktionieren.
Für Aufrufe gelten keine Laufzeitbeschränkungen und vorhandene Software kann bei Bedarf wiederverwendet werden. Mit Aufrufen können Sie die Vorteile vollständig verwalteter Dienste nutzen, die auch an die individuellen Anforderungen bestimmter Arbeitslasten angepasst werden können. Sie müssen nur die Skalierbarkeit und Verfügbarkeit Ihres Aufrufdienstes bestätigen.
Weitere Informationen zu Aufrufen finden Sie unter Übersicht über Cloud Load Balancing-Aufrufe.
Cloud Load Balancing-Erweiterungen
Mit Service Extensions für Cloud Load Balancing können Nutzer die Anfrage- und Antwortverarbeitungspfade für unterstützte Application Load Balancer umfassend anpassen.
Weitere Informationen finden Sie unter Übersicht über Cloud Load Balancing-Erweiterungen.
Plug-ins
Mit Service Extensions können Sie vorab veröffentlichte Plug-ins für Ihre benutzerdefinierten Anforderungen verwenden, indem Sie sie dem Verarbeitungspfad von Cloud Load Balancing hinzufügen.
Verwenden Sie Plug-ins mit Cloud Load Balancing in den folgenden Beispielszenarien:
- Ausnahmebehandlung
- Clients für bestimmte Antwortklassen auf eine benutzerdefinierte Fehlerseite weiterleiten
- Benutzerdefiniertes Logging
- Benutzerdefinierte Header oder benutzerdefinierte Daten in Cloud Logging protokollieren
- Header-Hinzufügung
- Neue Header erstellen, die für Ihre Anwendungen oder für bestimmte Kunden relevant sind
- Neue Header für Anfragen und Antworten einfügen
- Header-Manipulation
- Vorhandene Anfrage- und Antwortheader umschreiben oder Clientheader auf dem Weg zum Backend oder bei der Antwort an einen Client überschreiben
- Sicherheit
- Benutzerdefinierte Sicherheitsrichtlinien basierend auf Anfrage- oder Antwortheadern von Clients schreiben und Entscheidungen zur Durchsetzung innerhalb Ihres Plug-ins treffen
- Skript-Injection
- HTML vom Ursprung für die Google reCAPTCHA-Integration oder das Google Analytics-Tagging umschreiben
- Cloud CDN beeinflussen
- HTTP-Anfrageeigenschaften bearbeiten, um die benutzerdefinierte Caching-Dynamik zu beeinflussen und zu bestimmen, welche Inhalte aus dem Cloud CDN-Cache bereitgestellt werden
- E-Mail-Routing
- HTTP-Anfragen umschreiben, um die Auswahl des Backend-Dienstes zu beeinflussen und erweiterte Routingentscheidungen am Edge zu ermöglichen
Aufrufe an nutzerverwaltete Dienste
Mit Service Extensions können unterstützte Application Load Balancer einen Aufruf vom Datenverarbeitungspfad an Backend-Dienste senden, die vom Nutzer verwaltet werden.
Verwenden Sie Aufrufe mit Cloud Load Balancing für Folgendes:
- Wenn die Menge an Compute- oder Speicherressourcen beliebig ist
- Wenn Sie den Status beibehalten möchten
- Wenn Sie externe Dienste wie BigQuery oder Anwendungen von Drittanbietern verwenden möchten, die überall gehostet werden können
Aufrufe sind sehr flexibel und unterstützen eine Vielzahl von Anpassungen. Einige Beispiele für alltägliche Anwendungsfälle:
- Benutzerdefiniertes Routing und Trafficmanagement
- HTTP- oder URL-Weiterleitungen ausführen
- Anfrageattribute wie Header oder URLs basierend auf anwendungsspezifischer Logik ändern, um die URL-Zuordnung zu zwingen, einen anderen Backend-Dienst auszuwählen als den, der ursprünglich von der Anfrage angezielt wurde
- Header hinzufügen, entfernen oder ändern oder URLs basierend auf komplexer anwendungsspezifischer Logik umschreiben, bevor der Traffic an den Backend-Dienst weitergeleitet wird
- Benutzerdefinierte Sitzungsaffinität oder -persistenz basierend auf den spezifischen Attributen einer Anfrage implementieren
- In der Vorschau, dynamische Weiterleitung implementieren, die Mandanten programmatisch Endpunkten zuordnet.
- Sicherheit und Logging
- Benutzerdefinierte Informationen aus Nutzlasten oder benutzerdefinierten Headern in Logging oder einer benutzerdefinierten Logginglösung protokollieren
- Sicherheitstools oder -dienste verwenden, einschließlich benutzerdefinierter Unterstützung für Nutzerauthentifizierung und -autorisierung
- Beliebige Header und Abfrageparameter wie Geräte-IDs validieren
- Anfragen und Antworten in Logginglösungen von Drittanbietern protokollieren
- Benutzerdefinierte Nutzerauthentifizierung und -autorisierung implementieren
- Partner integration
- Sicherheitsprodukte wie API Gateway-Sicherheit, Bot-Verwaltung oder Web Application Firewall (WAF) einbinden
- Autorisierung
- Den Autorisierungsentscheidungsprozess verbessern oder die Autorisierungsentscheidungen von von Google bereitgestellten integrierten Autorisierungs-Engines weiter einschränken
- Autorisierungsentscheidungen aus mehreren Autorisierungssystemen kombinieren
- Google-Autorisierungs-Engines nahtlos in umfassendere Autorisierungs-Ökosysteme und -Infrastrukturen einbinden, einschließlich externer Richtlinien-Engines
Weitere Informationen finden Sie unter Übersicht über Cloud Load Balancing- und Cloud CDN-Erweiterungen.
Aufrufe an Google-Dienste
Mit Service Extensions können unterstützte Application Load Balancer einen Aufruf vom Datenverarbeitungspfad an ausgewählte Google-Dienste senden.
Sie können eine Erweiterung so konfigurieren, dass Model Armor aufgerufen wird, um Sicherheitsrichtlinien für den Inferenz-Traffic auf Application Load Balancern, einschließlich GKE Inference Gateway, einheitlich durchzusetzen.
Weitere Informationen finden Sie unter Integration mit Google-Diensten.
GKE-Erweiterungen
Das Google Kubernetes Engine (GKE)-Gateway unterstützt die Verwendung von Erweiterungen, um benutzerdefinierten Code in den Verarbeitungspfad für das Load Balancing einzufügen. Mit diesen Erweiterungen können Sie das Routing anpassen, Anfrage- oder Antwortnutzlasten ändern und in externe Dienste einbinden.
Weitere Informationen finden Sie unter Traffic-Routing für GKE Gateway mit Service Extensions anpassen.
Media CDN-Erweiterungen
Media CDN bietet viele integrierte Kernfunktionen für die häufigsten Anwendungsfälle von Content Delivery Networks (CDNs). Mit Service Extensions können Sie mehrere Anforderungen erfüllen, die über diese Funktionen hinausgehen.
Weitere Informationen finden Sie unter Übersicht über Media CDN-Erweiterungen.
Plug-ins für Media CDN
Mit Service Extensions können Sie vorab veröffentlichte Plug-ins für Ihre benutzerdefinierten Anforderungen verwenden, indem Sie sie dem Verarbeitungspfad von Media CDN hinzufügen.
Einige wichtige Anwendungsfälle, in denen Sie Plug-ins mit Media CDN verwenden können:
- Anpassung
- Anfrage-URLs umschreiben.
- Headerwerte normalisieren, um die Cacheleistung zu verbessern.
- Sicherheit und Logging
- Bei Live-Events Nutzer mit gestohlenen Tokens blockieren.
- Benutzerdefinierte Nutzerauthentifizierung und -autorisierung unterstützen.
- Benutzerdefinierte URL-Signierung übersetzen und implementieren.
- Cache-Schlüssel, anwendungsspezifische Header oder Gerätetypen anpassen.
- Benutzerdefinierte Variablen in Cloud Logging protokollieren.
- Ausrichtung und Monetarisierung
- Conversions durch A/B-Tests verbessern.
- Benutzerdefinierte Anzeigen-Targeting implementieren.
- Testnutzungsmodelle ohne Aufpreis anbieten.
- Partner integration
- Video-Wasserzeichen implementieren.
- Videos und Bilder optimieren.