• /
  • 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

visualização

Ainda estamos trabalhando nesse recurso, mas adoraríamos que você experimentasse!

Atualmente, esse recurso é fornecido como parte de um programa de visualização de acordo com nossas políticas de pré-lançamento.

Quando os modelos não atendem às suas necessidades, a opção "Criar o seu próprio" permite que você construa um fluxo de trabalho personalizado. Utilize a interface de arrastar e soltar para encadear ações do catálogo de ações em automações que correspondam 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:

  • Aprenda primeiro os conceitos básicos → Leia Conceitos básicos e Padrões de fluxo de trabalho para entender os fundamentos e, em seguida, aplique-os.

  • Siga o exemplo → Acesse o passo a passo do exemplo para criar um fluxo de trabalho de redimensionamento automático do EC2 passo a passo.

  • Padrões de referência → Use a seção padrões de fluxo de trabalho como uma referência rápida ao construir seu próprio fluxo de trabalho

    Dica

    Novo no fluxo de trabalho? Comece pelos conceitos básicos e depois siga o exemplo. O fluxo de trabalho do EC2 demonstra todos os padrões principais em um cenário do mundo real.

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

O que ele faz

Exemplo

Entradas e segredos

parâmetro para credenciais e configuração

${{ :secrets:awsKeyId }} para credenciais, ${{ .inputs.region }} para configuração.

Catálogo de ações

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

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

Fluxo de dados

Transmita as saídas entre as etapas.

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

Interruptores

Criar caminhos diferentes com base nas condições

Route by CPU > 90% vs. 70-90% vs. < 70%

Laços

Listas de processos ou pesquisas para verificar a conclusão

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

Portões de aprovação

Pausa para decisões humanas

Reações lentas antes de operações destrutivas

Tratamento de erros

Detectar falhas e executar a limpeza

Padrões try-catch com procedimentos de rollback

Dica

Aprenda fazendo: Cada conceito é demonstrado no exemplo passo a passo abaixo. Você verá entradas, interruptores, loops e portões de aprovação funcionando juntos em um fluxo de trabalho real.

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

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 secrets manager: ${{ :secrets:keyName }}), configuração (regiões, tipo de instância) e dados de tempo de execução (IDs de conta, IDs de alerta)
  3. Arraste ações do catálogo e conecte-as com a sintaxe ${{ .steps.stepName.outputs.field }} para passar dados.
  4. Insira interruptores para ramificação condicional, loops para processamento de listas ou polling, e portões de aprovação para decisões humanas.
  5. Execute o comando após cada seção para detectar erros precocemente e, em seguida, inicie ou agende seu fluxo de trabalho.

Dica

Comece com 3 etapas, teste minuciosamente e depois expanda. Um fluxo de trabalho funcional de 5 etapas é melhor do que um fluxo de trabalho falho de 20 etapas.

Padrões de fluxo de trabalho principais

Quatro padrões essenciais abrangem a maioria dos cenários de automação. Cada padrão é demonstrado no exemplo passo a passo 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

Veja em ação: Gerencie a resposta da equipe e verifique e limpe as seções que mostram o roteamento de switches com base nas reações do Slack e no status do AWS SSM.

Loops para processar listas

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

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..."

Veja em ação: Execute a seção de redimensionamento que usa progressLoop para atualizações de status.

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

Veja na prática: a seção "Solicitar aprovação da equipe" implementa o fluxo de trabalho completo de aprovação do Slack.

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 }}"

Veja na prática: Todas as seções demonstram a transferência de dados — cada etapa se baseia nos resultados anteriores.

Dica

Deseja exemplos completos dos padrões? Veja exemplos de fluxo de trabalho para padrões adicionais, incluindo tratamento de erros, novas tentativas e integração complexa.

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

