• /
  • EnglishEspañolFrançais日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Crie seu próprio fluxo de trabalho

Crie fluxos de trabalho personalizados do zero quando os modelos não atenderem às suas necessidades. Use o construtor crie o seu próprio para arrastar e soltar ações do catálogo de ações em uma automação que corresponda ao seu processo.

Como usar este guia

Este guia mostra como construir um fluxo de trabalho usando conceitos e um exemplo completo. Escolha seu caminho de aprendizado:

Por que construir um fluxo de trabalho personalizado?

Crie seu próprio fluxo de trabalho para:

  • Implemente uma lógica de negócios exclusiva que os modelos não suportam.
  • Integre vários sistemas além dos modelos padrão.
  • Lide com decisões complexas com ramificação condicional.
  • Combine o processo de sua equipe para aprovações e notificações

Conceitos centrais

Entenda esses fundamentos antes de construir:

Conceito

Propósito

Entradas e segredos

parâmetro para credenciais e configuração

Ações

Integração pré-construída (AWS, Slack, banco de dados, APIs)

Fluxo de dados

Transmita as saídas entre as etapas.

Atribuir

Inicializar e atribuir valores a variáveis para uso em etapas subsequentes

Interruptores

Criar caminhos diferentes com base nas condições

Laços

Listas de processos ou pesquisas para verificar a conclusão

Faixa

Parâmetro obrigatório para funções de loop para definir a contagem de iterações.

Espere

Suspende a execução do fluxo de trabalho por um período especificado ou até que uma condição seja satisfeita.

Parar

Encerrar a execução do fluxo de trabalho

Dica

Aprenda na prática: Cada conceito é demonstrado no exemplo de passo a passo. Você verá entradas, switches, loops e gates de aprovação trabalhando juntos em um fluxo de trabalho real.

Exemplos de sintaxe

Use estes padrões ao criar fluxos de trabalho:

Padrão

Sintaxe

Quando usar

Recuperar segredo

${{ :secrets:awsKeyId }}

Acessar credenciais do gerenciador de segredos

Referenciar entrada do fluxo de trabalho

${{ .inputs.region }}

Usar a configuração fornecida quando o fluxo de trabalho iniciar

Usar a saída da etapa anterior

${{ .steps.getAlert.outputs.entityGuid }}

Passar dados entre etapas do fluxo de trabalho

Arrastar ação do catálogo

Arraste aws.ec2.stopInstances para a tela do fluxo de trabalho.

Adicionar integrações pré-criadas ao fluxo de trabalho

Criar variável

type: assign com inputs:

Armazenar valores calculados ou intermediários

Condição de verificação

condition: "${{ ... }}" dentro do switch

Rota por CPU > 90% vs. 70-90% vs. < 70%

Iterar sobre itens

type: loop com for e in para iterar sobre coleções

Listas de processos ou pesquisas para verificar a conclusão

Definir contagem de iterações

range(1, 6) para repetir 5 vezes

Parâmetro obrigatório para funções de loop

Pausar execução

type: wait com seconds: 60 para atrasar 60 segundos

Pausa o fluxo de trabalho por uma duração especificada

Encerrar fluxo de trabalho

Encerrar a execução do fluxo de trabalho

Encerra o fluxo de trabalho após falhas de validação ou cancelamentos.

Para padrões detalhados de tratamento de erros, consulte Melhores práticas.

Importante

Para obter as melhores práticas e limitações de segurança e privacidade, incluindo a exclusão de dados, consulte melhores práticas de segurança.

Começo rápido

Crie seu primeiro fluxo de trabalho em cinco etapas:

  1. Acesse one.newrelic.com > All Capabilities > Workflow Automation e selecione Create Your Own.
  2. Defina parâmetros para credenciais (do gerenciador de segredos: ${{ :secrets:keyName }}), configuração (regiões, tipos de instância) e dados de tempo de execução (IDs de conta, IDs de alerta)
  3. Arraste ações do catálogo, conecte-as com a sintaxe ${{ .steps.stepName.outputs.field }} para passar dados
  4. Insira switches para ramificação condicional, loops para processamento de listas ou polling, gates de aprovação para decisões humanas
  5. Execute após cada seção para detectar erros antecipadamente, depois inicie ou agende seu fluxo de trabalho

Padrões de fluxo de trabalho principais

