Mit Service Extensions können Sie Erweiterungen verwenden, um benutzerdefinierten Code in den Verarbeitungspfad von Media CDN einzufügen. Diese Seite bietet eine Übersicht über Media CDN-Erweiterungen.
Media CDN bietet viele integrierte Kernfunktionen für die gängigsten Anwendungsfälle für Content Delivery Networks (CDNs). Möglicherweise haben Sie Anforderungen, die über diese Funktionen hinausgehen. Beispielsweise müssen Sie möglicherweise Header normalisieren, um das Caching zu verbessern, einen benutzerdefinierten URL-Signaturalgorithmus verwenden oder Legacy-Verhalten von einem vorhandenen CDN zu Media CDN portieren.
Mit Edge-Erweiterungen (CdnEdgeExtension) können Sie WebAssembly-Plug-ins (Wasm) direkt im Google Edge-Netzwerk vor dem Cache im Media CDN-Verarbeitungspfad ausführen.
Eine CdnEdgeExtension-Ressource wird direkt an ein EdgeCacheService-Deployment angehängt und führt eine oder mehrere geordnete Erweiterungsketten (extensionChains) aus. Jede Erweiterungskette definiert Common Expression Language (CEL)-Abgleichsbedingungen (matchCondition.celExpression), um Anfragen selektiv anhand von Hostnamen, URL-Pfaden, Suchparametern oder HTTP-Anfrageheadern auszuwerten.
Plug-ins können sowohl auf HTTP-Anfrageheader als auch auf Antwortheader zugreifen und diese bearbeiten, die Generierung von Cache-Schlüsseln beeinflussen, benutzerdefinierte Autorisierungstokens oder URL-Signaturen validieren und synthetische Antworten bereitstellen. Weitere Informationen finden Sie in Abbildung 1.
Funktionsweise von Media CDN-Edge-Erweiterungen
Wenn eine Clientanfrage einen EdgeCacheService erreicht, der durch eine Edge-Erweiterung erweitert wird, wird die Erweiterung in der folgenden Reihenfolge ausgeführt:
Auswertung der Übereinstimmungsbedingung: Media CDN extrahiert Anfrageattribute und wertet die geordneten
extensionChainsaus, die in derCdnEdgeExtensiondefiniert sind. Die erste Kette, deren CEL-Ausdruck alstrueausgewertet wird, wird ausgeführt und alle nachfolgenden Ketten werden übersprungen.Verarbeitung von Plug-in-Anfrageheadern (
REQUEST_HEADERS): Ihre konfigurierten Plug-ins werden nacheinander ausgeführt. Sie können maximal zwei Plug-ins innerhalb einer einzelnen Erweiterungskette verketten. Plug-ins können weitergeleitete HTTP-Header und Envoy-Attribute prüfen, Anfrageheader hinzufügen oder umschreiben oder eine direkte synthetische Antwort an den Client zurückgeben.Routenzuordnung und Ursprungsauswahl: Media CDN wertet Routingregeln aus und wählt dann den Zielursprung basierend auf der Anfrage aus, einschließlich aller Anfrageheader oder URL-Pfade, die von den Plug-ins geändert wurden.
Cache-Suche und Ursprungsabruf: Media CDN wertet Cache-Schlüssel aus (die Anfrageheader oder URL-Pfade enthalten können, die von den Plug-ins geändert wurden), prüft den Edge-Cache-Speicher und stellt Inhalte bereit, wenn ein Cache-Treffer auftritt, oder ruft Inhalte vom ausgewählten Ursprung ab, wenn ein Cache-Fehler auftritt.
Verarbeitung von Plug-in-Antwortheadern (
RESPONSE_HEADERS): Nachdem Inhalte aus dem Cache oder dem Ursprung abgerufen wurden, werden Ihre konfigurierten Plug-ins nacheinander ausgeführt. Anschließend werden die geänderten Antwortheader an den Downstream-Client übermittelt.Bereitstellung für den Client: Die endgültigen Antwortheader und der Antworttext werden an den Client übermittelt.