Este exemplo completo demonstra como construir um fluxo de trabalho que redimensiona automaticamente instâncias do EC2 quando há picos de uso da CPU — após obter a aprovação da equipe via Slack. Este vídeo demonstra a coleta de dados, a lógica condicional, a integração externa e o tratamento de erros em um cenário do mundo real.

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.

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 gerenciamento de segredos)

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.

Este exemplo demonstra padrões importantes que você usará em fluxos de trabalho personalizados: consultas a APIs, ramificação condicional, integração externa, loops de polling e tratamento de erros.

Entradas do fluxo de trabalho

Dica

Se você está lendo para entender os conceitos, pode pular esta parte. Esta tabela detalha os 12 parâmetros que esse fluxo de trabalho utiliza. Você pode usá-lo como referência durante a construção, mas não é essencial para entender o fluxo.

Este fluxo de trabalho requer credenciais, configuração e contexto de tempo de execução como entradas. Os 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 obtidas no gerenciador de segredos.
  • 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

Construa o fluxo de trabalho passo a passo.

Agora vamos construir cada parte do fluxo de trabalho. Cada etapa inclui as ações específicas a serem adicionadas e os padrões de fluxo de trabalho que elas demonstram.

Reunir o contexto do alerta

consulte APIs e banco de dados antes de agir. Isso garante que você tenha o contexto completo.

O fluxo de trabalho coleta informações de alertas e instâncias do EC2 por meio de três ações:

  • getAlertDetails: chama API NerdGraph ( API GraphQL da New Relic) para buscar metadados de alerta — horário de ativação, nome da condição e entidade afetada.

  • activatedDateTime: Converte o timestamp para um formato legível, como "01-24-2025 14:30", para mensagens do Slack.

  • impactedEC2Instance: consulta NRDB (New Relic banco de dados) para encontrar o ID das instâncias do 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 como Slack, PagerDuty ou ServiceNow para obter pontos de decisão humanos.

O fluxo de trabalho envia detalhes para o Slack e aguarda uma resposta:

  • IssueDetected: Envia detalhes do alerta, tipo de instância atual e redimensionamento proposto para o Slack. Solicita à equipe que reaja com :+1: (aprovar) ou :-1: (cancelar).

  • GetUserReaction: Pausa por 5 minutos (300 segundos) 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

    Dica

    Problema comum: Use o ID do canal do Slack (C01234ABCD), não o nome do canal. Encontre essa informação nos detalhes do canal do Slack. Consulte resolução de problemas para obter mais informações.

Gerenciar a resposta da equipe

Utilize parâmetros (ou interruptores) para criar caminhos diferentes com base em valores de dados ou entrada do usuário.

O fluxo de trabalho se ramifica 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.

Utilize um token único para evitar operações duplicadas. Utilize loops para verificar o status de operações de longa duração.

O fluxo de trabalho redimensiona a instância por meio do AWS Systems Manager (SSM):

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

  • generateIdempotencyToken: Cria um UUID único. Impede redimensionamentos duplicados caso o fluxo de trabalho seja executado duas vezes.

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

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

  • 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.

    Dica

    Problema comum: Certifique-se de que as credenciais da AWS tenham permissões ec2:StopInstances, ec2:ModifyInstanceAttribute, ec2:StartInstances e ssm:*. A falta de permissões resulta em falhas silenciosas.

Verificar e limpar

Planeje para falhas e utilize recursos temporários, independentemente do resultado.

O fluxo de trabalho verifica os resultados e remove 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).

    Dica

    • Sempre limpe. Estrutura do fluxo de trabalho para que a limpeza seja executada mesmo quando as etapas anteriores falharem. Isso evita vazamentos de recursos e cobranças inesperadas da AWS.
    • Problema comum: Se o SSM expirar, as instâncias do EC2 podem continuar em transição entre estados. Verifique AWS Console para confirmar o status atual da instância antes de executá-la novamente.

Próximos passos

Executar e gerenciar

Melhorar

Escala

Copyright © 2025 New Relic Inc.

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