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. Habilite o switch Edge Functions para que você rode edge functions no seu edge firewall.
  5. 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 Instances.
  2. Clique no botão + Function Instance.
  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 irá carregar a aba Arguments.

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.
  2. Clique no botão + Rule Engine.
  3. Dê um nome fácil de lembrar à sua nova regra.
  4. Selecione um criteria (critério) para executar a integração.
  • Exemplo: if Host matches yourdomain.com.
  1. Abaixo, selecione um behavior (comportamento) para os criteria (critérios). Neste caso, será Run Function.
    • Selecione a função adequada de acordo com o nome que você deu na etapa de instanciação.
  2. Clique no botão Save.

Agora, no Console, você deve configurar seu domínio para que ele seja protegido pelo seu edge firewall.

  1. No Products menu, selecione Domains.
  2. Clique no domínio que você deseja proteger com sua função Scheduled Blocking.
  3. Na seção Settings, clique no seletor de Edge Firewall e escolha o edge firewall que você acabou de criar.
  4. Clique 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