Instale a integração Upstash Waiting Room
Instale o Upstash Waiting Room pelo Azion Marketplace e execute-o em um firewall para colocar visitantes em fila quando o tráfego excede o seu site.
Você instala a integração Upstash Waiting Room pelo Azion Marketplace e a executa em um Firewall, pelo Azion Console. A integração gerencia picos de tráfego e evita sobrecarga nos seus sites e aplicações. Ela cria uma sala de espera que controla e redireciona o acesso de acordo com os seus parâmetros, com uma abordagem First-In, First-Out (FIFO).
Cinco objetos precisam existir antes de uma requisição entrar na fila: a função instalada, um firewall carregando o módulo Functions, uma instância de função que guarda os argumentos, uma regra do Rules Engine com o behavior Run Function e um deployment de workload vinculado ao firewall. Cada seção abaixo cria um deles.
Pré-requisitos
- Uma conta Azion. Para entrar, consulte Como acessar o Azion Console.
- Uma aplicação servida por um workload, cujo deployment você vincula ao firewall na última seção.
- Uma conta na Upstash.
- Um Global Database, criado no Upstash Console. A URL e o token dele são argumentos da instância de função.
- O Azion CLI instalado e autorizado, para a última seção.
- Ligar um produto ou um módulo pode gerar custos de uso. Para mais informações, consulte Preços.
Instale a integração
A função é instalada uma vez por conta. Para instalá-la:
Acesse Azion Console > Marketplace.
Informe Upstash Waiting Room no campo Search on Marketplace e selecione o card da integração. Navegar pelos cards e pelas categorias alcança a mesma página.
O card mostra Successfully installed! e Latest version installed!, e a função aparece na lista Function do drawer Create Instance.
Crie o firewall
O firewall é onde a função é instanciada e onde vive a regra que a executa. Para criar um:
Acesse Azion Console > Firewalls e crie um firewall.
Na seção General, informe um Name. Por exemplo: waiting-room-firewall.
Na seção Modules, ligue o switch Functions.
O firewall mostra uma aba Functions Instances enquanto o módulo Functions permanece ligado. Para usar um firewall existente, ligue o módulo Functions dele e salve-o. Para cada configuração deste formulário, consulte Defina as main settings de um firewall.
Crie a instância de função
A instância guarda as suas credenciais da Upstash e a capacidade do seu site. Para criá-la:
Em Firewalls, selecione o seu firewall e selecione a aba Functions Instances.
Um firewall sem instância mostra a mesma ação como Function Instance. O drawer Create Instance abre.
Em Name, informe um nome. Por exemplo: upstash-waiting-room.
Em Function, selecione a função Upstash Waiting Room. A lista contém apenas as funções que rodam em um firewall.
Em Arguments, o editor vem preenchido com os argumentos padrão da integração em JSON. Informe as suas credenciais da Upstash e as suas variáveis, como descreve a próxima seção.
A instância é listada na aba Functions Instances.
Argumentos
A instância recebe as suas credenciais da Upstash e as suas variáveis:
| Variável | Obrigatória | Descrição |
|---|---|---|
url | Sim | A string de URL que conecta ao Upstash Redis. No seu Upstash Console, copie a UPSTASH_REDIS_REST_URL da página do seu banco de dados |
token | Sim | O token que acessa o banco de dados Upstash Redis. No seu Upstash Console, copie o UPSTASH_REDIS_REST_TOKEN da página do seu banco de dados |
ttl | Sim | O tempo máximo, em segundos, que um usuário pode permanecer no seu site. Exemplo: 180 |
ttl_wait | Sim | O tempo máximo, em segundos, que um usuário pode ficar inativo na sala de espera sem perder o seu lugar, por exemplo depois de fechar a aba ou a janela do site. Exemplo: 180 |
capacity | Sim | O número máximo de conexões simultâneas permitidas no seu site. Exemplo: 10 |
Crie a regra
A instância não coloca nada na fila até que uma regra a execute. Uma regra do Rules Engine para Firewall seleciona as requisições que chegam à instância, por meio de um behavior Run Function. Para criar a regra:
Em Firewalls, selecione o seu firewall e selecione a aba Rules Engine.
Em Name, informe um nome. Por exemplo: Run Upstash Waiting Room.
Na seção Criteria, selecione os domínios que executam a integração. Por exemplo: if Host matches yourdomain.com.
Na seção Behaviors, selecione Run Function e selecione a instância pelo nome que você deu a ela.
O firewall executa a instância em cada requisição ao domínio do critério.
Vincule o firewall ao workload
O vínculo fica no deployment do workload, então crie um deployment que nomeia a aplicação e o firewall:
O comando imprime o id do novo deployment:
As requisições ao domínio do workload chegam ao firewall, e a regra executa a instância do Upstash Waiting Room em cada uma delas.
Como funciona
Quando o seu site recebe uma requisição, o firewall executa a integração. A integração verifica se há espaço disponível:
- Se há espaço, a integração move a requisição da fila de espera para a fila de liberação.
- Se não há espaço, a integração redireciona a requisição para a sala de espera, onde ela recebe um número na fila.
Monitore a sala de espera
Você pode monitorar a atividade da sala de espera no Upstash Dashboard.