Media CDN-Edge-Erweiterung konfigurieren

Auf dieser Seite wird beschrieben, wie Sie Media CDN-Edge-Erweiterungen (CdnEdgeExtension) konfigurieren, um WebAssembly-Plug-ins (Wasm) an Media CDN-Edge-Cache-Dienste (EdgeCacheService) anzuhängen.

Eine CdnEdgeExtension-Ressource wird direkt an ein EdgeCacheService-Deployment angehängt und führt eine oder mehrere geordnete Erweiterungsketten (extensionChains) aus. Jede Erweiterungskette wird mithilfe von CEL-Ausdrücken (Common Expression Language) abgeglichen und kann maximal zwei verkettete WasmPlugin-Ressourcen enthalten.

Weitere Informationen finden Sie unter Media CDN-Erweiterungen – Übersicht.

Hinweis

  1. Media CDN-Ursprung erstellen
  2. Media CDN-Dienst erstellen
  3. Plug-in mit Service Extensions erstellen

  4. Beachten Sie beim Konfigurieren einer CdnEdgeExtension-Ressource, dass Media CDN-Edge-Erweiterungen vor den meisten Media CDN-Features ausgeführt werden, einschließlich Routenabgleich und Cache-Lookup. So kann ein Plug-in Header oder URLs umschreiben, um das HTTP-Routing zu beeinflussen. Der Plug-in-Code kann jedoch keine benutzerdefinierten Header prüfen, die von Media CDN-Routenregeln oder integrierten Funktionen hinzugefügt werden. Wenn Sie auf Client- und Verbindungseigenschaften wie Clientregion, IP-Adresse oder TLS-Parameter zugreifen möchten, konfigurieren Sie Weiterleitungsattribute.

Media CDN-Edge-Erweiterung einrichten

So konfigurieren Sie eine CdnEdgeExtension-Ressource und hängen Plug-ins an ein EdgeCacheService-Deployment an:

  1. Definieren Sie die CdnEdgeExtension-Ressource in einer YAML-Datei.

    Im folgenden Beispiel wird WASM_PLUGIN aufgerufen, um sowohl Anfrage- als auch Antwortheader zu verarbeiten, wenn Sie eine Anfrage an media.example.com senden.

    Hinweis: Die Einstellung failOpen: false gibt den HTTP-Fehlercode 500 zurück, wenn das Plug-in fehlschlägt oder eine Zeitüberschreitung auftritt.

    cat >cdn-edge-extension.yaml <<EOF
    edgeCacheServices:
    - projects/PROJECT_ID/locations/global/edgeCacheServices/SERVICE_NAME
    extensionChains:
    - name: "edge-plugin-chain"
      matchCondition:
        celExpression: 'request.host == "media.example.com"'
      extensions:
      - name: "auth-and-header-plugin"
        service: projects/PROJECT_ID/locations/global/wasmPlugins/WASM_PLUGIN
        failOpen: false
        supportedEvents:
        - REQUEST_HEADERS
        - RESPONSE_HEADERS
        forwardAttributes:
        - request.method
        - request.host
        - request.path
        - source.client_region
    EOF
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: ID Ihres Google Cloud -Projekts
    • SERVICE_NAME: Name des Media CDN-Zieldienstes (EdgeCacheService)
    • WASM_PLUGIN: Name Ihres Plug-ins, z. B. my-wasm-plugin-resource

    Weitere Informationen zu den Feldern in der YAML-Datei finden Sie in der API-Dokumentation unter ExtensionChain.

  2. Verwenden Sie den Befehl gcloud beta service-extensions cdn-edge-extensions import, um die Ressource CdnEdgeExtension zu importieren:

    gcloud beta service-extensions cdn-edge-extensions import cdn-edge-ext \
       --source=cdn-edge-extension.yaml \
       --location=global
    

    Hinweis: Es kann einige Zeit dauern, bis die neue Plug-in-Konfiguration an allen Standorten verteilt ist.

Beschränkungen

  • Sie können nur eine Edge-Erweiterung an ein EdgeCacheService-Deployment anhängen.
  • Eine Edge-Erweiterungskette kann maximal zwei Plug-ins enthalten.
  • Media CDN-Edge-Erweiterungen unterstützen REQUEST_HEADERS- und RESPONSE_HEADERS-Ereignisse. Diese Erweiterungen unterstützen keine HTTP-Text- oder Trailer-Verarbeitung.
  • Bei Media CDN-Edge-Erweiterungen können Sie nur einen regulären Ausdruck pro CEL-Ausdruck verwenden.
  • Die Namen von Erweiterungsketten und Erweiterungen müssen RFC-1034 entsprechen. Gemäß dieser Spezifikation können Namen bis zu 63 alphanumerische Kleinbuchstaben oder Bindestriche enthalten, müssen mit einem Buchstaben beginnen und mit einem Buchstaben oder einer Ziffer enden.

Weitere Informationen zu Ressourcenlimits finden Sie unter Kontingente und Limits.

Nächste Schritte