Quatro padrões essenciais lidam com a maioria dos cenários de automação. Cada padrão é demonstrado no passo a passo de exemplo abaixo.

Ramificação condicional com interruptores

Utilize os interruptores quando: Os resultados variam de acordo com os dados (verificações de limite, respostas da API, decisões do usuário)

Sintaxe da tecla:

- name: hasCompleted
type: switch
switch:
- condition: "${{ .steps.waitForCompletion.outputs.automationExecutionStatus == 'Failed' }}"
next: displayError
- condition: "${{ .steps.waitForCompletion.outputs.automationExecutionStatus == 'Success' }}"
next: displaySuccess
next: displayUnexpected # Default path when no condition matches

Exemplo: Tratar a resposta da equipe, Verificar e limpar

Loops para processar listas

Utilize loops quando: estiver processando vários itens ou repetindo ações.

Para obter informações detalhadas sobre a estrutura de loop, parâmetros e uso avançado (incluindo break/continue), consulte Estrutura de loop.

Sintaxe da tecla:

# Send progress updates using range loop
- name: progressLoop
type: loop
for:
in: "${{ [range(1; 5)] }}" # Loop 5 times
steps:
- name: wait
type: wait
seconds: 10
- name: progressMessage
type: action
action: slack.chat.postMessage
version: 1
inputs:
channel: "${{ .workflowInputs.channel }}"
text: "Resizing in progress..."

Exemplo: Executar o redimensionamento

Portarias de aprovação e espera

Utilize portões de aprovação quando: for necessário julgamento humano antes de operações destrutivas ou quando for exigida a aprovação de conformidade.

Sintaxe da tecla:

- name: requestApproval
type: action
action: slack.chat.postMessage
version: 1
inputs:
channel: "#approvals"
text: "Approve? React with :thumbsup: or :thumbsdown:"
- name: getReactions
type: action
action: slack.chat.getReactions
version: 1
inputs:
token: "${{ .workflowInputs.slackToken }}"
channelID: "${{ .steps.requestApproval.outputs.channelID }}"
threadTs: "${{ .steps.requestApproval.outputs.threadTs }}"
timeout: 300 # Wait 5 minutes for reaction
- name: checkApproval
type: switch
switch:
- condition: '${{ .steps.getReactions.outputs.reactions | any(.name == "+1") }}'
next: handleApproval
- condition: '${{ .steps.getReactions.outputs.reactions | any(.name == "-1") }}'
next: handleRejection

Para atrasos simples:

- name: waitBeforeRetry
type: wait
seconds: 60 # Wait 60 seconds before continuing

Exemplo: Solicitar aprovação da equipe

Passando dados entre etapas

Utilize a passagem de dados quando: a saída de uma etapa se torna a entrada de outra (o fundamento de todo fluxo de trabalho).

Sintaxe da tecla:

# Reference previous step outputs
awsRegion: "${{ .inputs.region }}"
instanceId: "${{ .steps.getAlert.outputs.data.entity.instanceId }}"

Exemplo: Todas as etapas do fluxo de trabalho

Atribuição de variável com assign

O tipo de etapa de atribuição permite que você inicialize e atribua valores a variáveis que podem ser usadas em etapas subsequentes do fluxo de trabalho. Esta etapa suporta vários tipos de dados, incluindo strings, inteiros, booleanos, mapas (objetos) e listas (arrays).

Estrutura básica:

- name: <step_name>
type: assign
inputs:
<variable_name>: <value_or_expression>

Exemplo:

- name: variableInitialization
type: assign
inputs:
stringVar: "${{ .workflowInputs.initialValue }}"
intVar: "${{ .workflowInputs.anotherValue }}"
concatenationVar: "${{ .workflowInputs.initialValue }} - concatenated"
booleanVar: true
mapVar:
key1: "value1"
key2: "${{ .workflowInputs.initialValue }}"
listVar:
- "listItem1"
- "${{ .workflowInputs.initialValue }}"
- "${{ .workflowInputs.anotherValue }}"
statusCode: ${{ .steps.runAction.outputs.statusCode }}

Dica

Quer exemplos completos de padrões? Consulte Exemplos de fluxo de trabalho para obter padrões adicionais, incluindo tratamento de erros, novas tentativas e integrações complexas.

Exemplo passo a passo: Redimensionamento automático de instâncias EC2 com aprovação

