---
name: azion-use-o-template-qstash-function-scheduler
description: >-
  Faça o deploy do template QStash Function Scheduler, que despacha pelo QStash um agendamento que você configura.
---

# Use o template QStash Function Scheduler

O template **QStash Function Scheduler** foi projetado para configurar e gerenciar uma 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](https://console.upstash.com/).
- No [console do Upstash](https://console.upstash.com/qstash), obter sua **Current Signing Key**, a **Next Signing Key** e o **QStash Token** na aba **QStash**.
- Ter uma [conta no GitHub](https://github.com/signup) para conectar com a Azion e criar seu novo repositório.
  - Cada push será implantado automaticamente neste repositório para manter seu projeto atualizado.
- O template usa [Functions](/pt-br/documentacao/plataforma/functions/). Isso pode gerar custos relacionados ao uso. Consulte a [página de preços](/pt-br/documentacao/fundamentos/precos/) para mais informações.

> **Atenção**
>
> Qualquer custo gerado pelo uso do QStash será processado e cobrado separadamente na plataforma Upstash. Visite a [documentação do QStash](https://upstash.com/docs/qstash/overall/getstarted) para obter mais detalhes.

---

## Implante o template

Você obtém e configura o template pelo Azion Console. Para fazer o deploy, selecione o botão abaixo.

[Implantar](https://console.azion.com/create/upstash/qstash-edgefunction-scheduler)

---

## Configure o template

O formulário de configuração carrega as informações que configuram sua aplicação. Para preenchê-lo:

1. **Conecte a Azion com sua conta no GitHub**

   Uma janela abre para confirmar a instalação do [Azion GitHub App](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/automacao/azion-github-app/), uma ferramenta que conecta sua conta do GitHub com a plataforma da Azion. Defina suas permissões e o acesso aos repositórios conforme desejar.

2. **Selecione o Git Scope com o qual trabalhar**

3. **Defina um nome para sua application**

   O bucket para storage e a function usam o mesmo nome. Use um nome único e fácil de lembrar. Se o nome já estiver em uso, a plataforma retorna uma mensagem de erro.

4. **Informe as signing keys do QStash**

   As duas chaves são obrigatórias, e ambas vêm da aba **QStash** do seu console do Upstash.

   - **QStash Current Signing Key**: uma string para assinar todas as mensagens enviadas para o destino. Copie a informação `QSTASH_CURRENT_SIGNING_KEY`.
   - **QStash Next Signing Key**: uma string usada para assinar mensagens depois de você ter girado suas chaves de assinatura. Copie a informação `QSTASH_NEXT_SIGNING_KEY`.

5. **Selecione Deploy para iniciar o deploy**

Durante o deploy, uma janela exibe os logs. Quando ele termina, a página mostra a aplicação e as opções para continuar.

> **nota**
>
> O link abre a aplicação no navegador. Propagar e configurar a aplicação pela rede distribuída da Azion leva alguns minutos, portanto a URL pode não responder imediatamente.

### Configurações principais

Ao ser implantado, este template cria uma function construída com os argumentos que você forneceu. Ele também cria um repositório no GitHub que carrega uma automação para deploy contínuo, e cria e instancia uma aplicação e seu domínio.

---

## Agende tarefas

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

> **nota**
>
> As tarefas devem ser agendadas em qualquer formato que possa ser transmitido em uma requisição HTTP, como JSON, XML, ou binary. Os exemplos abaixo estão usando JSON.

Para fazer isso, você tem duas opções: [via terminal](#via-terminal) ou [via console Upstash](#via-console-do-upstash).

### Via terminal

Para agendar uma tarefa pelo seu ambiente de desenvolvimento:

1. **Obtenha o domínio da sua application**

2. **Copie seu token do QStash**

   No [console do Upstash](https://console.upstash.com/qstash), copie a informação `QSTASH_TOKEN` na aba **QStash**.

3. **Abra o terminal no seu ambiente de desenvolvimento**

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

```bash
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

```bash
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

```bash
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

```bash
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\"}"
```

A sua tarefa está agendada e será executada de acordo o agendamento definido.

Suas tarefas agendadas ficam visíveis no [console do Upstash](https://console.upstash.com/qstash), dentro da aba **QStash**, para sua revisão e monitoramento.

### Via console do Upstash

Para agendar uma tarefa pelo console do Upstash:

1. **Copie seu domínio da application da Azion**

2. **Abra a aba QStash**

   Vá para o [console do Upstash](https://console.upstash.com/qstash) e abra a aba **QStash**.

3. **Preencha o formulário com as informações solicitadas**

   No campo Type, selecione *Scheduled* e escolha o delay. Para enviar uma mensagem imediata e uma única vez, selecione *Once*.

4. **Selecione Schedule**

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

> **nota**
>
> Você também pode publicá-los usando uma request do tipo API REST. Para mais informações, leia a [documentação do QStash](https://upstash.com/docs/qstash/api-reference/messages/publish-a-message).

---

## Gerencie o template

Como essa configuração inicial pode não ser a ideal para a sua aplicação, todas as opções podem ser personalizadas a qualquer momento no [Azion Console](https://console.azion.com). Depois do deploy do template, você também tem controle total sobre as configurações da sua conta Upstash e do QStash.

Para gerenciar e editar as configurações da sua application na Azion:

1. **Abra a página Applications**

   Acesse o [Azion Console](https://console.azion.com/) > **Products menu** > **Applications**. A página **Applications** lista todas as aplicações da conta.

2. **Encontre a application relacionada ao template QStash Function Scheduler**

   A lista está organizada em ordem alfabética. A **barra de busca** filtra por **Application Name**.

3. **Selecione a application**

   A página que abre carrega todas as configurações que você pode ajustar.

> **dica**
>
> Consulte a documentação sobre [gerenciar aplicações](/pt-br/documentacao/plataforma/applications/primeiros-passos/) para mais detalhes. Para dúvidas sobre Upstash ou QStash, consulte a [documentação do Upstash](https://docs.upstash.com/).

### Adicione um domínio personalizado

A aplicação criada durante o deploy recebe um domínio Azion Workload para ficar acessível pelo navegador, no formato `xxxxxxxxxx.map.azionedge.net/`. Você pode adicionar um domínio personalizado para os usuários acessarem a aplicação por ele.

Para mais informações, consulte [Adicione um domínio a um workload](/pt-br/documentacao/guias/plataforma/migracao/configurar-dominio/).
