Azion CLI rules-engine
Comandos da Azion CLI que criam, listam, descrevem, atualizam, ordenam e excluem as regras do Rules Engine de uma aplicação, com cada flag e padrão.
Os comandos rules-engine da Azion CLI criam, listam, descrevem, atualizam, ordenam e excluem as regras do Rules Engine de uma aplicação. Uma regra guarda critérios que uma requisição ou uma resposta precisa atender e os behaviors que ela aplica em seguida. Cada regra pertence a uma fase, request ou response, e cada comando recebe essa fase com --phase. As opções que todo comando aceita, como --format, --out e -y, estão em Opções globais.
Criar
azion create rules-engine cria uma regra em uma fase de uma aplicação, a partir de um arquivo JSON:
| Flag | Curta | Tipo | Padrão | Descrição |
|---|---|---|---|---|
--application-id | — | int | — | ID da aplicação que executa a regra. |
--file | — | string | — | Obrigatório. Caminho de um arquivo JSON com os atributos da regra. Use - para ler o JSON da entrada padrão. Sem ele, o comando pergunta o caminho. |
--phase | — | string | — | Fase da regra, request ou response. |
Um valor de --phase diferente de request ou response é recusado com Error: Invalid phase value provided. The value must be 'request' or 'response'.
Este arquivo descreve uma regra que entrega toda requisição cuja URI começa com /static:
Este comando cria a regra na fase de requisição da aplicação com ID 1234567890:
O comando imprime o ID da regra:
Listar
azion list rules-engine lista as regras de uma fase de uma aplicação, 50 por página:
| Flag | Curta | Tipo | Padrão | Descrição |
|---|---|---|---|---|
--application-id | — | int | — | ID da aplicação cujas regras você lista. |
--details | — | — | — | Adiciona as colunas ORDER, PHASE e ACTIVE às colunas ID e NAME. |
--filter | — | string | — | Nome pelo qual filtrar a lista. |
--order-by | — | string | — | Campo pelo qual ordenar a lista. |
--page | — | int | 1 | Número da página a retornar. |
--page-size | — | int | 50 | Número de regras em cada página. |
--phase | — | string | "request" | Obrigatório. Fase das regras a listar, request ou response. Sem ela, o comando pergunta a fase em vez de usar o padrão. |
Este comando lista as regras da fase de requisição da aplicação com ID 1234567890:
O comando imprime uma linha por regra:
Descrever
azion describe rules-engine imprime os critérios, os behaviors e a posição de uma regra:
| Flag | Curta | Tipo | Padrão | Descrição |
|---|---|---|---|---|
--application-id | — | int | — | ID da aplicação que executa a regra. |
--phase | — | string | — | Fase da regra, request ou response. Na outra fase, a regra não é encontrada. |
--rule-id | — | int | — | ID da regra a descrever. |
Uma regra descrita na fase errada falha com Error: Failed to describe the rule in Rules Engine: The given ID or API's endpoint doesn't exist or isn't available.
Este comando descreve a regra com ID 123456 na fase de requisição:
O comando imprime os atributos da regra:
Com --format json, o comando imprime o objeto completo: active, behaviors, created_at, criteria, description, id, last_editor, last_modified, name e order. Com --out e o caminho de um arquivo, o comando grava o mesmo JSON nesse arquivo, com ou sem --format json.
Atualizar
azion update rules-engine altera os atributos de uma regra a partir de um arquivo JSON:
| Flag | Curta | Tipo | Padrão | Descrição |
|---|---|---|---|---|
--application-id | — | int | — | Obrigatório. ID da aplicação que executa a regra. |
--file | — | string | — | Obrigatório. Caminho de um arquivo JSON com os atributos a alterar. Use - para ler o JSON da entrada padrão. Sem ele, o comando pergunta o caminho. |
--phase | — | string | — | Obrigatório. Fase da regra, request ou response. |
--rule-id | — | int | — | Obrigatório. ID da regra a atualizar. |
A atualização é parcial. As chaves que o arquivo omite mantêm os seus valores, então um arquivo sem criteria ou behaviors mantém os que a regra já tem.
Este arquivo renomeia a regra, a desativa e adiciona uma descrição:
Este comando aplica o arquivo à regra com ID 123456:
O comando imprime o ID da regra atualizada:
Ordenar regras
azion update rules-engine-order define a ordem em que as regras de uma fase são executadas, a partir de uma lista de IDs de regras:
| Flag | Curta | Tipo | Padrão | Descrição |
|---|---|---|---|---|
--application-id | — | int | — | ID da aplicação que executa as regras. |
--phase | — | string | — | Fase das regras, request ou response. |
--rule-ids | — | string | — | IDs das regras na ordem em que são executadas, separados por vírgulas, como 123,456,789. |
A lista precisa nomear todas as regras. Com uma de duas regras omitida, o comando falha com este erro:
Este comando move a regra com ID 123457 para antes da regra com ID 123456:
O comando confirma a nova ordem:
Uma listagem com --details mostra em seguida a nova posição de cada regra na coluna ORDER, a partir de 0:
Excluir
azion delete rules-engine exclui uma regra:
| Flag | Curta | Tipo | Padrão | Descrição |
|---|---|---|---|---|
--application-id | — | int | — | ID da aplicação que executa a regra. |
--phase | — | string | "request" | Obrigatório. Fase da regra, request ou response. Sem ela, o comando pergunta a fase, mesmo com -y. |
--rule-id | — | int | — | ID da regra a excluir. |
Este comando exclui a regra com ID 123457 da fase de requisição:
O comando confirma a exclusão:
Usar um arquivo JSON
azion create rules-engine e azion update rules-engine leem os atributos de uma regra apenas de um arquivo JSON, passado com --file. Use - no lugar do caminho para ler o JSON da entrada padrão. O arquivo recebe estas chaves:
| Chave | Tipo | Descrição |
|---|---|---|
name | string | Nome da regra. |
active | boolean | Ativa (true) ou desativa (false) a regra. |
description | string | Descrição da regra. |
criteria | array | Grupos de condições. Cada condição é um objeto com variable, operator, conditional e argument, como ${uri}, starts_with, if e /static. |
behaviors | array | Behaviors que a regra aplica, cada um deles um objeto com um type, como deliver. |
Na criação, o arquivo traz a regra inteira. Na atualização, o arquivo traz apenas as chaves a alterar, e a regra mantém todos os outros valores. O ID da regra, o ID da aplicação e a fase vão na linha de comando com as suas flags.