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

Créez des workflows personnalisés à partir de zéro lorsque les modèles ne répondent pas à vos besoins. Utilisez le générateur créez le vôtre pour glisser-déposer des actions du catalogue d'actions dans une automatisation qui correspond à 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 :

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

But

Entrées et secrets

Paramètres d'identification et de configuration

Actes

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

Flux de données

Transmettez les sorties entre les étapes

Attribuer

Initialiser et affecter des valeurs aux variables à utiliser dans les étapes suivantes

Interrupteurs

Créez différents chemins en fonction des conditions

Boucles

Listes de processus ou sondage pour l'achèvement

Gamme

Paramètre requis pour les fonctions de boucle afin de définir le nombre d'itérations

Attendez

Suspend l'exécution workflow pendant une durée spécifiée ou jusqu'à ce qu'une condition soit remplie.

Arrêt

Interrompre l'exécution workflow

Conseil

Apprendre par la pratique : Chaque concept est illustré dans l'exemple de procédure pas à pas. Vous verrez des entrées, des commutateurs, des boucles et des portes d'approbation fonctionner ensemble dans un workflow réel.

Exemples de syntaxe

Utilisez ces modèles lors de la création de workflows :

Modèle

Syntaxe

Quand l'utiliser

Récupérer le secret

${{ :secrets:awsKeyId }}

Accéder aux identifiants depuis le gestionnaire de secrets

Référencer une entrée de workflow

${{ .inputs.region }}

Utiliser la configuration fournie au démarrage du workflow

Utiliser la sortie de l'étape précédente

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

Transmettre des données entre les étapes du workflow

Faire glisser une action depuis le catalogue

Faites glisser aws.ec2.stopInstances dans le canevas workflow

Ajouter des intégrations préconfigurées au workflow

Créer une variable

type: assign avec inputs:

Stocker les valeurs calculées ou intermédiaires

Condition de vérification

condition: "${{ ... }}" dans le switch

Itinéraire par CPU > 90% vs. 70-90% vs. < 70%

Boucler sur les éléments

type: loop avec for et in pour parcourir des collections

Listes de processus ou sondage pour l'achèvement

Définir le nombre d'itérations

range(1, 6) boucler 5 fois

Paramètre requis pour les fonctions de boucle

Suspendre l'exécution

type: wait avec seconds: 60 pour retarder de 60 secondes

Met en pause le workflow pendant une durée spécifiée

Terminer le workflow

Interrompre l'exécution workflow

workflow est interrompu en cas d'échec de validation ou d'annulation.

Pour des modèles détaillés de gestion des erreurs, consultez les Bonnes pratiques.

Important

