def lambda_handler()

in templates/aws-cloudfront-monitoring/source/lambda.d/metric_collector_chr_bandwidth/metric_collector_chr_bandwidth.py [0:0]


def lambda_handler(event, context):
    log.info('[lambda_handler] Start')
    log.info('[lambda_handler] Event ' + json.dumps(event))

    response = {
        "isBase64Encoded": "false",
        "headers": {
            "Content-Type": "application/json"
        }
    }
    event_time = event["time"]
    event_datetime = datetime.strptime(event_time, "%Y-%m-%dT%H:%M:%SZ")
    start_datetime = event_datetime - timedelta(minutes=20)

    start_time = start_datetime.strftime("%Y-%m-%d %H:%M:%S")
    end_time = event_datetime.strftime("%Y-%m-%d %H:%M:%S")
    domain_list = os.getenv('DOMAIN_LIST').split(",")
    metric = "chrBandWith"

    for domain in domain_list:
        domain = domain.strip()
        try:
            gen_data = {}
            gen_data = gen_detailed_by_interval(metric, start_time, end_time,
                                                domain, athena_client, DB_NAME,
                                                GLUE_TABLE_NAME, ATHENA_QUERY_OUTPUT)

            for queryItem in gen_data['Detail']:
                log.info(json.dumps(queryItem))
                log.info(queryItem['QueryId'])
                log.info(queryItem['Time'])
                item_query_result = get_athena_query_result(
                    athena_client, queryItem['QueryId'])

                item_query_value = 0
                if item_query_result['ResultSet']['Rows'][1]['Data'][0].get(
                        'VarCharValue') != None:
                    item_query_value = item_query_result['ResultSet']['Rows'][1][
                        'Data'][0]['VarCharValue']

                table_item = {
                    'metricId': metric + '-' + domain,
                    'timestamp': queryItem['Time'],
                    'metricData': item_query_value
                }
                table = dynamodb.Table(DDB_TABLE_NAME)
                ddb_response = table.put_item(Item=table_item)
                log.info(json.dumps(table_item))
                log.info(str(ddb_response))

        except Exception as error:
            log.error(str(error))

    log.info('[lambda_handler] End')
    return response