Como implantar o template Upstash Rate Limit através da Azion

Preview

O template Upstash Rate Limit ajuda você a implementar rate limiting em um ambiente serverless, sem a necessidade de uma extensa configuração manual. Este template inclui configurações para limiting requests e window limit.

Funciona em conjunto com o Azion Edge Functions, sendo possível ajustar a configuração inicial com base nos args. Além disso, este template cria um novo repositório do GitHub que permite um fluxo de trabalho de implantação contínua, ou continuous deployment. Desta forma, você pode configurar e personalizar ainda mais a configuração para atender às suas necessidades, obtendo fácil gerenciamento e entrega de seu conteúdo personalizado.


Para começar a usar este template, você precisa:

  1. Criar uma conta Upstash.
  2. Criar um banco de dados global com a melhor latência de edge disponível no Upstash Console.
  3. Gerar seu token pessoal do GitHub.

Você também deve ativar:

Edge Functions

Para fazer isso:

  1. Acesse o Azion Console.
  2. Selecione Account menu > Billing & Subscriptions.
  3. Clique na aba Subscriptions.
  4. Active o switch do módulo.

Para obter a usar o template Upstash Rate Limit, acesse o Azion Console e selecione a opção Start with a template na página inicial.

Isso abrirá uma nova página onde você pode selecionar o card do Upstash Rate Limit.


Na página do template, clique na aba Settings para abrir o formulário de configuração e fornecer as informações para configurar sua aplicação.

Os campos identificados com asterisco são obrigatórios.

  • Application Name *: o nome da sua aplicação. Ele é usado para identificar e gerenciar sua aplicação na plataforma da Azion.
    • Digite um nome único e fácil de lembrar. Se o nome já tiver sido usado, a plataforma retornará uma mensagem de erro.
  • Upstash Redis Rest URL *: a URL para acessar seu banco de dados Upstash usando REST.
    • Acesse o console do Upstash e copie o UPSTASH_REDIS_REST_URL na página do banco de dados.
  • Upstash Redis Rest Token *: o token para autorizar o acesso ao seu banco de dados Upstash usando REST.
    • Acesse o console do Upstash e copie o UPSTASH_REDIS_REST_TOKEN na página do banco de dados.
  • Limit Request: o número máximo de solicitações. Exemplo: 6.
  • Window Limit: a janela de tempo para novas solicitações. Exemplo: 10 s (pode ser: “ms” | “s” | “m” | “h” | “d”).
  • GitHub Personal Token *: seu token pessoal do GitHub.

Depois de preencher todas as informações, clique no botão Next, localizado no canto inferior direito. Isso iniciará o processo de implantação.


Durante a implantação, você poderá acompanhar o processo através de uma janela exibindo os logs. Quando estiver concluída, uma nova página será exibida, confirmando que a edge application foi criada com sucesso.

Esta página mostra as seguintes seções:

  • A seção Access your Edge Application, que inclui o link para visitar e explorar sua aplicação.
  • O Build Summary contém o nome e a função da aplicação.
  • Na aba Deployment details, você pode acessar os logs relacionados com o deployment do template.
  • What do you want to do next? fornece recomendações sobre opções avançadas para aprimorar sua edge application: Customize Domain, Manage Edge Application, View Edge Application Metrics, View Edge Application Logs e o botão Back to Home.

O template Upstash Rate Limit cria uma nova edge application e seu domínio na Azion. Ele também cria uma edge function, para fornecer os argumentos do rate limiting, e um novo repositório em sua conta do GitHub com base em um template público.

Nesta função, as bibliotecas upstash/redis e upstash/ratelimit são integradas, conectando-se ao seu Banco de Dados Global Upstash e verificando na rota/login se está dentro dos Window e Limit configurados. A chave para os limites são os metadados ["remote_addr"].


Considerando que a configuração inicial pode não ser ideal para o seu aplicativo web específico, todas as configurações podem ser personalizadas sempre que você precisar usando o Azion Console. Depois que o modelo for implantado, você também terá controle total sobre a personalização de sua conta e banco de dados do Upstash.

