Mit Diensterweiterungen 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. Diese Seite bietet 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 Callouts.
Plug-ins
Mit Plug‑ins können Sie benutzerdefinierten Code inline in den Netzwerk-Datenpfad 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. Plugins werden auf von Google verwalteten Compute-Ressourcen ausgeführt. Sie haben eingeschränkte Funktionen und strenge 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-ins – Übersicht.
Aufrufe
Mit Callouts können Sie Cloud Load Balancing verwenden, um Envoy-gRPC-Aufrufe an Google-Dienste und nutzerverwaltete Dienste während der Datenverarbeitung zu senden.
Callouts werden als universelle gRPC-Server auf nutzerverwalteten Compute-VMs, auf Google Kubernetes Engine-Pods (GKE) in GKE Multi-Cloud oder in lokalen Umgebungen ausgeführt. Die folgende Abbildung zeigt, wie Callouts an Dienste funktionieren.
Für Callouts gibt es keine Laufzeitbeschränkungen und vorhandene Software kann bei Bedarf wiederverwendet werden. Mit Callouts profitieren Sie von den Vorteilen vollständig verwalteter Dienste, die sich auch an die individuellen Anforderungen bestimmter Arbeitslasten anpassen lassen. Sie müssen nur die Skalierbarkeit und Verfügbarkeit Ihres Callout-Dienstes bestätigen.
Weitere Informationen zu Callouts finden Sie unter Cloud Load Balancing-Callouts.
Cloud Load Balancing-Erweiterungen
Mit Diensterweiterungen 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 in den Cloud Load Balancing-Verarbeitungspfad einfü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 Anfrage und Antwort 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 Clientanfrage- oder Antwortheadern schreiben und Entscheidungen zur Durchsetzung innerhalb Ihres Plug-ins treffen
- Script-Injection
- HTML vom Ursprung für die Google reCAPTCHA-Integration oder das Google Analytics-Tagging neu schreiben.
- Cloud CDN beeinflussen
- HTTP-Anfrageattribute bearbeiten, um die benutzerdefinierte Caching-Dynamik zu beeinflussen und festzulegen, welche Inhalte aus dem Cloud CDN-Cache bereitgestellt werden
- E-Mail-Routing
- HTTP-Anfragen umschreiben, um die Auswahl des Backend-Dienstes zu beeinflussen und so erweiterte Routing-Entscheidungen am Edge zu ermöglichen.
Aufrufe nutzerverwalteter Dienste
Mit Service Extensions können unterstützte Application Load Balancer einen Callout vom Datenverarbeitungspfad an nutzerverwaltete Backend-Dienste senden.
Verwenden Sie Callouts mit Cloud Load Balancing für Folgendes:
- Wenn die Menge an Rechenleistung oder Speicherplatz beliebig ist
- Wenn Sie den Status beibehalten möchten
- Wenn Sie externe Dienste wie BigQuery oder Drittanbieteranwendungen verwenden möchten, die an einem beliebigen Ort gehostet werden
Hinweis-Callouts sind sehr flexibel und unterstützen eine Vielzahl von Anpassungen. Hier einige Beispiele für Anwendungsfälle im Alltag:
- Benutzerdefiniertes Routing und benutzerdefinierte Trafficverwaltung
- HTTP- oder URL-Weiterleitungen durchführen.
- Anfrageattribute wie Header oder URLs basierend auf anwendungsspezifischer Logik ändern, damit in der URL-Zuordnung ein anderer Back-End-Dienst ausgewählt wird als ursprünglich für die Anfrage vorgesehen.
- Header hinzufügen, entfernen oder ändern oder URLs basierend auf komplexer anwendungsspezifischer Logik neu schreiben, bevor der Traffic an den Back-End-Dienst weitergeleitet wird.
- Benutzerdefinierte Sitzungsaffinität oder Stickiness basierend auf den spezifischen Attributen einer Anfrage implementieren.
- Implementieren Sie in Preview> dynamische Weiterleitung>, die Mandanten programmatisch Endpunkten zuordnet.
- Sicherheit und Protokollierung
- Benutzerdefinierte Informationen aus Nutzlasten oder benutzerdefinierten Headern in Logging oder einer benutzerdefinierten Logging-Lösung protokollieren.
- Sicherheitstools oder ‑dienste verwenden, einschließlich Unterstützung für benutzerdefinierte Nutzerauthentifizierung und ‑autorisierung.
- Beliebige Header und Abfrageparameter wie Geräte-IDs validieren.
- Anfragen und Antworten in Drittanbieterlösungen protokollieren
- Benutzerdefinierte Nutzerauthentifizierung und ‑autorisierung implementieren
- Partner integration
- Sicherheitsprodukte wie API Gateway-Sicherheit, BOT-Verwaltung oder Web Application Firewall (WAF) einbinden
- Autorisierung
- Den Autorisierungsentscheidungsprozess optimieren oder die Autorisierungsentscheidungen der von Google bereitgestellten integrierten Autorisierungs-Engines weiter einschränken.
- Mix-Autorisierungsentscheidungen aus mehreren Autorisierungssystemen.
- Nahtlose Integration von Google-Autorisierungsmodulen in umfassendere Autorisierungssysteme und ‑infrastrukturen, einschließlich externer Richtlinienmodule.
Weitere Informationen finden Sie unter Übersicht: Cloud Load Balancing- und Cloud CDN-Erweiterungen.
Aufrufe von Google-Diensten
Mit Service Extensions können unterstützte Application Load Balancer einen Callout vom Datenverarbeitungspfad an ausgewählte Google-Dienste senden.
Sie können eine Erweiterung konfigurieren, um Model Armor aufzurufen und Sicherheitsrichtlinien für Inferenz-Traffic auf Application Load Balancern, einschließlich GKE Inference Gateway, einheitlich zu erzwingen.
Weitere Informationen finden Sie unter Integration in Google-Dienste.
GKE-Erweiterungen
Das Google Kubernetes Engine (GKE) Gateway unterstützt die Verwendung von Erweiterungen, um benutzerdefinierten Code in den Load-Balancing-Verarbeitungspfad 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 von GKE Gateway mit Diensterweiterungen anpassen.
Media CDN-Erweiterungen
Media CDN bietet viele integrierte Kernfunktionen für die häufigsten Anwendungsfälle für Content Delivery Networks (CDNs). Mit Service Extensions können Sie mehrere Anforderungen erfüllen, die über diese Funktionen hinausgehen.
Weitere Informationen finden Sie unter Media CDN-Erweiterungen – Übersicht.
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 in den Media CDN-Verarbeitungspfad einfügen.
Im Folgenden sind einige wichtige Anwendungsfälle aufgeführt, in denen Sie Plug‑ins mit Media CDN verwenden können:
- Anpassung
- Anfrage-URLs umschreiben
- Header-Werte normalisieren, um die Cacheleistung zu verbessern
- Sicherheit und Protokollierung
- Nutzer mit gestohlenen Tokens während Live-Events 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
- Benutzerdefiniertes Anzeigen-Targeting implementieren
- Testnutzungsmodelle ohne Aufpreis anbieten
- Partner integration
- Wasserzeichen in Videos einfügen
- Videos und Bilder optimieren