2017-05-14 7 views
0

Mon organisation prévoit une fenêtre de maintenance pour les 5 prochaines heures. Pendant ce temps, je ne souhaite pas que Cloud Watch déclenche des alarmes et envoie des notifications.Essayer de désactiver toutes les alarmes Cloud Watch en une fois

Plus tôt, lorsque j'ai dû désactiver 4 alarmes, j'ai écrit le code suivant dans AWS Lambda. Cela a bien fonctionné.

import boto3 
import collections 

client = boto3.client('cloudwatch') 

def lambda_handler(event, context): 
    response = client.disable_alarm_actions(
    AlarmNames=[ 
     'CRITICAL - StatusCheckFailed for Instance 456', 
     'CRITICAL - StatusCheckFailed for Instance 345', 
     'CRITICAL - StatusCheckFailed for Instance 234', 
     'CRITICAL - StatusCheckFailed for Instance 123' 
    ] 
) 

Mais maintenant, on m'a demandé de désactiver toutes les alarmes qui sont au nombre de 361. Donc, y compris tous ces noms prendrait beaucoup de temps.

S'il vous plaît laissez-moi savoir ce que je devrais faire maintenant?

Répondre

1

Utilisez describe_alarms() pour obtenir une liste d'entre eux, puis itérer et les désactiver:

import boto3 
client = boto3.client('cloudwatch') 

response = client.describe_alarms() 

names = [[alarm['AlarmName'] for alarm in response['MetricAlarms']]] 
disable_response = client.disable_alarm_actions(names) 

Vous voudrez peut-être une certaine logique autour du nom d'alarme uniquement désactiver les alarmes particulières.