def lambda_handler(event, context): ''' Args: event (dict/list/str/int/float/NoneType): AWS event data. context (LambdaContext): Lambda runtime information. ''' logger.debug('Lambda event received.') logger.info( json_dump_request_event(class_name='lambda_handler', method_name='lambda_handler', params=event, details={'message': 'Lambda event received.'})) monitor = Monitor(ses_client=ses_client, cloudwatch_client=cloudwatch_client, logger=logger) monitor.handle_ses_sending_quota() monitor.handle_ses_reputation() response = monitor.send_notifications(raise_on_errors=True) logger.debug('Lambda event processed.') logger.info( json_dump_response_event( class_name='lambda_handler', method_name='lambda_handler', response=response, details={'message': 'Lambda event processed.'}))
def _log_handle_ses_reputation_response(self): ''' Log the SES account reputation handler response. ''' self.logger.debug('SES account reputation handler complete.') self.logger.info( json_dump_response_event(class_name=self.__class__.__name__, method_name='handle_ses_reputation'))
def _log_handle_ses_quota_response(self): ''' Log the SES account quota handler response. ''' self.logger.debug('SES account sending handler complete.') self.logger.info( json_dump_response_event(class_name=self.__class__.__name__, method_name='handle_ses_quota'))
def _log_disable_account_sending_response(self): ''' Log the disable account sending response. ''' self.logger.debug('SES account sending DISABLED!') self.logger.info( json_dump_response_event(class_name=self.__class__.__name__, method_name='disable_account_sending_request'))
def _log_get_ses_account_reputation_metrics_response(self, response): ''' Log the response from getting SES account reputation metrics. Args: response (dict): MetricDataResults dict object. ''' self.logger.debug('Received SES reputation metric data for account') self.logger.info( json_dump_response_event( class_name=self.__class__.__name__, method_name='get_ses_account_reputation_metrics', response=response))
def _log_post_json_response(self, response): ''' Logs JSON POST params. Args: url (str): The url being posted to. response (requests.Response): Response object. ''' self.logger.debug('Received POST %s response from %s', response.status_code, response.url) self.logger.info( json_dump_response_event(class_name=self.__class__.__name__, method_name='post_json', response=response.json(), details={ 'url': response.url, 'status_code': response.status_code }))