• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Créez votre propre workflow

Aperçu

Nous travaillons toujours sur cette fonctionnalité, mais nous aimerions que vous l'essayiez !

Cette fonctionnalité est actuellement fournie dans le cadre d'un programme d'aperçu conformément à nos politiques de pré-sortie.

Lorsque les modèles ne correspondent pas à vos besoins, l'option Create Your Own vous permet de concevoir un workflow personnalisé. Utilisez l'interface glisser-déposer pour enchaîner les actions du catalogue d'actions et créer une automatisation correspondant à votre processus.

Comment utiliser ce guide

Ce guide vous montre comment construire un workflow à l'aide de concepts et d'un exemple complet. Choisissez votre parcours d'apprentissage :

  • Apprenez d'abord les concepts fondamentaux → Lisez les concepts fondamentaux et les modèles de workflow pour comprendre les bases, puis appliquez-les.

  • Suivez l'exemple → Accédez à la procédure pas à pas pour créer un workflow de redimensionnement automatique EC2.

  • Modèles de référence → Utilisez la section relative aux modèles de workflow comme référence rapide lors de la création de votre propre workflow.

    Conseil

    Vous débutez dans le monde du workflow ? Commencez par les concepts de base, puis suivez l'exemple. Le workflow EC2 illustre tous les modèles clés dans un scénario réel.

Pourquoi créer un workflow personnalisé ?

Créez votre propre workflow pour :

  • Implémenter une logique métier unique que les modèles ne prennent pas en charge
  • Intégrez plusieurs systèmes au-delà des modèles standards
  • Gérer les décisions complexes grâce à la branchement conditionnel
  • Alignez vos processus d'approbation et de notification avec ceux de votre équipe.

Concepts de base

Comprenez ces principes fondamentaux avant de construire :

Concept

Ce que cela fait

Exemple

Entrées et secrets

Paramètres d'identification et de configuration

${{ :secrets:awsKeyId }} pour les informations d'identification, ${{ .inputs.region }} pour la configuration.

Catalogue des actions

Intégration pré-construite (AWS, Slack, base de données, API)

Faites glisser aws.ec2.stopInstances dans le canevas workflow

Flux de données

Transmettez les sorties entre les étapes

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

Interrupteurs

Créez différents chemins en fonction des conditions

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

Boucles

Listes de processus ou sondage pour l'achèvement

Utilisez type: loop avec for et in pour itérer sur les collections

portes d'approbation

Pause pour les décisions humaines

Réactions de relâchement avant les opérations destructives

Gestion des erreurs

Détecter les erreurs et exécuter le nettoyage

Modèles try-catch avec procédures de restauration

Conseil

Apprenez en pratiquant : chaque concept est illustré dans l’ exemple ci-dessous. Vous verrez des entrées, des commutateurs, des boucles et des portes d'approbation fonctionner ensemble dans un workflow réel.

Pour des modèles détaillés de gestion des erreurs, voir bonnes pratiques.

Démarrage rapide

Créez votre premier workflow en cinq étapes :

  1. Accédez à one.newrelic.com > All Capabilities > Workflow Automation et sélectionnez Create Your Own
  2. Définir les paramètres pour les informations d'identification (à partir du gestionnaire de secrets : ${{ :secrets:keyName }}), configuration (régions, type d'instance) et les données d'exécution (identifiants de compte, identifiants d'alerte).
  3. Faites glisser les actions depuis le catalogue et reliez-les avec la syntaxe ${{ .steps.stepName.outputs.field }} pour transmettre les données.
  4. Intégrez des commutateurs pour les branchements conditionnels, des boucles pour le traitement de listes ou l'interrogation, et des portes d'approbation pour les décisions humaines.
  5. Exécutez ce script après chaque section pour détecter les erreurs au plus tôt, puis démarrez ou planifiez votre workflow.

Conseil

Commencez par 3 étapes, testez minutieusement, puis développez-les. Un workflow fonctionnel en 5 étapes vaut mieux qu'un workflow défaillant en 20 étapes.

Modèles workflow clés

Quatre modèles essentiels permettent de couvrir la plupart des scénarios d'automatisation. Chaque modèle est illustré dans l' exemple ci-dessous.

Branchement conditionnel avec commutateurs

Utilisez des commutateurs lorsque : les résultats varient en fonction des données (vérifications de seuil, réponses d’API, décisions de l’utilisateur).

Syntaxe clé :

- 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

Voyez-le en action : les sections de gestion des réponses de l’équipe, de vérification et de nettoyage montrent le routage des commutateurs en fonction des réactions Slack et de l’état d’AWS SSM.

