• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Crea tu propio flujo de trabajo

avance

Todavía estamos trabajando en esta característica, ¡pero nos encantaría que la probaras!

Esta característica se proporciona actualmente como parte de un programa de vista previa de conformidad con nuestras políticas de prelanzamiento.

Cuando las plantillas no se ajustan a tus necesidades, Crea la tuya propia te permite crear un flujo de trabajo personalizado. Emplee la interfaz de arrastrar y soltar para encadenar acciones del catálogo de acciones en una automatización que se ajuste a su proceso.

Cómo usar esta guía

Esta guía te muestra cómo construir un flujo de trabajo empleando conceptos y un ejemplo completo. Elige tu ruta de aprendizaje:

  • Primero aprende los conceptos básicos → Lee los conceptos básicos y los patrones de flujo de trabajo para comprender los fundamentos y luego aplícalos.

  • Siga el ejemplo → Vaya al tutorial del ejemplo para crear paso a paso un flujo de trabajo de redimensionamiento automático de EC2

  • Patrones de referencia → Emplee la sección de patrones de flujo de trabajo como referencia rápida al crear su propio flujo de trabajo.

    Sugerencia

    ¿Eres nuevo en el flujo de trabajo? Empieza por los conceptos básicos y luego sigue el ejemplo. El flujo de trabajo de EC2 demuestra todos los patrones clave en un escenario del mundo real.

¿Por qué crear un flujo de trabajo personalizado?

Crea tu propio flujo de trabajo para:

  • Implemente una lógica de negocio única que las plantillas no admitan.
  • Integrar múltiples sistemas más allá de las plantillas estándar
  • Gestionar decisiones complejas con ramificación condicional
  • Adapta el proceso de aprobación y notificación a las necesidades de tu equipo.

Conceptos básicos

Comprenda estos fundamentos antes de construir:

Concepto

Qué hace

Ejemplo

Entradas y secretos

parámetro para credenciales y configuración

${{ :secrets:awsKeyId }} para credenciales, ${{ .inputs.region }} para configuración.

Catálogo de acciones

Integración prediseñada (AWS, Slack, base de datos, API)

Arrastra aws.ec2.stopInstances al lienzo del flujo de trabajo

Flujo de datos

Pasar las salidas entre pasos

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

Interruptores

Crea diferentes rutas en función de las condiciones

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

Bucles

Procesar listas o encuestar para su finalización

Emplee type: loop con for y in para iterar sobre colecciones.

Puertas de aprobación

Pausa para las decisiones humanas

Reacciones lentas antes de operaciones destructivas

Manejo de errores

Detectar fallos y ejecutar la limpieza

Patrones try-catch con procedimientos de reversión

Sugerencia

Aprende haciendo: Cada concepto se demuestra en el ejemplo práctico que aparece a continuación. Verás entradas, interruptores, bucles y puertas de aprobación funcionando conjuntamente en un flujo de trabajo real.

Para conocer patrones detallados de manejo de errores, consulte mejores prácticas.

Inicio rápido

Crea tu primer flujo de trabajo en cinco pasos:

  1. Navegue a one.newrelic.com > All Capabilities > Workflow Automation y seleccione Create Your Own
  2. Defina el parámetro para las credenciales (del administrador de secretos: ${{ :secrets:keyName }}), configuración (regiones, tipo de instancia) y datos de tiempo de ejecución (ID de cuenta, ID de alerta)
  3. Arrastra acciones del catálogo y conéctalas con la sintaxis ${{ .steps.stepName.outputs.field }} para pasar datos.
  4. Inserte interruptores para bifurcación condicional, bucles para procesar listas o realizar sondeos, y puertas de aprobación para decisiones humanas.
  5. Correr el programa luego de cada sección para detectar errores a tiempo y, a continuación, inicia o programa tu flujo de trabajo.

Sugerencia

Empieza con 3 pasos, realiza pruebas exhaustivas y luego amplía. Un flujo de trabajo de 5 pasos que funciona correctamente supera un flujo de trabajo de 20 pasos que no funciona.

Patrones clave del flujo de trabajo

Cuatro patrones esenciales permiten gestionar la mayoría de los escenarios de automatización. Cada patrón se muestra en el ejemplo a continuación.

Ramificación condicional con interruptores

Emplee interruptores cuando: Los resultados varíen en función de los datos (comprobaciones de umbral, respuestas de la API, decisiones del usuario).

Sintaxis clave:

- 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

