Skip to content

Instantly share code, notes, and snippets.

@nhammad
Created August 9, 2022 14:25
Show Gist options
  • Save nhammad/e6380db98ed417f501f3f136c65d5f0d to your computer and use it in GitHub Desktop.
Save nhammad/e6380db98ed417f501f3f136c65d5f0d to your computer and use it in GitHub Desktop.
import logging
import os
import boto3
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def enable(alarm_names):
try:
enable_alarm = client.enable_alarm_actions(AlarmNames=alarm_names)
return enable_alarm
except Exception as e:
logger.debug(f'Oops. An error occured:{e}')
def disable(alarm_names):
try:
disable_alarm = client.disable_alarm_actions(AlarmNames=alarm_names)
return disable_alarm
except Exception as e:
logger.debug(f'Oops. An error occured:{e}')
def fetch_alarm_names(alarm_arns):
names = []
response = client.describe_alarms()
for i in response['MetricAlarms']:
if i['AlarmArn'] in alarm_arns:
names.append(i['AlarmName'])
return names
def lambda_handler(event, context):
global client
client = boto3.client('cloudwatch')
global action
action = os.getenv('action')
global alarm_arns_lst
alarm_arns_lst = os.getenv('alarm_arns_lst')
alarm_arns_lst = json.loads(alarm_arns_lst)
alarm_names = fetch_alarm_names(alarm_arns_lst)
if action == "enable":
enable(alarm_names)
if action == "disable":
disable(alarm_names)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment