Configura una extensión perimetral de Media CDN

En esta página, se describe cómo configurar las extensiones perimetrales de Media CDN (CdnEdgeExtension) para adjuntar complementos de WebAssembly (Wasm) a los servicios de almacenamiento en caché perimetral de Media CDN (EdgeCacheService).

Un recurso CdnEdgeExtension se conecta directamente a una implementación de EdgeCacheService y ejecuta una o más cadenas de extensiones ordenadas (extensionChains). Cada cadena de extensiones se hace coincidir con expresiones de Common Expression Language (CEL) y puede contener un máximo de dos recursos WasmPlugin encadenados.

Para obtener más información, consulta Descripción general de las extensiones de Media CDN.

Antes de comenzar

  1. Crea un origen de Media CDN
  2. Crea un servicio de Media CDN
  3. Crea un complemento con Service Extensions

  4. Cuando configures un recurso CdnEdgeExtension, ten en cuenta que las extensiones perimetrales de Media CDN se ejecutan antes de la mayoría de las funciones de Media CDN, incluidas la coincidencia de rutas y la búsqueda en caché. Esto permite que un complemento vuelva a escribir encabezados o URLs para influir en el enrutamiento HTTP. Sin embargo, el código del complemento no puede inspeccionar los encabezados personalizados que agregan las reglas de enrutamiento de Media CDN ni las funciones integradas. Para acceder a las propiedades del cliente y de la conexión, como la región del cliente, la dirección IP o los parámetros de TLS, configura los atributos de reenvío.

Configura la extensión perimetral de Media CDN

Para configurar un recurso CdnEdgeExtension y adjuntar complementos a una implementación de EdgeCacheService, haz lo siguiente:

  1. Define el recurso CdnEdgeExtension en un archivo YAML.

    En el siguiente ejemplo, se invoca WASM_PLUGIN para procesar los encabezados de solicitud y respuesta cuando envías una solicitud a media.example.com.

    Nota: El parámetro de configuración failOpen: false devuelve un código de error HTTP 500 si el complemento falla o se agota el tiempo de espera.

    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
    

    Reemplaza lo siguiente:

    • PROJECT_IDID del proyecto de Google Cloud
    • SERVICE_NAME: Es el nombre del servicio de Media CDN de destino (EdgeCacheService).
    • WASM_PLUGIN: Es el nombre de tu complemento, como my-wasm-plugin-resource.

    Para obtener más información sobre los campos del archivo YAML, consulta ExtensionChain en la documentación de la API.

  2. Usa el comando gcloud beta service-extensions cdn-edge-extensions import para importar el recurso CdnEdgeExtension:

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

    Nota: Es posible que la nueva configuración del complemento tarde un poco en distribuirse en todas las ubicaciones.

Limitaciones

  • Solo puedes adjuntar una extensión perimetral a una implementación de EdgeCacheService.
  • Una cadena de extensiones perimetrales puede contener un máximo de dos complementos.
  • Las extensiones perimetrales de Media CDN admiten eventos REQUEST_HEADERS y RESPONSE_HEADERS. Estas extensiones no admiten el procesamiento del cuerpo o del finalizador de HTTP.
  • Las extensiones perimetrales de Media CDN te permiten usar solo una expresión regular para cada expresión de CEL.
  • Los nombres de las cadenas de extensiones y las extensiones deben cumplir con RFC-1034. Según esta especificación, los nombres pueden contener hasta 63 caracteres alfanuméricos en minúscula o guiones, deben comenzar con una letra y terminar con una letra o un número.

Para obtener más información sobre los límites de recursos, consulta Cuotas y límites.

¿Qué sigue?