I am trying to disable the cloudwatch alarm actions using lambda function as provided by following article "https://medium.com/geekculture/enable-or-disable-aws-alarms-at-given-intervals-d2f867aa9aa4".
However i am facing timeouts during it's execution. The http request for generated does not return any error.
The code is as below:
import logging
import os
import boto3
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
def disable_alarms(alarm_names):
try:
logger.debug(f'Disabling alarms')
disable_alarm = client.disable_alarm_actions(AlarmNames=alarm_names)
return disable_alarm
except Exception as e:
logger.debug(f'Error while disabling alarms:, {e}')
def enable_alarms(alarm_names):
try:
logger.info(f'Enabling alarms: {alarm_names}')
enable_alarm = client.enable_alarm_actions(AlarmNames=alarm_names)
return enable_alarm
except Exception as e:
logger.debug(f'Error while enable alarms: {alarm_names}, {e}')
def lambda_handler(event, context):
logger.info(f'## EVENT: {event}')
global client
client = boto3.client('cloudwatch')
global list_of_alarm_arns
list_of_alarm_names = ['HealthAlarm']
logger.info(f'Sending To Function Disable')
#enable_alarms(list_of_alarm_names)
disable_alarms(list_of_alarm_names)
return {
'statusCode': 200,
}
The HealthAlarm existing actions is to be disabled.