Anunciamos
Criação de alarmes no Amazon CloudWatch
Este exemplo de código Node.js mostra:
Como recuperar informações básicas sobre os alarmes do CloudWatch.
Como criar e excluir um alarme do CloudWatch.
O cenário
Um alarme observa uma única métrica ao longo de um período especificado por você e realiza uma ou mais ações com base no valor da métrica relativo a um determinado limite ao longo de vários períodos.
Neste exemplo, uma série de módulos Node.js é usada para criar alarmes no CloudWatch. Os módulos Node.js usam o SDK para JavaScript para criar alarmes usando esses métodos da classe de cliente do AWS.CloudWatch
:
Para obter mais informações sobre os alarmes do CloudWatch e as alterações de estado, consulte Criar alarmes do Amazon CloudWatch no Manual do usuário do Amazon CloudWatch.
Tarefas de pré-requisito
Para configurar e executar este exemplo, você deve primeiro concluir estas tarefas:
Instale o Node.js. Para obter mais informações sobre como instalar Node.js, consulte o website de Node.js
. Crie um arquivo de configurações compartilhado com as credenciais de usuário. Para obter mais informações sobre como fornecer um arquivo de credenciais compartilhadas, consulte Carregar credenciais em Node.js do arquivo de credenciais compartilhado.
Descrever alarmes
Crie um módulo do Node.js com o nome de arquivo cw_describealarms.js
. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o CloudWatch, crie um objeto de serviço do AWS.CloudWatch
. Crie um objeto JSON para armazenar os parâmetros para recuperar as descrições de alarme, limitando os alarmes retornados àqueles com um estado de INSUFFICIENT_DATA
. Depois, chame o método describeAlarms
do objeto de serviço do AWS.CloudWatch
.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatch service object var cw = new AWS.CloudWatch({ apiVersion: "2010-08-01" }); cw.describeAlarms({ StateValue: "INSUFFICIENT_DATA" }, function (err, data) { if (err) { console.log("Error", err); } else { // List the names of all current alarms in the console data.MetricAlarms.forEach(function (item, index, array) { console.log(item.AlarmName); }); } });
Para executar o exemplo, digite o seguinte na linha de comando.
node cw_describealarms.js
Este código de exemplo pode ser encontrado aqui no GitHub
Criando um alarme para o CloudWatch Metric
Crie um módulo do Node.js com o nome de arquivo cw_putmetricalarm.js
. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o CloudWatch, crie um objeto de serviço do AWS.CloudWatch
. Crie um objeto JSON para os parâmetros necessários a fim de criar um alarme baseado em uma métrica. Neste caso, a utilização de CPU de uma instância do Amazon EC2. Os demais parâmetros são definidos, de maneira que o alarme seja acionado quando a métrica exceder o limite de 70%. Depois, chame o método describeAlarms
do objeto de serviço do AWS.CloudWatch
.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatch service object var cw = new AWS.CloudWatch({ apiVersion: "2010-08-01" }); var params = { AlarmName: "Web_Server_CPU_Utilization", ComparisonOperator: "GreaterThanThreshold", EvaluationPeriods: 1, MetricName: "CPUUtilization", Namespace: "AWS/EC2", Period: 60, Statistic: "Average", Threshold: 70.0, ActionsEnabled: false, AlarmDescription: "Alarm when server CPU exceeds 70%", Dimensions: [ { Name: "InstanceId", Value: "INSTANCE_ID", }, ], Unit: "Percent", }; cw.putMetricAlarm(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });
Para executar o exemplo, digite o seguinte na linha de comando.
node cw_putmetricalarm.js
Este código de exemplo pode ser encontrado aqui no GitHub
Exclusão de um alarme
Crie um módulo do Node.js com o nome de arquivo cw_deletealarms.js
. Não se esqueça de configurar o SDK conforme mostrado anteriormente. Para acessar o CloudWatch, crie um objeto de serviço do AWS.CloudWatch
. Crie um objeto JSON para manter os nomes dos alarmes que você deseja excluir. Depois, chame o método deleteAlarms
do objeto de serviço do AWS.CloudWatch
.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatch service object var cw = new AWS.CloudWatch({ apiVersion: "2010-08-01" }); var params = { AlarmNames: ["Web_Server_CPU_Utilization"], }; cw.deleteAlarms(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });
Para executar o exemplo, digite o seguinte na linha de comando.
node cw_deletealarms.js
Este código de exemplo pode ser encontrado aqui no GitHub