Übersicht über Cloud Load Balancing- und Cloud CDN-Erweiterungen

Mit Service Extensions können Sie Erweiterungen verwenden, um unterstützte Application Load Balancer anzuweisen, Plug-ins zu verwenden oder Callouts vom Load-Balancing-Datenpfad zu senden, um Callout-Backend-Dienste oder Google-Dienste aufzurufen. Auf dieser Seite finden Sie eine Übersicht über Cloud Load Balancing-Erweiterungen.

Sie können Application Load Balancer so konfigurieren, dass sie die folgenden Arten von Erweiterungen verwenden:

  • Mit Edge-Erweiterungen können Sie Anfrageheader bearbeiten, um die Auswahl des Backend-Dienstes und die Inhalte zu beeinflussen, die Cloud CDN aus dem Cache bereitstellt. Diese Erweiterungen werden so konfiguriert, dass sie früh im Lebenszyklus der Anfrageverarbeitung ausgeführt werden, um die Caching- und Routingentscheidungen am Edge zu beeinflussen.

  • Mit Routenerweiterungen können Sie die Auswahl des Backend-Dienstes beeinflussen. Diese Erweiterungen sind so konfiguriert, dass sie früh im Lebenszyklus der Anfrageverarbeitung ausgeführt werden.

  • Mit Autorisierungserweiterungen können Sie Autorisierungsanfragen an Ihre benutzerdefinierte Autorisierungs-Engine senden. Sie konfigurieren diese am Ende des Verarbeitungszyklus, kurz bevor der Load Balancer Anfragen an Back-Ends sendet.

  • Traffic-Erweiterungen unterstützen zusätzliche benutzerdefinierte Sicherheitslogik und Funktionen zur Traffic-Verwaltung. Sie konfigurieren diese nach Autorisierungserweiterungen, aber bevor der Load Balancer Anfragen an Back-Ends sendet oder Antworten von ihnen empfängt.

Unterstützte Application Load Balancer für nutzerverwaltete Erweiterungen

Service Extensions unterstützt nutzerverwaltete Erweiterungen für die folgenden Application Load Balancer:

Application Load Balancer Erweiterungen
Edge Route Autorisierung Traffic
Plug-ins Plug-ins Aufrufe Aufrufe Plug-ins Aufrufe
Globaler externer Application Load Balancer
Regionaler externer Application Load Balancer ✓ Vorschau ✓ Vorschau
Regionaler interner Application Load Balancer ✓ Vorschau ✓ Vorschau
Regionsübergreifender interner Application Load Balancer

Erweiterungspunkte im Load-Balancing-Datenpfad

Service Extensions unterstützt Erweiterungen in verschiedenen Phasen des Load-Balancing-Datenpfads.

Abbildung 1 zeigt, wie Service Extensions Erweiterungen in den Phasen für Anwendungssicherheit und Traffic-Verwaltung für globale externe Application Load Balancer unterstützt.

Abbildung 1. Globale externe Application Load Balancer unterstützen Erweiterungen in den Phasen „Edge-Routing“, „Anwendungssicherheit“ und „Traffic-Verwaltung“ (zum Vergrößern klicken).

Abbildung 2 zeigt, wie Service Extensions Erweiterungen in den Phasen für Routing, Anwendungssicherheit und Traffic-Verwaltung für die folgenden Arten von Load Balancern unterstützt: regionaler externer Application Load Balancer, regionaler interner Application Load Balancer und regionenübergreifender interner Application Load Balancer.

Abbildung 2. Regionale externe Application Load Balancer, regionale interne Application Load Balancer und regionenübergreifende interne Application Load Balancer unterstützen Erweiterungen in den Phasen für Routing und Traffic-Verwaltung (zum Vergrößern klicken).

So funktionieren Edge-Erweiterungen

Edge-Erweiterungen werden zuerst im Anfrageverarbeitungspfad ausgeführt. Mit Anfrageheadern können Sie die Auswahl des Backend-Dienstes und die Inhalte beeinflussen, die Cloud CDN aus dem Cache bereitstellt.