Véalo en acción: las secciones "Gestionar la respuesta del equipo" y "Verificar y limpiar" muestran el enrutamiento de los conmutadores en función de las reacciones de Slack y el estado de AWS SSM.

Bucles para procesar listas

Emplee bucles cuando: procese varios elementos o repita acciones.

Sintaxis clave:

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

Véalo en acción: Ejecute la sección de redimensionamiento que emplea progressLoop para las actualizaciones de estado.

Puertas de aprobación y espera

Emplee puntos de aprobación cuando: se requiera criterio humano antes de operaciones destructivas o se necesite la aprobación de cumplimiento.

Sintaxis clave:

- 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 retrasos simples:

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

Véalo en acción: La sección de solicitud de aprobación del equipo implementa el flujo de trabajo completo de aprobación de Slack.

Pasar datos entre pasos

Emplee el paso de datos cuando: La salida de un paso se convierte en la entrada de otro (la base de todo flujo de trabajo).

Sintaxis clave:

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

Véalo en acción: Todas las secciones demuestran la transferencia de datos; cada paso se basa en los resultados anteriores.

Sugerencia

¿Quieres ejemplos de patrones completos? Consulte ejemplos de flujo de trabajo para conocer patrones adicionales que incluyen manejo de errores, reintentos e integración compleja.

Ejemplo práctico: Redimensionamiento automático de EC2 con aprobación

Este ejemplo completo muestra cómo crear un flujo de trabajo que redimensione automáticamente las instancias EC2 cuando se produzcan picos de uso de CPU, tras obtener la aprobación del equipo a través de Slack. Muestra la recopilación de datos, la lógica condicional, la integración externa y el manejo de errores en un escenario del mundo real.

Sugerencia

¿Eres nuevo en el flujo de trabajo? Este ejemplo emplea AWS, Slack y lógica de aprobación. Si estás empezando, prueba primero a enviar el reporte a Slack.

Requisitos previos

Antes de crear este flujo de trabajo, cerciorar de tener lo siguiente:

  • AWS: Credenciales con licencias de EC2 y Systems Manager
  • Slack: token de bot y canal de notificación
  • New Relic: condición de alerta monitoreo CPU EC2
  • Gestor de secretos: Configurado (ver gestión de secretos)

Descripción general del flujo de trabajo

Flujo de alto nivel:

  1. Recopilar datos: Obtener detalles de alertas e instancias de New Relic
  2. Aplicar aprobación: Enviar mensaje por Slack, esperar respuesta del equipo
  3. Ejecutar cambio de tamaño: Emplee AWS Systems Manager para cambiar el tamaño de las instancias EC2.
  4. Verificar y limpiar: Comprobar los resultados, notificar al equipo, eliminar los recursos temporales.

Este ejemplo muestra patrones clave que empleará en un flujo de trabajo personalizado: consultas a API, ramificación condicional, integración externa, bucles de sondeo y manejo de errores.

Entradas del flujo de trabajo

Sugerencia

Si solo lees para comprender los conceptos, puedes saltarte esta parte. Esta tabla detalla los 12 parámetros que emplea este flujo de trabajo. Puedes consultarlo al construir, pero no es esencial para comprender el flujo.

Este flujo de trabajo requiere credenciales, configuración y contexto de tiempo de ejecución como entradas. Los valores confidenciales provienen del administrador de secretos empleando la sintaxis ${{ :secrets:keyName }}.

Categorías de entrada:

  • Autenticación: credenciales de AWS y Slack del administrador de secretos
  • Contexto de la alerta: ID de cuenta e ID de incidencia de New Relic
  • Configuración: Región, tipo de instancia, zona horaria, canal Slack

Crea el flujo de trabajo paso a paso

Ahora vamos a construir cada parte del flujo de trabajo. Cada paso incluye las acciones específicas que se deben agregar y los patrones de flujo de trabajo que demuestran.

Recopilar contexto de alerta

Consulta las API y la base de datos antes de tomar medidas. Esto garantiza que tengas el contexto completo.

El flujo de trabajo recopila información de alertas e instancias EC2 mediante tres acciones:

  • getAlertDetails: Llama a API de NerdGraph ( API GraphQL de New Relic) para obtener los metadatos de la alerta: hora de activación, nombre de la condición y entidad afectada.

  • activatedDateTime: Convierte la timestamp a un formato legible como "01-24-2025 14:30" para los mensajes de Slack.

  • impactedEC2Instance: consulta NRDB (New Relic base de datos) para encontrar el ID de instancias EC2 y el tipo actual.

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

    Por qué esto es importante: Sin estos detalles, no se pueden crear mensajes de Slack significativos ni dirigir a las instancias EC2 correctas.

