Como utilizar o template QStash EdgeFunction Scheduler através da Azion

O template QStash EdgeFunction Scheduler foi projetado para configurar e gerenciar uma edge function personalizada, que recebe um agendamento configurado pelo usuário e o despacha através do QStash, agendador e gestor de tarefas e mensagens para tempos de execução serverless.


Pré-requisitos

Antes de usar este template, você precisa:

  • Criar uma conta no Upstash.
  • No console do Upstash, obter sua Current Signing Key, a Next Signing Key e o QStash Token na aba QStash.
  • Ter uma conta no GitHub para conectar com a Azion e criar seu novo repositório.
    • Cada push será implantado automaticamente neste repositório para manter seu projeto atualizado.
  • Habilitar o Edge Functions na sua conta Azion.
    • Para fazer isso:
  1. Acesse o Azion Console > Account menu.
  2. Selecione a opção Billing & Subscriptions.
  3. Clique na aba Subscriptions.
  4. Ative o switch do módulo.

Obtenha o template

Para começar a usar o template QStash EdgeFunction Scheduler:

  1. Acesse o Azion Console.
  2. Clique no botão + Create na página inicial.
  3. No modal, selecione a opção Templates.
  4. Navegue e selecione o card do QStash EdgeFunction Scheduler.

Configure o template

No formulário de configuração, forneça as informações para configurar sua aplicação. Preencha os campos apresentados.

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

  1. Conecte a Azion com sua conta no GitHub.
  • Uma janela pop-up será aberta para confirmar a instalação da Azion GitHub App, uma ferramenta que conecta sua conta do GitHub com a plataforma da Azion.
  • Defina suas permissões e acesso ao repositório conforme desejado.
  1. Selecione o Git Scope com o qual trabalhar.
  2. Defina um nome para sua edge application.
  • O bucket para armazenamento e a edge function usarão o mesmo nome.
  • Use um nome único e fácil de lembrar. Se o nome já tiver sido usado, a plataforma retornará uma mensagem de erro.
  1. Complete os campos:
  • QStash Current Signing Key *: uma string para assinar todas as mensagens enviadas para o destino.
    • Acesse o console do Upstash e copie a informação QSTASH_CURRENT_SIGNING_KEY na aba Qstash.
  • QStash Next Signing Key *: uma string usada para assinar mensagens depois de você ter girado suas chaves de assinatura.
    • Acesse seu console do Upstash e copie a informação QSTASH_NEXT_SIGNING_KEY na aba Qstash.
  1. Clique no botão Deploy para iniciar o processo de implantação.

Durante a implantação, você poderá acompanhar o processo através de uma janela mostrando os logs. Quando estiver concluída, a página mostra informações sobre a aplicação e algumas opções para continuar sua jornada.

Principais configurações

Quando implantado, este template cria uma edge function que inclui os argumentos fornecidos pelo usuário. Ele também cria um novo repositório do GitHub que inclui uma automação para permitir o continuous deployment. Além disso, o template cria e instancia uma edge application e seu domínio para facilitar a interação com a edge function.


Agende tarefas

Depois que a implantação for concluída e propagada, você poderá começar a agendar tarefas.

Para fazer isso, você tem duas opções: via terminal ou via console Upstash.

Via terminal

  1. Obtenha seu domínio da edge application.
  2. No console do Upstash, copie a informação QSTASH_TOKEN na aba QStash.
  3. Em seu ambiente de desenvolvimento, abra o terminal.
  4. Faça uma requisição HTTP POST para a URL especificada para agendar suas mensagens.

Use os seguintes exemplos para sua solicitação, de acordo com o intervalo necessário:

Uma vez

Terminal window
curl --request POST "https://qstash.upstash.io/v1/publish/{add your domain here}" \
-H "Authorization: Bearer {add your QStash token here}" \
-H "Content-Type: application/json" \
-d "{ \"hello\": \"world\"}"

A cada minuto

Terminal window
curl --request POST "https://qstash.upstash.io/v1/publish/{add your domain here}" \
-H "Authorization: Bearer {add your QStash token here}" \
-H "Content-Type: application/json" \
-H "Upstash-Cron: * * * * *" \
-d "{ \"hello\": \"world\"}"

A cada 10 minutos

Terminal window
curl --request POST "https://qstash.upstash.io/v1/publish/{add your domain here}" \
-H "Authorization: Bearer {add your QStash token here}" \
-H "Content-Type: application/json" \
-H "Upstash-Cron: */10 * * * *" \
-d "{ \"hello\": \"world\"}"

A cada hora

Terminal window
curl --request POST "https://qstash.upstash.io/v1/publish/{add your domain here}" \
-H "Authorization: Bearer {add your QStash token here}" \
-H "Content-Type: application/json" \
-H "Upstash-Cron: 0 * * * *" \
-d "{ \"hello\": \"world\"}"

Onde:

FlagDescrição
--request POSTEspecifica o método de requisição enviada. Nesse caso, um método HTTP POST para postar ou agendar uma mensagem HTTP.
-H "Autorization"Fornece informações de autorização através de um token para autenticação. Você deve adicionar seu token QStash aqui.
-H "Content-Type"Especifica o tipo de conteúdo do corpo da requisição. Nesse caso, formato JSON.
-H "Upstash-Cron"Programa uma tarefa semelhante ao cron no Upstash, permitindo que você automatize tarefas em intervalos específicos.
dFornece os dados para o corpo da requisição, incluindo o payload JSON. As barras invertidas (\) antes das aspas duplas (") são usadas para garantir que as aspas sejam tratadas como parte dos dados dentro do payload JSON.

Pronto. A sua tarefa está agendada e será executada de acordo o agendamento definido. Suas tarefas agendadas ficam visíveis no console do Upstash, dentro da aba QStash*, para sua revisão e monitoramento.

Via console do Upstash

  1. Copie seu domínio da edge application da Azion.
  2. Vá para o console do Upstash e abra a aba QStash.
  3. Preencha o formulário com as informações solicitadas.
  • No campo Type, selecione Scheduled e escolha o delay.
  • Como alternativa, selecione Once para enviar uma mensagem imediata e uma única vez.
  1. Clique no botão Schedule.

Pronto. Sua tarefa está agendada e visível na seção Scheduled Jobs para sua revisão e monitoramento.


Gerencie o template

Considerando que a configuração inicial pode não ser ideal para sua edge application, todas as configurações podem ser personalizadas sempre que você precisar usando o Azion Azion Console. Depois que o template for implantado, você também terá controle total sobre a personalização de sua conta e configurações do QStash.

Para gerenciar e editar as configurações da sua edge application na 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 edge application relacionada ao template Qstash Scheduler 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 filtra apenas pelo nome das aplicações.

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.

Adicionar um domínio personalizado

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.

Consulte o guia para configurar domínios

Contribuidores