Para gerenciar e editar as configurações da sua edge application no Azion, siga estas etapas:

  1. Acesse o Azion Console.
  2. No canto superior esquerdo, selecione Products menu > Edge Application.
  • Você será redirecionado para a página de Edge Application. Ela lista todas as edge applications que você criou.
  1. Encontre a aplicação pelo nome que você definiu durante a execução do template e selecione-a.
  • A lista é organizada em ordem alfabética. Você também pode usar a barra de busca localizada no canto superior esquerdo da lista; atualmente, ela é filtrada apenas pelo Application Name, ou nome da edge application.

Depois de selecionar a edge application em que você trabalhará, você será direcionado para uma página que contém todas as configurações que você pode configurar.

Uma vez que o template é implantado, você pode editar e atualizar seus args e código na edge function, bem como implementar um fluxo de trabalho de continuous deployment, ou implantação contínua. No entanto, você precisará primeiro declarar seus secrets no repositório do GitHub do seu projeto para completar um segundo build com as alterações.

Quando o segundo build for concluído, você poderá gerenciar seu projeto com um fluxo de trabalho de implantação contínua e editar os argumentos conforme desejado.

Para fazer isso, abra seu repositório do template Upstash Rate Limit no GitHub. Em seguida, vá para Settings > Secrets and variables > Action para adicionar suas variáveis, seguindo estas instruções:

  1. Adicione o personal token da Azion aos secrets:
Terminal window
AZION_PERSONAL_TOKEN=<value>
  1. Adicione os ambientes para uso no action workflow no arquivo main.yml, dentro da pasta .github/workflows do seu repositório:
.github/workflows/main.yml
- name: edge-...
id: azion_edge
...
with:
....
azionPersonalToken: ${{ secrets.AZION_PERSONAL_TOKEN }}
....
  1. Adicione as credenciais de acesso ao Banco de Dados Redis aos secrets, sendo:
  • Upstash Redis Rest URL *: a URL para acessar seu banco de dados Upstash usando REST.
    • Acesse o console do Upstash e copie o UPSTASH_REDIS_REST_URL na página do banco de dados.
  • Upstash Redis Rest Token*: o token para autorizar o acesso ao seu banco de dados Upstash usando REST.
    • Acesse o console do Upstash e copie o UPSTASH_REDIS_REST_TOKEN na página do banco de dados.
  • UPSTASH_LIMIT: o número máximo de solicitações. Exemplo: 6.
  • UPSTASH_LIMIT_WINDOW: a janela de tempo para novas solicitações. Exemplo: 10 s (pode ser: “ms” | “s” | “m” | “h” | “d”).
Terminal window
UPSTASH_REDIS_REST_URL=<value>
UPSTASH_REDIS_REST_TOKEN=<value>
UPSTASH_LIMIT=6
UPSTASH_LIMIT_WINDOW=10 s // "ms" | "s" | "m" | "h" | "d";
  1. Adicione os ambientes para uso no action workflow no arquivo main.yml, dentro da pasta .github/workflows do seu repositório:
.github/workflows/main.yml
- name: Create args file
run: |
...
"UPSTASH_REDIS_REST_URL": "${{ secrets.UPSTASH_REDIS_REST_URL }}",
"UPSTASH_REDIS_REST_TOKEN": "${{ secrets.UPSTASH_REDIS_REST_TOKEN }}",
"UPSTASH_LIMIT": "${{ secrets.UPSTASH_LIMIT }}",
"UPSTASH_LIMIT_WINDOW": "${{ secrets.UPSTASH_LIMIT_WINDOW }}"
...
  1. Abra um pull request para incluir as alterações na main branch e iniciar a implantação automática.

Agora, seu projeto está pronto para trabalhar com um fluxo de trabalho de implantação contínua, atualizando instantaneamente quaisquer alterações no aplicativo ou no repositório.

A edge application criada durante a implantação tem um domínio Azion atribuído para torná-la acessível através do navegador. O domínio tem o seguinte formato: xxxxxxxxxx.map.azionedge.net/. No entanto, você pode adicionar um domínio personalizado para que os usuários acessem sua edge application por meio dele.

Leia a documentação de domínios

Contribuidores