Pour les bonnes pratiques et limitations en matière de sécurité et de confidentialité, y compris la suppression des données, consultez les bonnes pratiques de sécurité.

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 identifiants (depuis le gestionnaire de secrets: ${{ :secrets:keyName }}), la configuration (régions, types d'instance) et les données d'exécution (ID de compte, ID d'alerte)
  3. Faites glisser des actions depuis le catalogue, connectez-les avec la syntaxe ${{ .steps.stepName.outputs.field }} pour transmettre des données
  4. Insérez des commutateurs pour le branchement conditionnel, des boucles pour le traitement de listes ou l'interrogation, des portes d'approbation pour les décisions humaines
  5. Exécutez après chaque section pour détecter les erreurs rapidement, puis démarrez ou planifiez votre workflow

Modèles workflow clés

Quatre modèles essentiels couvrent la plupart des scénarios d'automatisation. Chaque modèle est illustré dans l'exemple détaillé 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

Exemple : Gérer la réponse de l'équipe, Vérifier et nettoyer

Boucles pour le traitement des listes

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

Pour des informations détaillées sur la structure des boucles, les paramètres et l'utilisation avancée (y compris break/continue), consultez Structure de la boucle.

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

Exemple : Exécuter le redimensionnement

Portails d'approbation et attente

Utilisez les portes d'approbation lorsque : Un jugement humain est nécessaire avant les opérations destructrices 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

Exemple : Demander l'approbation de l'équipe

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

Exemple : Toutes les étapes du workflow

Affectation de variables avec assign

Le type d'étape d'affectation vous permet d'initialiser et d'affecter des valeurs à des variables qui peuvent être utilisées dans les étapes de workflow suivantes. Cette étape prend en charge plusieurs types de données, notamment les chaînes, les entiers, les booléens, les cartes (objets) et les listes (tableaux).

Structure de base :

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

Exemple:

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

Conseil

Vous voulez des exemples de modèles complets ? Consultez Exemples de workflows pour des modèles supplémentaires, notamment la gestion des erreurs, les nouvelles tentatives et les intégrations complexes.

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

Cet exemple crée un workflow qui redimensionne les instances EC2 en cas de pic d'utilisation du CPU, après avoir obtenu l'approbation de l'équipe via Slack. Il démontre la collecte de données, la logique conditionnelle, les intégrations externes et la gestion des erreurs.

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.

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

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 gestionnaire de secrets

Élaborez le workflow étape par étape

Construisez chaque partie du workflow. Chaque étape comprend des actions spécifiques et illustre des modèles de workflow.

Recueillir le contexte de l'alerte

Interrogez les API et les bases de données pour recueillir le contexte complet avant d'agir.

Trois actions collectent des informations sur les alertes et les instances EC2 :

  • getAlertDetails: Appelle l'API NerdGraph pour récupérer les métadonnées d'alerte — heure d'activation, nom de la condition et entités affectées.

  • activatedDateTime: Convertit l'horodatage en un format lisible (par ex. 01-24-2025 14:30) pour les messages Slack.

  • impactedEC2Instance: Interroge NRDB pour trouver l'ID d'instance EC2 et le type actuel.

    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 aux outils de collaboration pour les points de décision humaine.

Envoyer les détails sur Slack et attendre une réponse :

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

  • GetUserReaction: Pause de 5 minutes 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

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

Créez différents chemins en fonction des valeurs de données ou de la saisie utilisateur.

Branche basée sur 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

Évitez les opérations en double avec des jetons uniques. Vérifiez les opérations de longue durée avec des boucles.

Redimensionnez l'instance via AWS Systems Manager (SSM) :

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

  • generateIdempotencyToken: Génère un UUID unique pour éviter les redimensionnements en double.

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

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

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

Vérifier et nettoyer

Nettoyez les ressources temporaires quel que soit le résultat.

Vérifiez les résultats et supprimez 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).

Référence complète des paramètres

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

Catégories d'entrée :

  • Authentification: identifiants AWS et Slack
  • 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

Nom du paramètre

Type

Valeur par défaut

Description

awsAccessKeyId

Chaîne

${{ :secrets:awsAccessKeyId }}

ID de clé d'accès AWS pour s'authentifier auprès des services AWS.

awsSecretAccessKey

Chaîne

${{ :secrets:awsSecretAccessKey }}

Clé d'accès secrète AWS. S'associe à l'ID de clé d'accès.

awsSessionToken

Chaîne

${{ :secrets:awsSessionToken }}

Jeton de session pour les informations d'identification AWS temporaires (facultatif, utilisé avec les rôles IAM).

slackToken

Chaîne

${{ :secrets:slackToken }}

Bot Jeton permettant de publier des messages et de lire les réactions sur Slack.

accountId

Int

Requis

Votre identifiant de compte New Relic. Utilisé pour interroger les détails des alertes et les données des entités.

issueId

Chaîne

Requis

L'identifiant du problème de l'alerte New Relic qui a déclenché ce workflow. Fourni automatiquement lorsque le workflow s'exécute à partir d'une alerte.

awsRegion

Chaîne

us-east-2

région AWS dans laquelle votre instanceEC2 s'exécute (par exemple, us-east-1, us-west-2, eu-west-1).

InstanceType

Chaîne

t4g.nano

instance cible EC2 de type d'instance à redimensionner. Choisissez en fonction de vos besoins en matière de performance et de votre budget.

timestampUnit

Chaîne

MILLISECONDS

Unité de temps pour l'horodatage de l'alerte. Généralement MILLISECONDS ou SECONDS.

timezoneId

Chaîne

America/Los_Angeles

Fuseau horaire pour l'affichage de l'heure d'activation de l'alerte dans les messages Slack (par exemple, America/New_York, Europe/London, Asia/Tokyo).

pattern

Chaîne

MM-dd-yyyy HH:mm

Modèle de format de date/heure pour l'affichage de l'horodatage. Utilise les modèles SimpleDateFormat de Java.

channel

Chaîne

Requis

Identifiant (et non nom) du canal Slack où les notifications sont publiées. Vous trouverez cela dans les détails du canal Slack.

Prochaines étapes

Après avoir terminé cet exemple, consultez ces ressources :

Configurer les identifiants AWS

Configurer les rôles IAM pour EC2 et d'autres actions AWS

Catalogue des actions

Explorer toutes les actions disponibles pour les workflows

Exemples de workflow

Voir des exemples d'API HTTP, d'intégrations Slack et plus encore

Meilleures pratiques

Découvrir la gestion des erreurs, la logique de nouvelle tentative et les modèles de sécurité

Vue d'ensemble de l'entité de workflow

Déclenchez votre workflow manuellement, à partir d'alertes ou selon un planning

Gérer les workflows

Modifier, dupliquer et monitorer l'exécution du workflow

Dépannage

Problèmes courants et solutions pour les workflows personnalisés

Droits d'auteur © 2026 New Relic Inc.

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