Aplicar aprobación del equipo

Conectar a herramientas de colaboración como Slack, PagerDuty o ServiceNow para puntos de decisión humana.

El flujo de trabajo envía los detalles a Slack y espera una respuesta:

  • IssueDetected: Publica detalles de alerta, tipo de instancia actual y cambio de tamaño propuesto en Slack. Aplicar al equipo que reaccione con :+1: (aprobar) o :-1: (cancelar).

  • GetUserReaction: Hace una pausa de 5 minutos (300 segundos) esperando una reacción.

  • checkQuery (Interruptor): Rutas basadas en la reacción:

    • :+1: → Comienza a redimensionar

    • :-1: → Detener flujo de trabajo

    • Otro → símbolo para reacción válida, bucle de retorno

      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

    Sugerencia

    Problema común: emplee el ID del canal de Slack (C01234ABCD), no el nombre del canal. Lo encontrarás en los detalles del canal de Slack. Ver resolución de problemas para más.

Gestionar la respuesta del equipo

Emplee interruptores para crear diferentes rutas en función de los valores de los datos o la entrada del usuario.

Las ramificaciones del flujo de trabajo se basan en la reacción:

  • unexpectedReaction: Explica las reacciones válidas y vuelve a esperar.

  • gotCancelReaction: Confirma la cancelación, pasa a la finalización. Sin cambios en la infraestructura.

  • gotYesReaction: Confirma la aprobación, procede a cambiar el tamaño.

    Sugerencia

    Patrón de puertas de aprobación: Emplee interruptores como este cuando necesite criterio humano antes de realizar cambios arriesgados. Este patrón funciona con reacciones de Slack, confirmaciones de PagerDuty, respuestas por email o webhooks personalizados.

Ejecutar el cambio de tamaño

Emplee un token único para evitar operaciones duplicadas. Emplee bucles para comprobar el estado de las operaciones de larga duración.

El flujo de trabajo redimensiona la instancia a través de AWS Systems Manager (SSM):

  • createSsmDocument: Crea un documento de automatización de SSM que detiene la instancia, modifica el tipo y la resetear.

  • generateIdempotencyToken: Crea un UUID único. Evita cambios de tamaño duplicados si el flujo de trabajo se ejecuta dos veces.

  • startResizing: Ejecuta el documento SSM con ID de la instancia y nuevo tipo.

  • progressLoop (Bucle): Publica actualizaciones de Slack cada 10 segundos (5 veces en total).

  • waitForCompletion: Consulta el estado de SSM con un tiempo de espera de 2 minutos.

    Importante

    ¿Por qué SSM? Systems Manager proporciona manejo de errores, verificación de estado y logs de auditoría de CloudTrail. Mejor que una llamada directa a API de EC2.

    Sugerencia

    Problema común: Cerciorar de que las credenciales de AWS tengan licencias ec2:StopInstances, ec2:ModifyInstanceAttribute, ec2:StartInstances y ssm:*. Las licencias faltantes provocan un fallo silencioso.

Verificar y limpiar

Planee para los fracasos y gestione los recursos temporales independientemente del resultado.

El flujo de trabajo comprueba los resultados y elimina los recursos temporales:

  • hasCompleted (Interruptor): Se ramifica según el estado de SSM (éxito/fallo/tiempo de espera agotado).

  • displaySuccess: Registra el éxito en New Relic.

  • sendSuccessMessage: Confirma la finalización en Slack.

  • displayError: Registra los detalles del error para la resolución de problemas.

  • displayUnexpected: Registra estados inusuales (cancelación manual, etc.).

  • cleanupSsmDocument: Elimina el documento SSM temporal.

  • sendSSMCleanMessage: Confirma la limpieza en Slack.

  • workflowCompleted: Mensaje de finalización final (se ejecuta en caso de éxito o cancelación).

    Sugerencia

    • Siempre limpia. Estructura el flujo de trabajo para que la limpieza se ejecute incluso cuando fallen los pasos anteriores. Esto evita fugas de recursos y cargos inesperados de AWS.
    • Problema común: Si SSM agota el tiempo de espera, las instancias EC2 aún pueden estar en transición entre estados. Consulte AWS Console para verificar el estado real de la instancia antes de volver a ejecutarla.

Próximos pasos

Ejecutar y gestionar

Mejorar

Escala

Copyright © 2025 New Relic Inc.

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