Este exemplo cria um fluxo de trabalho que redimensiona instâncias EC2 quando há picos de CPU — após obter aprovação da equipe via Slack. Isso demonstra coleta de dados, lógica condicional, integrações externas e tratamento de erros.

Dica

Novo no fluxo de trabalho? Este exemplo utiliza AWS, Slack e lógica de aprovação. Se você está começando agora, tente enviar o relatório para o Slack primeiro.

Visão geral do fluxo de trabalho

Fluxo de alto nível:

  1. Coletar dados: Obter detalhes de alertas e instâncias do New Relic
  2. Solicitar aprovação: Envie uma mensagem no Slack e aguarde a resposta da equipe.
  3. Executar redimensionamento: Use AWS Systems Manager para redimensionar instâncias do EC2.
  4. Verificar e limpar: Verificar resultados, notificar a equipe, remover recursos temporários.

Pré-requisitos

Antes de criar este fluxo de trabalho, certifique-se de ter:

  • AWS: Credenciais com permissões do EC2 e do Systems Manager
  • Slack: token de bot e canal para notificação
  • New Relic: condição de alerta de monitoramento EC2 CPU
  • Gerenciador de segredos: Configurado, consulte gerenciador de segredos

Construa o fluxo de trabalho passo a passo.

Construa cada parte do fluxo de trabalho. Cada etapa inclui ações específicas e demonstra padrões de fluxo de trabalho.

Reunir o contexto do alerta

Consulte APIs e bancos de dados para reunir o contexto completo antes de tomar uma ação.

Três ações coletam informações de alertas e instâncias do EC2:

  • getAlertDetails: Chama a API NerdGraph para buscar metadados de alerta — hora de ativação, nome da condição e entidades afetadas.

  • activatedDateTime: Converte o timestamp para um formato legível (por exemplo, 24-01-2025 14:30) para mensagens do Slack.

  • impactedEC2Instance: Consulta o NRDB para encontrar o ID da instância EC2 e o tipo atual.

    Workflow diagram showing three steps: getAlertDetails queries NerdGraph API, activatedDateTime converts timestamp, and impactedEC2Instance retrieves instance details from NRDB

    Por que isso é importante: Sem esses detalhes, você não consegue construir mensagens significativas no Slack ou definir as instâncias corretas do EC2.

Solicitar aprovação da equipe

Conecte-se a ferramentas de colaboração para pontos de decisão humana.

Enviar detalhes para o Slack e aguardar resposta:

  • IssueDetected: Publica detalhes do alerta, tipo de instância atual e redimensionamento proposto. Pede à equipe para reagir com :+1: (aprovar) ou :-1: (cancelar).

  • GetUserReaction: Pausa por 5 minutos aguardando uma reação.

  • checkQuery (Interruptor): Rotas baseadas em reação:

    • :+1: → Iniciar redimensionamento
    • :-1: → Interromper fluxo de trabalho
    • Outro → solicitar reação válida, retornar ao início
    Workflow diagram showing user approval process: IssueDetected posts Slack message, GetUserReaction waits for response, checkQuery evaluates reactions with three conditions for approval, cancellation, or unexpected responses

Gerenciar a resposta da equipe

Crie caminhos diferentes com base em valores de dados ou na entrada do usuário.

Ramificar com base na reação:

  • unexpectedReaction: Explica as reações válidas e retorna ao loop para esperar novamente.

  • gotCancelReaction: Confirma o cancelamento, pula para a conclusão. Sem alterações na infraestrutura.

  • gotYesReaction: Confirma a aprovação e prossegue com o redimensionamento.

    Dica

    Padrão de portões de aprovação: Use interruptores como este quando precisar de avaliação humana antes de alterações arriscadas. O padrão funciona com reações do Slack, confirmações do PagerDuty, respostas por e-mail ou webhooks personalizados.

Execute o redimensionamento.

Previna operações duplicadas com tokens únicos. Verifique operações de longa duração com loops.

Redimensione a instância por meio do AWS Systems Manager (SSM):

  • createSsmDocument: Cria um documento de automação do SSM que interrompe a instância, modifica o tipo e a reinicia.

  • generateIdempotencyToken: Cria um UUID exclusivo para evitar redimensionamentos duplicados.

  • startResizing: Executa o documento SSM com o ID da instância e o novo tipo.

  • progressLoop (Loop): Publica atualizações no Slack a cada 10 segundos (5 vezes).

  • waitForCompletion: Consulta o status do SSM com um tempo limite de 2 minutos.

    Importante

    Por que o SSM? O Systems Manager oferece tratamento de erros, verificação de estado e registros de auditoria do CloudTrail. Melhor que chamada de API direta do EC2.

