Nesta página, descrevemos como configurar extensões de borda do Media CDN
(CdnEdgeExtension) para anexar plug-ins do WebAssembly (Wasm) aos
serviços de armazenamento em cache de borda do Media CDN
(EdgeCacheService).
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 é correspondida usando expressões da Common Expression Language (CEL)
e pode conter no máximo dois recursos WasmPlugin encadeados.
Para mais informações, consulte Visão geral das extensões do Media CDN.
Antes de começar
- Criar uma origem do Media CDN
- Criar um serviço do Media CDN
Ao configurar um recurso
CdnEdgeExtension, considere que as extensões de borda do Media CDN são executadas antes da maioria dos recursos do Media CDN, incluindo correspondência de rota e pesquisa de cache. Isso permite que um plug-in reescreva cabeçalhos ou URLs para influenciar o roteamento HTTP. No entanto, o código do plug-in não pode inspecionar cabeçalhos personalizados que as regras de rota do Media CDN adicionam ou recursos integrados. Para acessar as propriedades do cliente e da conexão, como região do cliente, endereço IP ou parâmetros de TLS, configure os atributos de encaminhamento.
Configurar a extensão de borda do Media CDN
Para configurar um recurso CdnEdgeExtension e anexar plug-ins a uma
implantação do EdgeCacheService, faça o seguinte:
Defina o recurso
CdnEdgeExtensionem um arquivo YAML.O exemplo a seguir invoca
WASM_PLUGINpara processar os cabeçalhos de solicitação e cabeçalhos de resposta quando você envia uma solicitação paramedia.example.com.Observação: a configuração
failOpen: falseretornará um código de erro HTTP500se o plug-in falhar ou expirar.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 EOFSubstitua:
PROJECT_ID: ID do projeto do Google Cloud .SERVICE_NAME: nome do serviço de destinoMedia CDN(EdgeCacheService)WASM_PLUGIN: nome do plug-in, comomy-wasm-plugin-resource
Para mais informações sobre os campos no arquivo YAML, consulte ExtensionChain na documentação da API.
Use o comando
gcloud beta service-extensions cdn-edge-extensions importpara importar o recursoCdnEdgeExtension:gcloud beta service-extensions cdn-edge-extensions import cdn-edge-ext \ --source=cdn-edge-extension.yaml \ --location=global
Observação: pode levar algum tempo para que a nova configuração do plug-in seja distribuída em todos os locais.
Limitações
- Só é possível anexar uma extensão de borda a uma implantação do
EdgeCacheService. - Uma cadeia de extensões de borda pode conter no máximo dois plug-ins.
- As extensões de borda do Media CDN são compatíveis com os eventos
REQUEST_HEADERSeRESPONSE_HEADERS. Essas extensões não são compatíveis com o processamento de corpo ou trailer HTTP. - As extensões de borda do Media CDN permitem usar apenas uma expressão regular para cada expressão CEL.
- Os nomes das cadeias de extensão e das extensões precisam estar em conformidade com a RFC-1034. De acordo com essa especificação, os nomes podem conter até 63 caracteres alfanuméricos minúsculos ou hifens, precisam começar com uma letra e terminar com uma letra ou um número.
Para mais informações sobre limites de recursos, consulte Cotas e limites.