Untitled
unknown
plain_text
a year ago
1.4 kB
14
Indexable
import { CloudWatchClient, DescribeAlarmsCommand, } from '@aws-sdk/client-cloudwatch'; import dotenv from 'dotenv'; import { exec } from 'child_process'; const filePathAudio = './alarm.wav'; const playAudioCmd = `start ${filePathAudio}`; const configAlarm = { StateValue: 'ALARM' } dotenv.config(); const command = new DescribeAlarmsCommand(configAlarm); const client = new CloudWatchClient({ region: process.env.REGION, credentials: { accessKeyId: process.env.ACCESS_KEY, secretAccessKey: process.env.SECRET_KEY } }); function playAudio() { return new Promise((resolve, reject) => { exec(playAudioCmd, err => { if (err) reject(err.message); console.log('Playing.....'); resolve(); }) }); } async function alarms() { await client.send(command) .then(async data => { if (data.MetricAlarms.length) { // Play audio await playAudio(); // Handle data data.MetricAlarms.forEach(e => { console.log(e.AlarmName); }) // Has alarm => exit tool process.exit(1); } }) .catch(err => { console.log(err); }) setTimeout(() => { alarms(); }, 5000) } alarms();
Editor is loading...
Leave a Comment