Visão geral das extensões do Media CDN

Com as extensões de serviço, é possível usar extensões para inserir código personalizado no caminho de processamento do Media CDN. Nesta página, apresentamos uma visão geral das extensões do Media CDN.

O Media CDN oferece muitos recursos principais integrados para atender aos casos de uso mais comuns de redes de fornecimento de conteúdo (CDNs). Talvez você tenha requisitos além desses recursos. Por exemplo, talvez seja necessário normalizar cabeçalhos para melhorar o armazenamento em cache, usar um algoritmo de assinatura de URL personalizado ou portar o comportamento legado de uma CDN atual para o Media CDN.

É possível usar extensões de borda (CdnEdgeExtension) para executar plug-ins do WebAssembly (Wasm) diretamente na rede de borda do Google, na frente do cache no caminho de processamento do Media CDN.

Um recurso CdnEdgeExtension é anexado diretamente a uma implantação EdgeCacheService e executa uma ou mais cadeias de extensão ordenadas (extensionChains). Cada cadeia de extensão define condições de correspondência (matchCondition.celExpression) da Common Expression Language (CEL) para avaliar seletivamente as solicitações com base em nomes de host, caminhos de URL, parâmetros de consulta ou cabeçalhos de solicitação HTTP.

Os plug-ins podem acessar e manipular cabeçalhos de solicitação e resposta HTTP, influenciar a geração de chaves de cache, validar tokens de autorização personalizados ou assinaturas de URL e exibir respostas sintéticas. Para mais informações, consulte a Figura 1.

As extensões de borda do Media CDN usam plug-ins para adicionar código personalizado
     ao caminho de processamento.
Figura 1. As extensões de borda do Media CDN usam plug-ins para adicionar código personalizado ao caminho de processamento (clique para ampliar).

Como funcionam as extensões de borda do Media CDN

Quando uma solicitação de cliente chega a um EdgeCacheService que é estendido por uma extensão de borda, a extensão é executada na seguinte sequência:

  1. Avaliação da condição de correspondência: o Media CDN extrai atributos de solicitação e avalia o extensionChains ordenado definido no CdnEdgeExtension. A primeira cadeia com expressão CEL avaliada como true é executada, e todas as cadeias subsequentes são ignoradas.

  2. Processamento do cabeçalho da solicitação do plug-in (REQUEST_HEADERS): os plug-ins configurados são executados sequencialmente. É possível encadear no máximo dois plug-ins em uma única cadeia de extensões. Os plug-ins podem inspecionar cabeçalhos HTTP encaminhados e atributos do Envoy, adicionar ou reescrever cabeçalhos da solicitação ou retornar uma resposta sintética direta ao cliente.

  3. Correspondência de rota e seleção de origem: o Media CDN avalia as regras de rota e seleciona a origem de destino com base na solicitação, incluindo os cabeçalhos da solicitação ou caminhos do URL modificados pelos plug-ins.

  4. Pesquisa de cache e busca de origem: o Media CDN avalia as chaves de cache (que podem incorporar cabeçalhos da solicitação ou caminhos do URL modificados pelos plug-ins), verifica o armazenamento em cache de borda e exibe o conteúdo quando ocorre uma ocorrência em cache ou busca o conteúdo da origem selecionada quando ocorre uma ausência no cache.

  5. Processamento do cabeçalho de resposta do plug-in (RESPONSE_HEADERS): depois que o conteúdo é recuperado do cache ou da origem, os plug-ins configurados são executados em sequência. Em seguida, os cabeçalhos de resposta modificados são entregues ao cliente downstream.

  6. Entrega ao cliente: os cabeçalhos de resposta e o corpo da resposta final são entregues ao cliente.

A seguir