Como utilizar a integração Scheduled Blocking através do Marketplace da Azion

Scheduled Blocking da Azion é uma integração serverless disponível no Marketplace da Azion.

Essa integração permite controlar o acesso à sua aplicação com base em um cronograma, de acordo com suas necessidades.


Obtenha a integração

Para usar a integração Scheduled Blocking fornecida pelo Marketplace da Azion, você deve seguir os passos:

  1. Acesse o Azion Console > Marketplace.
  2. Na homepage do Marketplace, selecione o card da integração.
  3. Quando a página da integração abrir, clique no botão Install, localizado no canto inferior da direita.

Aparecerá uma mensagem indicando que sua integração foi instalada com sucesso.


Configure a integração

Configure um edge firewall

Para instanciar a integração Scheduled Blocking, siga as etapas:

  1. Em Products menu, selecione Edge Firewall dentro da seção SECURE.
  2. Clique no botão + Edge Firewall.
  3. Dê um nome fácil de lembrar para o seu edge firewall.
  4. Selecione os domínios que você deseja proteger.
  5. Habilite o switch Edge Functions para que você rode edge functions no seu edge firewall.
  6. Clique no botão Save.

Pronto. Agora você instanciou o edge firewall para sua função.

Instancie a integração

Para instanciar a integração Scheduled Blocking, ainda na página do Edge Firewall:

  1. Selecione a aba Functions.
  2. Clique no botão Add Function.
  3. Dê um nome fácil de lembrar para a sua instância.
  4. No menu suspenso, selecione a função Scheduled Blocking.

Esta ação carregará a função, mostrando um formulário com seu código-fonte e, logo acima dele, duas abas: Code e Args.

Ao clicar na aba Code, você poderá navegar pelo código, mas não alterá-lo. No mesmo formulário, você tem outra aba: Args, que é onde você passará os parâmetros que deseja usar com sua integração.

A aba Args carregará um arquivo JSON que se parece com o mostrado abaixo:

{
"schedule": [
{
"action": "deny",
"execute_action_when": "in_interval",
"interval": {
"starts_at_utc": "00:00",
"finishes_at_utc": "00:59"
},
"week_days": {
"Sun": true,
"Mon": true,
"Tue": true,
"Wed": true,
"Thu": true,
"Fri": false,
"Sat": true
}
},
{
"action": "drop",
"execute_action_when": "not_in_interval",
"interval": {
"starts_at_utc": "01:00",
"finishes_at_utc": "20:00"
},
"week_days": {
"Mon": true,
"Tue": true
}
},
{
"action": "static_response",
"execute_action_when": "in_interval",
"static_response_data": {
"status": 503,
"message": "You can write a custom message here",
"html": "<!-- Some HTML can go here -->"
},
"interval": {
"starts_at_utc": "20:00",
"finishes_at_utc": "23:59"
},
"week_days": {
"Sun": true,
"Sat": true
}
}
]
}

Os argumentos que você pode passar para este arquivo JSON são os seguintes:

AtributoTipo de dadoDescrição
actionStringDefine a ação que a função executará sempre que uma requisição corresponder aos critérios de disparo.

Os valores possíveis são:
Deny: fechará a requisição com uma resposta HTTP 403 Proibida.
Drop: encerra o pedido sem enviar qualquer resposta ao cliente.
static_response: encerrará a requisição com uma resposta estática a ela.
execute_action_whenStringOs valores possíveis são:
in_interval
not_in_interval

Quando este argumento é definido como in_interval, a action será executada sempre que esta função for chamada durante o intervalo de tempo definido.
Quando o argumento é definido como not_in_interval a action será executada mesmo que a função seja chamada fora do intervalo de tempo definido.
intervalDicionário de StringsDefine o intervalo de tempo.
Os valores devem estar no formato “HH
”, com base em um relógio de 24 horas.
Esta função é usada no fuso horário UTC.
interval.starts_at_utcStringDefine a hora de início do intervalo.
interval.finishes_at_utcStringDefine a hora final do intervalo.
week_daysDicionário de BooleanosDefine os dias da semana em que a função será executada.
Os índices do dicionário representam cada dia da semana. Espera-se que eles usem um formato de data EEE, de 3 letras, começando com maiúsculas. Por exemplo: “Sun” para domingo, “Mon” para segunda.
Se um dia inválido for usado, ele será ignorado. Se um dia não estiver presente no dicionário, ele será considerado falso.
static_response_dataDicionário de StringsPermite a personalização da página de resposta estática que será retornada sempre que a ação for definida como static_response.
static_response_data.statusNúmeroO código de status usado na resposta estática.
static_response_data.messageStringEste argumento permite que você personalize a mensagem exibida na página de resposta estática.
static_response_data.htmlStringPermite que você forneça um HTML personalizado para ser usado ao fornecer a resposta estática.
  1. Clique no botão Save. Sua integração está instanciada.

Configure o Rules Engine

Para concluir, você precisa configurar o Rules Engine para determinar o behavior (comportamento) e os criteria (critérios) para executar a função.

Ainda na página Edge Firewall:

  1. Selecione a aba Rules Engine e siga estes passos:
  2. Clique no botão + Rule Engine.
  3. Dê um nome fácil de lembrar para a sua regra.
  4. Selecione um criteria para executar e selecione os domínios nos quais você deseja executar a integração.
  5. Abaixo, selecione o Run Function behavior (comportamento) para os criteria (critérios).
  • Selecione a função de Scheduled Blocking adequada de acordo com o nome que você deu na etapa instanciada.
  1. Clicar no botão Save.

Pronto. Agora, a integração Scheduled Blocking está em execução para cada requisição feita ao domínio que você indicou.


Contribuidores