Faça cache de uma biblioteca HLS sob demanda por extensão de arquivo
Dê aos segmentos e às playlists de uma biblioteca HLS sob demanda configurações de cache próprias e aplique cada uma com uma regra na extensão do arquivo.
Você dá aos segmentos e às playlists de uma biblioteca HLS sob demanda configurações de cache próprias e aplica cada uma com uma regra na extensão do arquivo, pelo Azion Console, pela Azion API ou pela Azion CLI. Para uma transmissão ao vivo, consulte Implemente cache HLS para streaming ao vivo quando a sua própria origem a produz, ou Entregue uma transmissão ao vivo a partir do Live Ingest quando o Live Ingest a produz.
Um título HLS é um conjunto de playlists, .m3u8, e dos segmentos que elas listam, .ts. Um segmento de um título codificado não muda, então pode ficar em cache por muito tempo e usar o Tiered Cache. Uma playlist pode ser reescrita quando um título é republicado, então recebe um tempo de cache menor e fica fora da camada do Tiered Cache para que um purge por URL a remova.
- Um path que termina em
.tsrecebe a configuração de cachevod-hls-segments. - Um path que termina em
.m3u8recebe a configuração de cachevod-hls-playlists. - Qualquer outro path fica com as outras regras da aplicação.
- Um miss chega à origem pelo connector, e a resposta é armazenada em cache sob a configuração que o seu path recebeu.
Pré-requisitos
- Uma aplicação que serve a biblioteca por um connector, para um bucket ou para uma origem HTTP. Para um bucket, consulte Use um bucket como origem de uma aplicação.
- Um personal token, para os procedimentos pela API.
- A Azion CLI instalada e autorizada, para os procedimentos pela CLI.
- Acesso ao Azion Console, para os procedimentos pelo Console. Consulte Acesse o Azion Console.
Os exemplos mantêm os segmentos em cache por 86400 segundos e as playlists por 300 segundos, em uma aplicação servida em www.example.com. Substitua-os pelos valores de que a sua biblioteca precisa.
Crie as configurações de cache
Cada tipo de arquivo recebe a sua própria configuração de cache. Max Age aceita de 0 a 31.536.000 segundos. Um valor abaixo de 60 exige o Application Accelerator na aplicação, ou a API rejeita a configuração com 21021, então os exemplos ficam em 60 ou mais. O Tiered Cache exige Override cache behavior, ou a API rejeita a configuração com 21001, e um Max Age de pelo menos 3 segundos, ou ela falha com 21020.
As duas configurações substituem o cache do browser por 0 segundos. O Real-Time Purge remove uma cópia das camadas de cache da Azion, e uma cópia que o browser do espectador guarda fica lá até o fim do próprio TTL.
Para criar a configuração de cache dos segmentos:
Acesse Azion Console > Applications, selecione a aplicação que serve a biblioteca e selecione a aba Cache Settings.
Em Name, insira vod-hls-segments.
Em Browser Cache, selecione Override cache settings e defina o TTL como 0.
Em Cache, mantenha Override cache behavior selecionado e defina Max Age como 86400.
Na mesma seção, ative Tiered Cache e selecione a região mais próxima em Tiered Cache Region.
Crie a configuração de cache das playlists com os mesmos passos: nomeie-a vod-hls-playlists, defina Max Age como 300 e deixe Tiered Cache desativado.
As duas configurações aparecem na aba Cache Settings da aplicação, e nenhuma se aplica a uma requisição até que uma regra a nomeie.
Aplique cada configuração com uma regra na sua extensão
O operador matches compara o path com uma expressão regular. \.ts$ escapa o ponto e ancora o padrão no fim do path, então só um path que termina em .ts recebe a configuração dos segmentos. ${uri} guarda o path sem a query string, então um segmento solicitado com uma query string ainda corresponde. A regra usa o behavior Set Cache Policy, que não exige outro Product na aplicação.
Para criar a regra dos segmentos:
Em General, insira cache-vod-segments como Name.
Em Phase, selecione Request Phase.
Em Criteria, selecione a variável ${uri} e o operador matches, e insira \.ts$ como argumento.
Em Behaviors, selecione Set Cache Policy e depois selecione vod-hls-segments.
Crie a regra das playlists com os mesmos passos: nomeie-a cache-vod-playlists, insira \.m3u8$ como argumento e selecione vod-hls-playlists.
Os segmentos ficam em cache por 86.400 segundos no Cache e na camada do Tiered Cache, e as playlists por 300 segundos no Cache. Uma regra nova pode levar alguns minutos para se propagar.
Confirme que cada tipo de arquivo responde do cache
O header de requisição Pragma: azion-debug-cache faz a resposta carregar o header x-cache. Para confirmar a configuração dos segmentos:
O header x-cache da segunda resposta começa com HIT, porque a Azion respondeu a partir da cópia armazenada. O header também carrega o endereço IP do servidor que respondeu e o protocolo.
Repita as duas requisições para uma playlist, https://www.example.com/<title>/<playlist>.m3u8. A primeira resposta de cada arquivo pode carregar MISS, enquanto a Azion o busca na origem. Para cada status que o header pode carregar, consulte Verifique o status de cache de uma resposta.