---
name: azion-crie-um-template-personalizado
description: >-
  Escolha as variáveis de cada linha de log do Data Stream com um template personalizado e use-o em um stream, no Azion Console ou pela Azion API.
---

# Crie um template personalizado

Você pode criar um template personalizado do [Data Stream](/pt-br/documentacao/plataforma/data-stream/) no Azion Console ou pela Azion API e usá-lo em qualquer stream da sua conta. Para mudar a forma como um endpoint Standard HTTP/HTTPS POST une as linhas de log, consulte [Personalize o payload do HTTP POST](/pt-br/documentacao/guias/plataforma/observabilidade/data-stream-adicionar-payload/).

Um template predefinido envia todas as variáveis que contém, e você não pode mudar essas variáveis. Um template personalizado envia apenas as entradas do seu **Data Set**, um objeto JSON cujas chaves você nomeia e cujos valores são variáveis da fonte de dados do stream. Para o formato, consulte [Templates personalizados](/pt-br/documentacao/plataforma/data-stream/templates-e-payload/#templates-personalizados).

Os exemplos criam `status-analysis`, um template com cinco variáveis de *Applications* para uma análise do status da resposta. Substitua-as pelas variáveis de que você precisa.

---

Escolha a interface em que você trabalha. Os pré-requisitos e as três tarefas seguem essa escolha.

## Pré-requisitos

- A permissão **Edit Data Stream**. Com apenas **View Data Stream**, você vê templates e streams, mas não pode criá-los nem alterá-los. Para mais informações, consulte [Configurações do stream](/pt-br/documentacao/plataforma/data-stream/configuracoes-do-stream/#permissoes).
- As variáveis que você quer em cada linha de log, da fonte de dados do stream que usa o template. Para cada variável e os templates predefinidos que a contêm, consulte [Fontes de dados e variáveis](/pt-br/documentacao/plataforma/data-stream/fontes-de-dados-e-variaveis/).
- Para usar o template, um stream na sua conta. Para criar um, consulte [Primeiros passos do Data Stream](/pt-br/documentacao/plataforma/data-stream/primeiros-passos/).

**Console**

- Acesso ao Azion Console. Para entrar, consulte [Como acessar o Azion Console](/pt-br/documentacao/guias/plataforma/conta-e-billing/como-acessar-o-azion-console/).
- Uma conta com menos de 3.000 workloads. Com 3.000 workloads ou mais, o Console bloqueia os formulários de stream, que contêm o painel lateral de templates, e você gerencia os templates apenas pela API.

**API**

- Um personal token. Para criar um, consulte [Como criar um personal token](/pt-br/documentacao/guias/plataforma/conta-e-billing/personal-tokens/).
- `curl`.

---

## Crie o template

O Console cria templates em um painel lateral do formulário de stream, não em uma página própria. O template pertence à conta, então todo stream pode usá-lo.

**Console**

Para criar o template no Azion Console:

1. **Acesse Data Stream**

   Acesse [Azion Console](https://console.azion.com/) > **Data Stream**.

2. **Abra um formulário de stream**

   Selecione **+ Stream** ou selecione a linha de um stream existente.

3. **Abra o painel lateral de template**

   Na seção **Render Template**, abra **Template** e selecione **Create Custom Template**. O painel lateral **Create Custom Template** se abre.

4. **Nomeie o template**

   Na seção **General**, em **Name**, insira `status-analysis`.

5. **Insira o data set**

   Na seção **Data Set**, insira o objeto JSON:

   ```json
   {
     "time": "$time",
     "host": "$host",
     "status": "$status",
     "request_uri": "$request_uri",
     "upstream_status": "$upstream_status"
   }
   ```

6. **Selecione Save**

O Console mostra `Your custom template has been created`. **Template** lista `status-analysis` em *Custom Templates*, separado dos templates predefinidos em *Azion's Templates*.

Para partir de um template predefinido, selecione-o em **Template** e, em seguida, selecione **Duplicate Template** no campo **Data Set**. O painel lateral **Create Custom Template** se abre com o data set do template predefinido. Apague as entradas de que você não precisa, nomeie o template e selecione **Save**.

**API**

Para criar o template com a API, envie uma requisição `POST` com `name` e `data_set`. O valor de `data_set` é o objeto JSON como string, com as aspas escapadas:

```bash
curl --request POST \
  --url https://api.azion.com/v4/workspace/stream/templates \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "status-analysis",
  "data_set": "{\"time\": \"$time\", \"host\": \"$host\", \"status\": \"$status\", \"request_uri\": \"$request_uri\", \"upstream_status\": \"$upstream_status\"}"
}'
```

A API responde `201` com o template armazenado:

```json
{
  "state": "executed",
  "data": {
    "id": 1234,
    "name": "status-analysis",
    "last_editor": "user@example.com",
    "created_at": "2026-01-01T12:00:00.000000Z",
    "last_modified": "2026-01-01T12:00:00.000000Z",
    "custom": true,
    "active": true,
    "data_set": "{\"time\": \"$time\", \"host\": \"$host\", \"status\": \"$status\", \"request_uri\": \"$request_uri\", \"upstream_status\": \"$upstream_status\"}"
  }
}
```

O template existe com `custom: true`. Guarde o valor de `id`, que um stream usa para indicar o template. Uma requisição `GET` para `/v4/workspace/stream/templates` lista o template ao lado dos templates predefinidos.

> **Atenção**
>
> A API armazena qualquer string como data set e não verifica se ela é JSON: um `data_set` igual a `not json` é aceito com `201`. Verifique se o data set é um objeto JSON válido antes de enviá-lo.

---

## Use o template em um stream

Um stream indica um único template. Selecionar o template personalizado substitui o template predefinido ou o template que o stream usava antes.

**Console**

Para usar o template em um stream no Azion Console:

1. **Abra o stream**

   Acesse [Azion Console](https://console.azion.com/) > **Data Stream** e selecione a linha do stream. Para um stream que você está criando, permaneça no formulário dele.

2. **Selecione o template**

   Na seção **Render Template**, em **Template**, selecione `status-analysis` em *Custom Templates*. O campo **Data Set**, somente leitura, mostra as entradas do template.

3. **Selecione Save**

4. **Confirme o aviso de sampling**

   Se **Sampling** estiver ativado, o diálogo **Attention** se abre com `After activating and saving these settings, all other Data Streams will be disabled.` Selecione **Confirm**.

O Console mostra `Your data stream has been updated`, ou `Your data stream has been created` para um stream que você está criando.

**API**

Para usar o template em um stream com a API, defina `transform[render_template].attributes.template` como o `id` do template. Envie o array `transform` inteiro: o item `render_template` e o item `filter_workloads` ou `sampling` que o stream já tem. Sem um desses dois itens, a requisição falha com `32002`. Substitua `<stream-id>` pelo ID do seu stream e `<workload-id>` por um workload do stream:

```bash
curl --request PATCH \
  --url https://api.azion.com/v4/workspace/stream/streams/<stream-id> \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
  "transform": [
    { "type": "filter_workloads", "attributes": { "workloads": [<workload-id>] } },
    { "type": "render_template", "attributes": { "template": 1234 } }
  ]
}'
```

O stream armazenado indica o template `1234` em `transform[render_template].attributes.template`. Para usar o template em um stream que você cria, coloque o mesmo item `render_template` no corpo da criação. Para o corpo completo, consulte [Configurações do stream](/pt-br/documentacao/plataforma/data-stream/configuracoes-do-stream/#objeto-do-stream).

Um stream com filtro de workloads, como no exemplo da API, mantém os outros streams em execução. Salvar um stream ativo que usa sampling desativa todos os outros streams da conta.

As linhas de log que o stream envia após a mudança contêm apenas as chaves do data set, como `{"time": …, "host": …, "status": …, "request_uri": …, "upstream_status": …}`. Para verificar a entrega, leia uma linha de log no endpoint. Cada envio também é registrado em [Real-Time Events](/pt-br/documentacao/plataforma/real-time-events/fontes-de-dados/#data-stream), com o código de status que o endpoint retornou.

---

## Edite o template

Para adicionar ou remover uma variável em um stream em execução, mude o data set do template personalizado do stream. Um template predefinido não pode ser editado: duplique-o e use a cópia.

**Console**

Para editar o template no Azion Console:

1. **Abra o stream**

   Acesse [Azion Console](https://console.azion.com/) > **Data Stream** e selecione a linha de um stream que usa o template.

2. **Abra o painel lateral de edição**

   Na seção **Render Template**, selecione **Edit Template** no campo **Data Set**. O painel lateral **Edit Custom Template** se abre.

3. **Mude o data set**

   Em **Data Set**, adicione ou apague entradas. Para registrar também o código de status de erro de uma requisição cuja origem não retornou resposta, adicione `"proxy_status": "$proxy_status"`.

4. **Selecione Save**

O Console mostra `Your custom template has been updated`. Para excluir um template personalizado, o mesmo painel lateral tem **Delete template** na **Danger area**.

**API**

Para editar o template com a API, envie uma requisição `PATCH` apenas com as chaves que você muda. Este exemplo renomeia o template. Substitua `<template-id>` pelo `id` do template:

```bash
curl --request PATCH \
  --url https://api.azion.com/v4/workspace/stream/templates/<template-id> \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "status-analysis-2"
}'
```

A API responde `200` com o template armazenado:

```json
{
  "state": "executed",
  "data": {
    "id": 1234,
    "name": "status-analysis-2",
    "last_editor": "user@example.com",
    "created_at": "2026-01-01T12:00:00.000000Z",
    "last_modified": "2026-01-01T12:00:00.000000Z",
    "custom": true,
    "active": true,
    "data_set": "{\"time\": \"$time\", \"host\": \"$host\", \"status\": \"$status\", \"request_uri\": \"$request_uri\", \"upstream_status\": \"$upstream_status\"}"
  }
}
```

A resposta contém o `name` alterado e um `last_modified` posterior, e `data_set` mantém as cinco entradas. Para mudar as variáveis, envie `data_set` com o objeto JSON completo alterado como string escapada, como na criação. Uma requisição `DELETE` para o mesmo caminho remove o template e responde `200` com `{"state":"executed"}`.

---

## Próximos passos

- [Templates e payload](/pt-br/documentacao/plataforma/data-stream/templates-e-payload.md#templates-personalizados): Consulte o formato do data set, os data sets dos templates predefinidos e mais exemplos de template personalizado.
- [Fontes de dados e variáveis](/pt-br/documentacao/plataforma/data-stream/fontes-de-dados-e-variaveis.md): Descubra o que cada variável contém antes de adicioná-la a um data set.
- [Personalize o payload do HTTP POST](/pt-br/documentacao/guias/plataforma/observabilidade/data-stream-adicionar-payload.md): Defina como um endpoint Standard HTTP/HTTPS POST recebe as linhas de log.
- [Primeiros passos do Data Stream](/pt-br/documentacao/plataforma/data-stream/primeiros-passos.md): Crie um stream e confirme que os primeiros logs chegam ao endpoint.