Nachdem ein Load Balancer eine Edge-Erweiterung aufgerufen hat, führt er die folgenden Schritte aus:

  • Wählt den Backend-Dienst durch Auswerten der URL-Zuordnung aus.
  • Wendet Google Cloud Armor-Richtlinien-Sicherheitsrichtlinien an
  • Führt eine Cache-Suche durch und stellt Inhalte aus dem Cache bereit, wenn ein Cache-Treffer vorliegt.
  • Wendet Cloud Armor-Richtlinien für den ausgewählten Backend-Dienst an
  • CORS-Richtlinien anwenden
  • Wendet die Richtlinie für zustandsorientierte Sitzungsaffinität an
  • Wendet Identity-Aware Proxy (IAP)-Richtlinien auf den ausgewählten Back-End-Dienst an.
  • Erweiterungen für die Autorisierung von Aufrufen, sofern im Verarbeitungspfad des ausgewählten Backend-Dienstes konfiguriert
  • Führt Fault Injection durch
  • Erweiterungen für Anruftraffic, falls vorhanden
  • Führt URL-Umschreibungen durch
  • Führt die Header-Manipulation gemäß der URL-Zuordnung aus und fügt benutzerdefinierte Variablen für Anfrage-Header hinzu.
  • Führt Weiterleitungen oder das Routing zum ausgewählten Backend-Dienst aus und wendet dabei Zeitüberschreitungen und Richtlinien für Wiederholungsversuche in der URL-Zuordnung und den Load-Balancing-Einstellungen für den Backend-Dienst an.
  • Spiegelung von Anfragen

So funktionieren Routenerweiterungen

Routerweiterungen werden zuerst im Anfrageverarbeitungspfad ausgeführt, wenn der Load-Balancer Anfrageheader empfängt und bevor er die URL-Zuordnung auswertet.

Nachdem ein Load-Balancer eine Routenerweiterung für eine Anfrage aufgerufen hat, führt er folgende Schritte aus:

  • Wählt den Backend-Dienst durch Auswerten der URL-Zuordnung aus.
  • Wendet Cloud Armor-Richtlinien für den ausgewählten Backend-Dienst an
  • Wendet IAP-Richtlinien für den ausgewählten Backend-Dienst an
  • Führt Fault Injection durch
  • Führt Anfrageheadertransformationen durch und löst benutzerdefinierte Anfrageheadervariablen auf.
  • Ruft Traffic-Erweiterungen auf, sofern sie im Verarbeitungspfad des ausgewählten Backend-Dienstes vorhanden sind.
  • Führt URL-Umschreibungen durch
  • Führt Weiterleitungen oder das Routing zum ausgewählten Backend-Dienst aus und wendet Zeitüberschreitungen und Richtlinien für Wiederholungsversuche in der URL-Zuordnung und andere Load-Balancing-Einstellungen für den Backend-Dienst an.

Funktionsweise von Autorisierungserweiterungen

Sie können Autorisierungsrichtlinien mit Autorisierungserweiterungen konfigurieren, um Autorisierungsentscheidungen an benutzerdefinierte Autorisierungs-Engines zu delegieren. Weitere Informationen zu Autorisierungsrichtlinien finden Sie unter Autorisierungsrichtlinien – Übersicht.

Autorisierungserweiterungen werden im Anfragepfad aufgerufen, nachdem Routenerweiterungen aufgerufen und ein Backend für die Anfrage ausgewählt wurde. Diese Erweiterungen können die Auswahl des Backend-Dienstes nicht beeinflussen.

In der Vorschau werden Autorisierungsrichtlinien für regionale externe Application Load Balancer und regionale interne Application Load Balancer nach Routenerweiterungen aufgerufen. Beachten Sie beim Entwerfen von Autorisierungserweiterungen die folgenden Punkte:

  • Erweiterungen, die von Autorisierungsrichtlinien des Profiltyps REQUEST_AUTHZ aufgerufen werden, empfangen und bewerten nur HTTP-Anfrageheader mit dem Protokoll ext_proc oder ext_authz.

  • Erweiterungen, die durch Autorisierungsrichtlinien des Profiltyps CONTENT_AUTHZ aufgerufen werden, empfangen Header, Text und Trailer von Anfragen und Antworten. Diese müssen im Body-Verarbeitungsmodus des ext_proc-Protokolls in FULL_DUPLEX_STREAMED konfiguriert werden.