Boucles pour le traitement des listes

Utilisez les boucles lorsque vous traitez plusieurs éléments ou répétez des actions.

Syntaxe clé :

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

Voyez-le en action : la section d’exécution de redimensionnement utilise progressLoop pour les mises à jour d’état.

Portails d'approbation et attente

Utilisez des points de contrôle d'approbation lorsque : un jugement humain est nécessaire avant des opérations destructives ou une validation de conformité est requise

Syntaxe clé :

- 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

Pour les retards simples :

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

Voyez-le en action : la section « Demander l’approbation de l’équipe » implémente workflow d’approbation Slack complet.

Transmission de données entre les étapes

Utilisez le passage de données lorsque : la sortie d'une étape devient l'entrée d'une autre (la base de tout workflow).

Syntaxe clé :

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

Voyez-le en action : toutes les sections illustrent le transfert de données ; chaque étape s’appuie sur les résultats précédents.

Conseil

Vous souhaitez des exemples de motifs complets ? Consultez les exemples de workflow pour découvrir d'autres modèles, notamment la gestion des erreurs, les nouvelles tentatives et l'intégration complexe.

Exemple de procédure pas à pas : redimensionnement automatique des instances EC2 avec approbation

Cet exemple complet montre comment créer un workflow qui redimensionne automatiquement les instances EC2 en cas de pics d'utilisation du processeur, après avoir obtenu l'approbation de l'équipe via Slack. Il illustre la collecte de données, la logique conditionnelle, l'intégration externe et la gestion des erreurs dans un scénario réel.

Conseil

Vous débutez dans le monde du workflow ? Cet exemple utilise AWS, Slack et une logique d'approbation. Si vous débutez, essayez d'abord d'envoyer le rapport sur Slack.

Prérequis

Avant de mettre en place ce workflow, assurez-vous d'avoir :

  • AWS: Identifiants avec autorisations EC2 et système Manager
  • Slack: Bot Jeton et canal de notification
  • New Relic: état d'alerte monitoring du processeur EC2
  • Gestionnaire de secrets: configuré (voir gestion des secrets)

aperçu du flux de travail

Flux de haut niveau :

  1. Collecte de données: Récupérer les détails de l'alerte et de l'instance auprès de New Relic
  2. Demande d'approbation: Envoyer un message Slack, attendre la réponse de l'équipe
  3. Exécuter le redimensionnement: Utilisez AWS Systems Manager pour redimensionner instanceEC2.
  4. Vérification et nettoyage: Vérifier les résultats, informer l'équipe, supprimer les ressources temporaires

Cet exemple illustre les principaux modèles que vous utiliserez dans un workflow personnalisé : interrogation d’API, branchement conditionnel, intégration externe, boucles d’interrogation et gestion des erreurs.

Entrées du workflow

Conseil

Passez cette section si vous cherchez à comprendre les concepts. Ce tableau détaille les 12 paramètres utilisés par ce workflow. Vous pouvez vous y référer lors de la construction, mais ce n'est pas indispensable pour comprendre le flux.

Ce workflow nécessite comme entrées des informations d'identification, configuration et un contexte d'exécution. Les valeurs sensibles proviennent du gestionnaire de secrets utilisant la syntaxe ${{ :secrets:keyName }}.

Catégories d'entrée :

  • Authentification: identifiants AWS et Slack provenant du gestionnaire de secrets
  • Contexte de l'alerte: ID du compte et ID du problème provenant de New Relic
  • Configuration: Région, type d'instance, fuseau horaire, canal Slack

Élaborez le workflow étape par étape

Passons maintenant en revue chaque partie du workflow. Chaque étape comprend les actions spécifiques à ajouter et les modèles workflow qu'elles illustrent.

Recueillir le contexte de l'alerte

Requêtes API et base de données avant d'agir. Cela vous assure d'avoir un contexte complet.

Le workflow collecte les informations relatives aux alertes et aux instanceEC2 à l'aide de trois actions :

  • getAlertDetails: appelle l'API NerdGraph (API GraphQL de New Relic) pour récupérer les métadonnées des alertes : heure d'activation, nom de la condition et entité affectée.

  • activatedDateTime: Convertit l'horodatage en un format lisible comme « 01-24-2025 14:30 » pour les messages Slack.

  • impactedEC2Instance: requête NRDB (New Relic base de données) pour trouver l'ID EC2 et le type actuel de instance.

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

    Pourquoi c'est important : sans ces détails, vous ne pouvez pas construire de messages Slack significatifs ni cibler la bonne instanceEC2.