Verificar e limpar

Limpe os recursos temporários independentemente do resultado.

Verifique os resultados e remova os recursos temporários:

  • hasCompleted (Alternar): Alterna com base no status do SSM (sucesso/falha/tempo limite excedido).
  • displaySuccess: Registra o sucesso no New Relic.
  • sendSuccessMessage: Confirma a conclusão no Slack.
  • displayError: registra detalhes de erros para resolução de problemas.
  • displayUnexpected: Registra estados incomuns (cancelamento manual, etc.).
  • cleanupSsmDocument: Exclui o documento SSM temporário.
  • sendSSMCleanMessage: Confirma a limpeza no Slack.
  • workflowCompleted: Mensagem final de conclusão (executa com sucesso ou cancela).

Referência completa de parâmetros

Este fluxo de trabalho requer credenciais, configuração e contexto de tempo de execução como entradas. Valores sensíveis vêm do gerenciador de segredos usando a sintaxe ${{ :secrets:keyName }}.

Categorias de entrada:

  • Autenticação: credenciais da AWS e do Slack
  • Contexto do alerta: ID da conta e ID do problema do New Relic
  • Configuração: região, tipo de instância, fuso horário, canal Slack

Nome do parâmetro

Tipo

Valor padrão

Descrição

awsAccessKeyId

Corda

${{ :secrets:awsAccessKeyId }}

ID da chave de acesso da AWS para autenticação com os serviços da AWS.

awsSecretAccessKey

Corda

${{ :secrets:awsSecretAccessKey }}

Chave de acesso secreta da AWS. Faz par com o ID da chave de acesso.

awsSessionToken

Corda

${{ :secrets:awsSessionToken }}

token de sessão para credenciais temporárias AWS (opcional, usado com funções do IAM).

slackToken

Corda

${{ :secrets:slackToken }}

token de bot para postar mensagens e ler reações no Slack.

accountId

Interno

Obrigatório

Seu ID de conta New Relic. Utilizado para consulta de detalhes de alertas e dados de entidade.

issueId

Corda

Obrigatório

O ID da ocorrência do alerta do New Relic que acionou este fluxo de trabalho. Fornecido automaticamente quando o fluxo de trabalho é executado a partir de um alerta.

awsRegion

Corda

us-east-2

Região AWS onde suas instâncias do EC2 são executadas (por exemplo, us-east-1, us-west-2, eu-west-1).

InstanceType

Corda

t4g.nano

destino EC2 tipo de instância para redimensionamento. Escolha com base nas suas necessidades de desempenho e orçamento.

timestampUnit

Corda

MILLISECONDS

Unidade de tempo para o timestamp do alerta. Normalmente MILLISECONDS ou SECONDS.

timezoneId

Corda

America/Los_Angeles

Fuso horário para exibir o horário de ativação do alerta nas mensagens do Slack (por exemplo, America/New_York, Europe/London, Asia/Tokyo).

pattern

Corda

MM-dd-yyyy HH:mm

Padrão de formato de data/hora para exibição do registro de data e hora. Utiliza padrões SimpleDateFormat do Java.

channel

Corda

Obrigatório

ID do canal do Slack (não o nome) onde as notificações são postadas. Encontre isso nos detalhes do canal do Slack.

Próximos passos

Após concluir este exemplo, explore estes recursos:

Configure as credenciais da AWS.

Configure funções do IAM para o EC2 e outras ações da AWS

Catálogo de ações

Explore todas as ações disponíveis para fluxos de trabalho

Exemplos de fluxo de trabalho

Veja exemplos de APIs HTTP, integrações com o Slack e mais

Práticas medidas

Aprenda tratamento de erros, lógica de repetição e padrões de segurança

Visão geral da entidade de fluxo de trabalho

Acione seu fluxo de trabalho manualmente, a partir de alertas ou em um agendamento

Gerenciar fluxos de trabalho

Editar, duplicar e monitorar a execução do fluxo de trabalho

Resolução de problemas

Problemas comuns e soluções para fluxos de trabalho personalizados

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.