Negli ultimi articoli, abbiamo esplorato come utilizzare numerous fonti di eventi in Automazione guidata da eventi Ansible (EDA). In questa demo, ci concentreremo su come i filtri degli eventi possono aiutare a ripulire e semplificare i dati degli eventi, semplificando l’automazione. In particolare, esploreremo il ansible.eda.dashes_to_underscores
Filtro degli eventi e come funziona.
Quando si utilizza Ansible EDA con strumenti come WebHooks, Prometheus o Cloud Providers, gli eventi spesso arrivano come dati JSON. Questi payload JSON di solito hanno chiavi con trattini nei loro nomi, come l’ID a allerta o istanza. Mentre questo va bene in JSON, diventa un problema in Ansible perché i nomi variabili con trattini non possono essere utilizzati direttamente nei modelli di playbook o jinja2. IL dashes_to_underscores
Il filtro aiuta a risolvere questo problema convertendo quelle chiavi tratteggiate in nomi che Ansible può funzionare più facilmente.
IL dashes_to_underscores
filtrare in Ansible Eda sostituisce automaticamente i trattini (-
) in tutte le chiavi di un payload di un evento con sottolineature (_
). Questa trasformazione garantisce che i nomi variabili siano conformi ai requisiti di Ansible, rendendoli più facili da fare riferimento direttamente in condizioni e libri di playbook.
Take a look at del filtro Dashes_to_undersCores con un webhook
Per dimostrare come il ansible.eda.dashes_to_underscores
il filtro opera, invieremo un payload JSON di esempio a un webhook
correre port 9000
. Questo carico utile embody chiavi con trattini, come alert-name
E instance-id
che sono comuni nei dati JSON ma possono porre sfide in Ansible a causa di convenzioni di denominazione variabili.
webhook.yml
- title: Occasion Filter dashes_to_underscores demo
hosts: localhost
sources:
- ansible.eda.webhook:
port: 9000
host: 0.0.0.0
filters:
- ansible.eda.dashes_to_underscores:
guidelines:
- title: Run the playbook if it alert_name matches Excessive CPU Utilization
situation: occasion.payload.alert_name == "HighCPUUsage"
motion:
run_playbook:
title: print-event-vars.yml
Print-Occasion-Vars.yml
---
- title: Print the Occasion Particulars
hosts: localhost
gather_facts: false
duties:
- title: Print occasion particulars
debug:
msg: >
Detected that '{{ ansible_eda.occasion.payload.alert_name }}' on '{{ ansible_eda.occasion.payload.instance_id }}', present system timestp '{{ now(fmt="%Y-%m-%d %H:%M:%S") }}'
Attivazione del Webhook con un payload JSON di esempio
curl --header "Content material-Kind: utility/json"
--request POST
--data '{ "alert-name": "HighCPUUsage", "instance-id": "i-123456789" }'
http://localhost:9000/
Ispezione degli eventi con-PRINT-EVENTS FLAG
Dopo aver ricevuto questo carico utile, il dashes_to_underscores
Il filtro convertirà automaticamente i tasti: alert-name
diventa alert_name
E instance-id
diventa instance_id
Questa trasformazione garantisce la compatibilità con i requisiti di denominazione variabile di Ansible, consentendo un accesso semplice a queste variabili nei tuoi libri di playbook e regole.
Ruleset: Occasion Filter dashes_to_underscores demo
Occasion:
{'meta': {'endpoint': '',
'headers': {'Settle for': '*/*',
'Content_Length': '62',
'Content_Type': 'utility/json',
'Host': 'localhost:9000',
'User_Agent': 'curl/8.7.1'},
'received_at': '2025-04-23T16:20:40.248651Z',
'supply': {'title': 'ansible.eda.webhook',
'kind': 'ansible.eda.webhook'},
'uuid': '8dcf64a6-2ab2-429b-a81a-6dd0e3a48308'},
'payload': {'alert_name': 'HighCPUUsage', 'instance_id': 'i-123456789'}}
Conclusione
IL ansible.eda.dashes_to_underscores
Il filtro aiuta a ripulire i dati degli eventi nell’EDA di Ansible. Modifica automaticamente le chiavi con i trattini (come il nome di avviso) in tasti con sottolinei (come Alert_name), rendendoli più facili da usare in playbook e libri di regole Ansible. Questo è importante perché Ansible preferisce nomi variabili che hanno solo lettere, numeri e sottolineate. L’uso di questo filtro rende i tuoi script di automazione più chiari e riduce la possibilità di errori. Possiamo anche combinarlo con altri filtri, come JSON_FILTER, per controllare e formattare meglio i dati degli eventi in arrivo. Nel complesso, questo filtro ti aiuta a lavorare in modo più fluido con diversi tipi di dati di eventi nelle attività di automazione.
Nota: Le opinioni espresse in questo articolo sono mie e non riflettono necessariamente le opinioni del mio datore di lavoro.