Execute uma função em um caminho e reverta-o
Execute uma instância de função em um caminho e um método com uma regra Run Function, e reverta o caminho desativando a regra.
Você executa uma função em um caminho e um método de uma aplicação com uma regra Run Function, e reverte o caminho desativando essa regra, pelo Azion Console, pela API ou pela Azion CLI. Para criar a função e a sua instância antes, consulte Primeiros passos com Functions.
Uma regra para um caminho move esse caminho para a função, enquanto todos os outros caminhos mantêm a regra que os atendia antes. O switch Active da regra, o campo active na API, é a reversão: uma regra desativada não é executada, e o caminho volta para a regra anterior sem mudança em nenhuma outra regra.
- Toda requisição corresponde à primeira regra, que a envia à origem por um connector.
- Uma requisição
GETpara/api/itemstambém corresponde à segunda regra enquanto ela está ativa, e a instância da função a responde. - Qualquer outra requisição, e toda requisição depois que a segunda regra é desativada, é respondida pela origem.
Pré-requisitos
- Uma aplicação servida por um workload, com uma regra que envia todas as requisições a um connector. Para criá-los, consulte Primeiros passos com Applications.
- Application Accelerator na aplicação, que o behavior Run Function exige. Para ativá-lo, consulte Ative Application Accelerator.
- Uma instância de função na aplicação. Para criar a função e a instância, consulte Primeiros passos com Functions, que cria as duas.
- Um personal token, para os procedimentos pela API.
- A Azion CLI instalada e autorizada, para os procedimentos pela CLI.
Os exemplos executam a instância <function-instance-id> em GET /api/items da aplicação <application-id>, no domínio www.example.com. Substitua-os pelos seus valores.
Crie a regra para o caminho e o método
A regra carrega dois grupos de critérios, um para o caminho e outro para o método. Os grupos se unem com and, então uma requisição só corresponde quando os dois correspondem, e um POST para o mesmo caminho continua chegando à origem. Nem ${uri} nem ${request_method} exigem um Produto na aplicação.
Uma regra nova é criada no fim da Request Phase, depois da regra que envia todos os caminhos ao connector. Uma regra posicionada depois de outra que encerra o processamento, como Deliver ou Finish Request Phase, nunca é executada para as requisições que essa outra regra corresponde.
Para criar a regra no Azion Console:
Acesse Azion Console > Applications > sua aplicação e vá para a aba Rules Engine.
Insira um nome que identifique o caminho. Por exemplo: function - GET /api/items.
Na seção Criteria, defina o critério como ${uri} is equal /api/items.
Adicione um segundo grupo de critérios com um critério: ${request_method} is equal GET.
A regra aparece na lista Request, depois da regra que envia todos os caminhos ao connector.
GET /api/items executa a instância da função, e todas as outras requisições continuam chegando à origem. Uma regra nova leva alguns minutos para chegar a todos os data centers. Quando Run Function não aparece na lista de behaviors, a aplicação precisa de Application Accelerator.
Reverta o caminho
Desativar a regra mantém os seus critérios e o seu behavior, então ativá-la de novo move o caminho de volta para a função. A atualização muda somente active.
Para desativar a regra no Azion Console:
Acesse Azion Console > Applications > sua aplicação e vá para a aba Rules Engine.
Na lista Request, selecione function - GET /api/items.
Na seção Status, desative Active.
GET /api/items volta a chegar à origem quando a mudança se propaga. Durante a propagação, alguns data centers ainda executam a função, então as duas versões respondem por alguns minutos.
Verifique qual versão responde
O Upstream Addr de um registro de requisição indica quem a respondeu, e 127.0.0.1:1666 indica o Azion Runtime. Para verificar o caminho no Real-Time Events:
Acesse Azion Console > Real-Time Events.
Em Filter by, insira request_uri like '/api/items%'.
Enquanto a regra está ativa, os registros GET carregam 127.0.0.1:1666. Depois da reversão, os registros novos carregam o endereço e a porta da origem. Para a sintaxe do filtro, consulte Filtrar eventos.