Référencez les sorties des étapes précédentes en utilisant la syntaxe des modèles pour enchaîner les actions et créer une automatisation complexe.
Exigences:
- Compte New Relic avec les permissions appropriées
- Espace de travail Slack avec les autorisations appropriées
- Jeton de bot Slack configuré comme secret dans l'automatisation du workflow
- Accès aux canaux Slack où les messages seront envoyés
Transmission de données de base
Interrogez les problèmes d'alerte de New Relic et envoyez des notifications à Slack pour chaque problème actif.
Ce que fait ce workflow :
- Exécuter la requête NerdGraph pour récupérer les problèmes d'alerte actifs
- Parcourir chaque problème d'alerte
- Envoyer une notification Slack pour chaque problème avec les détails du problème
name: alertSlack description: "query Alert Issues and send notifications to Slack"
workflowInputs: accountId: type: Int
steps: - name: getAlert type: action action: newrelic.nerdgraph.execute version: 1 inputs: graphql: | query GetAlertIssues($accountId: Int!) { actor { account(id: $accountId) { aiIssues { issues(filter: {states: ACTIVATED}) { issues { issueId priority state title } } } } } } variables: accountId: ${{ .workflowInputs.accountId }}
- name: loopStep type: loop for: in: ${{ .steps.getAlert.outputs.data.actor.account.aiIssues.issues.issues }} steps: - name: sendToSlack type: action action: slack.chat.postMessage version: 1 inputs: token: ${{ :secrets:your_slack_token }} channel: incident-channel text: > issueId: ${{ .steps.loopStep.loop.element.issueId }} priority: ${{ .steps.loopStep.loop.element.priority }} state: ${{ .steps.loopStep.loop.element.state }} title: ${{ .steps.loopStep.loop.element.title | tostring }}Actions clés: newrelic.nerdgraph.execute, slack.chat.postMessage
Et ensuite ?
- Boucles: Itérer sur les collections
- Logique conditionnelle: Utiliser des instructions switch