Device Groups
Consulte os campos de um device group, como uma regra o identifica com a variável device_group e como um cache setting varia por ele.
Um device group é um nome e uma expressão regular que uma aplicação compara com o header User-Agent de cada requisição. Uma requisição cujo header corresponde à expressão pertence ao grupo, então uma regra ou um cache setting pode tratar esses dispositivos de forma separada do restante. Cada aplicação tem os seus próprios device groups, e Azion Console os lista na aba Device Groups da aplicação.
Campos do device group
Um device group carrega dois campos que você define e um ID que a plataforma atribui. Uma regra se refere a um device group pelo nome, e um cache setting se refere a ele pelo ID.
| Campo | Tipo | Descrição |
|---|---|---|
| Name | string | O nome do grupo. Uma regra compara ${device_group} com esse nome, e a cache key de uma cópia que varia por dispositivo termina com ele. Azion Console mostra Name must be alphanumeric para um nome com outros caracteres |
| Regular Expression | string | A expressão comparada com o conteúdo do header User-Agent, na seção Match to User-Agent do formulário. Ela segue o padrão PCRE. Azion Console mostra Enter a valid regular expression pattern. para uma expressão que não consegue ler, e User Agent cannot contain emojis or null bytes para uma expressão que carrega um dos dois |
| ID | integer | O identificador do grupo. O campo cache_vary_by_devices.device_group de um cache setting lista os device groups por esse ID |
Header User-Agent
O header de requisição User-Agent carrega informações sobre o cliente que envia a requisição: o navegador, o sistema operacional, a versão e o fabricante. O header segue esta sintaxe:
| Parte | O que contém |
|---|---|
product | O identificador do produto |
product-version | O número de versão do produto |
comment | Informações do sistema, o nome da plataforma e os seus detalhes, e extensões |
Por exemplo, uma requisição do Mozilla Firefox em um computador Windows carrega este header:
Correspondência com o User-Agent
Uma aplicação compara a Regular Expression de um device group com o conteúdo do header User-Agent, e uma requisição pertence ao grupo quando a expressão corresponde. A expressão não precisa corresponder ao header inteiro, porque uma correspondência com parte dele basta. Por exemplo, um grupo chamado Mobile com esta expressão corresponde aos headers da maioria dos dispositivos móveis:
Ordem de correspondência
Quando um header User-Agent corresponde a mais de um device group, a requisição recebe o primeiro grupo que corresponde, do primeiro ao último na lista de device groups. A posição das palavras que correspondem dentro do header não muda o resultado. Por exemplo, uma aplicação tem estes três device groups, nesta ordem:
| Ordem | Device group | Expressão regular |
|---|---|---|
| 1 | Mobile | (Mobile|Android) |
| 2 | Tablet | (iPad|Android) |
| 3 | Desktop | (Chrome|Mozilla) |
Um header que contém Android Tablet Mobile (Mozilla Firefox) corresponde às três expressões, e a requisição recebe Mobile, o primeiro da lista. Um header que contém iPad Apple Webkit Mobile corresponde a Tablet por meio de iPad. Ainda assim, a requisição recebe Mobile, porque Mobile também corresponde e vem primeiro.
Variável do Rules Engine
No Rules Engine para Applications, a variável ${device_group} contém o nome do device group ao qual a requisição pertence. Um critério a compara com o nome de um grupo, usado como argumento, então os behaviors da regra se aplicam somente às requisições desse grupo. A variável exige Application Accelerator na aplicação.
Este critério corresponde a uma requisição do device group Mobile:
| Condicional | Variável | Operador | Argumento |
|---|---|---|---|
if | ${device_group} | is_equal | Mobile |
Um critério também pode identificar um dispositivo sem device group, comparando ${http_user_agent} com uma string ou com uma expressão regular. Este critério corresponde a uma requisição de um iPhone:
| Condicional | Variável | Operador | Argumento |
|---|---|---|---|
if | ${http_user_agent} | matches | (?i)iPhone |
Para todas as variáveis e todos os operadores que uma regra pode usar, consulte Rules Engine para Applications.
Variação de cache
Um cache setting pode entregar uma versão de um objeto a todos os dispositivos, ou manter uma cópia separada para cada device group que ele nomeia. No Azion Console, o controle é Cache vary by Devices › Behavior, na seção Application Accelerator do cache setting. Na API, o controle grava modules.application_accelerator.cache_vary_by_devices, cujo campo device_group lista os device groups por ID. Um cache setting que não define o controle carrega "behavior": "ignore" e uma lista device_group vazia. Azion CLI não tem flag para a variação por device group.
A seção Application Accelerator de um cache setting exige Application Accelerator na aplicação, e, sem esse Produto, a API recusa os campos da seção com o erro 21013. Para os valores que cada campo aceita, consulte Configurações do Application Accelerator.
Cada cópia que varia por device group tem a sua própria cache key, que termina em @@ e no nome do device group, como httpwww.example.com/@@Mobile. Um purge por URL não alcança essas cópias, então purgue-as por cache key ou com um wildcard. Para o formato da key, consulte Cache keys. Para os tipos de purge, consulte Real-Time Purge.