Untitled
unknown
plain_text
2 years ago
1.4 kB
21
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