Demander l'approbation de l'équipe

Connectez-vous à des outils de collaboration comme Slack, PagerDuty ou ServiceNow pour les points de décision humains.

Le workflow envoie les détails à Slack et attend une réponse :

  • IssueDetected: Publie les détails de l'alerte, le type actuel d'instance et le redimensionnement proposé vers Slack. Demande à l'équipe de réagir avec :+1: (approuver) ou :-1: (annuler).

  • GetUserReaction: Pause de 5 minutes (300 secondes) en attendant une réaction.

  • checkQuery (Interrupteur): Routes basées sur la réaction :

    • :+1: → Commencer le redimensionnement

    • :-1: → Arrêter workflow

    • Autre → invite à une réaction valide, retour en arrière

      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

    Conseil

    Problème courant : utilisez l’ID du canal Slack (C01234ABCD), et non le nom du canal. Vous le trouverez dans les détails du canal Slack. Consultez la section dépannage pour plus d'informations.

Gérer la réponse de l'équipe

Utilisez des commutateurs pour créer différents chemins en fonction des valeurs des données ou des entrées de l'utilisateur.

Le workflow se ramifie en fonction de la réaction :

  • unexpectedReaction: Explique les réactions valides et revient en arrière pour attendre à nouveau.

  • gotCancelReaction: Confirme l'annulation, passe à la fin. Aucun changement d'infrastructure.

  • gotYesReaction: Confirme l'approbation, procède au redimensionnement.

    Conseil

    Modèle de contrôle d'approbation : Utilisez ce type de mécanisme lorsque vous avez besoin d'un jugement humain avant d'entreprendre des changements risqués. Ce modèle fonctionne avec les réactions Slack, les accusés de réception PagerDuty, les réponses par e-mail ou les webhooks personnalisés.

Exécutez le redimensionnement

Utilisez un jeton unique pour éviter les opérations en double. Utilisez des boucles pour vérifier l'état des opérations de longue durée.

Le workflow redimensionne l' instance via AWS Systems Manager (SSM) :

  • createSsmDocument: Crée un document d'automatisation SSM qui arrête l'instance, modifie le type et la redémarre.

  • generateIdempotencyToken: Crée un UUID unique. Empêche les redimensionnements en double si le workflow s'exécute deux fois.

  • startResizing: Exécute le document SSM avec l'ID d' instance et le nouveau type.

  • progressLoop (Boucle): Publie les mises à jour Slack toutes les 10 secondes (5 fois au total).

  • waitForCompletion: Interroge l'état du SSM avec un délai d'expiration de 2 minutes.

    Important

    Pourquoi SSM ? Système Manager assure la gestion des erreurs, la vérification de l’état et les logs d’audit CloudTrail. Mieux qu'un appel d'API EC2 direct.

    Conseil

    Problème courant : assurez-vous que les informations d’identification AWS disposent des autorisations ec2:StopInstances, ec2:ModifyInstanceAttribute, ec2:StartInstances et ssm:*. Les autorisations manquantes entraînent une erreur silencieuse.

Vérifier et nettoyer

Prévoyez les échecs et nettoyez les ressources temporaires, quel que soit le résultat.

Le workflow vérifie les résultats et supprime les ressources temporaires :

  • hasCompleted (Switch): Branches sur l'état SSM (succès/échec/délai d'attente dépassé).

  • displaySuccess: enregistrer le succès dans New Relic.

  • sendSuccessMessage: Confirme la fin de la tâche dans Slack.

  • displayError: enregiste les détails de l'erreur pour le dépannage.

  • displayUnexpected: consigner les états inhabituels (annulation manuelle, etc.).

  • cleanupSsmDocument: Supprime le document SSM temporaire.

  • sendSSMCleanMessage: Confirme le nettoyage dans Slack.

  • workflowCompleted: Message de fin de série (exécute pour réussir ou annuler).

    Conseil

    • Toujours nettoyer. Structurez le workflow de manière à ce que le nettoyage s'exécute même si les étapes précédentes échouent. Cela permet d'éviter les fuites de ressources et les frais AWS inattendus.
    • Problème courant : si le SSM expire, l’ instanceEC2 peut encore être en transition entre deux états. Consultez AWS Console pour vérifier l'état actuel instance avant de relancer l'opération.

Prochaines étapes

Exécuter et gérer

Améliorer

Échelle

Droits d'auteur © 2025 New Relic Inc.

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