# Use a integração Upstash Waiting Room

**Upstash Waiting Room** é uma integração que ajuda você a gerenciar picos de tráfego e evitar sobrecarga em seus sites e aplicações. A integração usa uma abordagem *First-In, First-Out (FIFO)* e aproveita o **Firewall** da Azion, criando uma sala de espera para controlar e redirecionar o acesso de acordo com seus parâmetros.

Quando uma requisição é recebida pelo seu site, o Firewall executa a integração. Em seguida, a integração verifica se há espaço disponível e move a requisição da fila de espera para a fila de liberação. Se não houver disponibilidade, a requisição é redirecionada para a sala de espera, recebendo um número na linha para acessar.

---

## Pré-requisitos

Para começar a usar esta integração, você precisa:

- Criar uma [conta no Upstash](https://console.upstash.com/).
- Criar um banco de dados global para obter a melhor latência de edge disponível no [console do Upstash](https://console.upstash.com/).

---

## Obtenha a integração

Para instalar esta integração:

1. Acesse [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Marketplace**.
2. Na página inicial do Marketplace, selecione o cartão da **Upstash Waiting Room**.
3. Na página de integração, clique no botão **Install**.

Você verá uma mensagem indicando que sua integração foi instalada com sucesso.

:::tip
Você pode procurar qualquer integração navegando pelos cards ou digitando uma palavra-chave na barra de busca.
:::

---

## Configure a integração

Depois de instalar a integração **Upstash Waiting Room**, você precisará concluir as etapas explicadas abaixo para configurá-la.

### Configure uma regra no Firewall

Siga estes passos:

1. No canto superior esquerdo, abra o **Products menu** e selecione **Firewall** na seção **Secure**.
2. Clique no botão **+ Firewall**.
3. Dê um nome fácil de lembrar ao seu firewall.
4. Ative a opção **Functions** na seção **Modules**.
  - Esta ação dá acesso a functions no firewall.
5. Clique no botão **Save**.

Pronto. Agora você instanciou o firewall para sua função e tem acesso a functions em seu firewall.

:::caution[Atenção]
Se um produto ou módulo estiver ativado, pode gerar custos relacionados ao uso. Consulte a [página de preços](/pt-br/documentacao/produtos/precos/) para obter mais informações.
:::

### Configure uma função no Firewall

Enquanto ainda estiver na página do **Firewall**:

1. Selecione a aba **Functions Instances** e siga estas etapas:
2. Clique no botão **+ Function Instance**.
3. Dê um nome fácil de lembrar à sua instância.
4. No menu suspenso, selecione a função da **Upstash Waiting Room**.
5. Na caixa **Arguments**, você passará suas credenciais do Upstash e suas variáveis:

```json
{
  "url": "https://region-database.upstash.io",
  "token": "YourUpstashToken",
  "ttl": 10,
  "ttl_wait": 180,
  "capacity": 2
}
```

Onde:

| Variável | Obrigatória | Descrição |
| ---- | ---- | ---- |
| `url`  | Sim | String de URL para conectar no Upstash Redis. Acesse o console do Upstash e copie o `UPSTASH_REDIS_REST_URL` na página do banco de dados |
| `token` | Sim | Token para acessar o banco de dados Upstash Redis. Acesse o console do Upstash e copie o `UPSTASH_REDIS_REST_TOKEN` na página do banco de dados |
| `ttl` | Sim | Tempo máximo, em segundos, que um usuário pode permanecer no seu site. Exemplo: `180` |
| `ttl_wait` | Sim | Tempo máximo, em segundos, que um usuário pode permanecer inativo na sala de espera (por exemplo, ao fechar a aba/janela do site) sem perder seu lugar. Exemplo: `180` |
| `capacity` | Sim | Número máximo de conexões simultâneas permitidas em seu site. Exemplo: `10` |

6. Clique no botão **Save**.

### Configure uma regra no Rules Engine

Para concluir, você deve configurar uma regra no **Rules Engine** para configurar os critérios (*criteria*) e o comportamento (*behavior*) para executar a função.

Ainda na página do **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`.
5. 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.
6. Clique no botão **Save**.

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

7. No **Products menu**, selecione **Workloads**.
8. Clique no domínio que você deseja proteger com sua função **Upstash Waiting Room**.
9. Na seção **Settings**, clique no seletor de `Firewall` e escolha o firewall que você acabou de criar.
10. Clique no botão **Save**.

Pronto. Agora a integração **Upstash Waiting Room** está em execução.

:::tip
Você pode monitorar a atividade através do **painel do Upstash**.
:::

---