Im Datenpfad werden Autorisierungserweiterungen, die auf Autorisierungsrichtlinien für Anfragen basieren, vor denen ausgeführt, die auf Autorisierungsrichtlinien für Inhalte basieren.

Funktionsweise von Verkehrs-Erweiterungen

Load Balancer führen Traffic-Erweiterungen zuletzt im Anfrageverarbeitungspfad und zuerst im Antwortverarbeitungspfad aus.

Mit diesen Erweiterungen können Sie die Header und Nutzlasten von Anfragen und Antworten ändern, ohne die Auswahl des Backend-Dienstes zu beeinträchtigen. Sie können Traffic-Erweiterungen auch für benutzerdefiniertes Logging verwenden, indem Sie die Informationen, die Sie protokollieren möchten, das Format und den externen Anbieter angeben.

Bevor ein Load-Balancer eine Traffic-Erweiterung auf dem Anfragepfad für eine Anfrage aufruft, führt er die folgenden Schritte aus:

  • Führt Fault Injection durch
  • Wählt einen Back-End-Dienst für die Anfrage aus
  • Wendet Cloud Armor-Richtlinien für den ausgewählten Backend-Dienst an
  • Wendet IAP-Richtlinien für den ausgewählten Backend-Dienst an
  • Wendet Cloud CDN-Caching-Richtlinien für den ausgewählten Backend-Dienst im Fall von globalen externen Application Load Balancern an.

Nachdem ein Load-Balancer eine Traffic-Erweiterung auf dem Anfragepfad für eine Anfrage aufgerufen hat, führt er die folgenden Schritte aus:

  • Führt URL-Umschreibungen durch
  • Führt die Header-Manipulation gemäß der URL-Zuordnung aus und fügt benutzerdefinierte Variablen für Anfrage-Header hinzu.
  • Führt Weiterleitungen oder das Routing zum ausgewählten Backend-Dienst aus und wendet dabei Zeitüberschreitungen und Richtlinien für Wiederholungsversuche in der URL-Zuordnung und den Load-Balancing-Einstellungen für den Backend-Dienst an.
  • Spiegelung von Anfragen

Nachdem ein Load-Balancer eine Traffic-Erweiterung auf dem Antwortpfad für eine Anfrage aufgerufen hat, führt er die folgenden Schritte aus:

  • Führt Antwortheadertransformationen durch und löst benutzerdefinierte Antwortheadervariablen auf.
  • Logging mit Cloud Logging
  • Führt Cloud CDN-Caching bei globalen externen Application Load Balancern aus

Benutzerdefinierte Header

Im Traffic-Pfad werden Edge- und Routenerweiterungen an Erweiterungspunkten vor der Phase ausgeführt, in der der Load-Balancer benutzerdefinierte Header hinzufügt. Daher enthalten die Header, die die Edge- und Routenerweiterungen empfangen, nicht die benutzerdefinierten Header, die der Load-Balancer hinzufügt.

Wenn Sie Informationen, die Sie normalerweise in benutzerdefinierte Header einfügen, für Edge- und Routenerweiterungen verfügbar machen möchten, sollten Sie stattdessen ein unterstütztes Attribut verwenden.

Einschränkungen von Erweiterungen

  • Eine Weiterleitungsregel kann nur eine LbEdgeExtension-Ressource, eine LbTrafficExtension-Ressource und eine LbRouteExtension-Ressource haben.
  • Für Callouts muss sich der Callout-Backend-Dienst im selben Projekt wie die Weiterleitungsregel befinden.
  • Projektübergreifende Verweise zwischen Erweiterungen und Weiterleitungsregeln werden nicht unterstützt.

Nächste Schritte