def evaluate_compliance()

in AWSConfig/CloudEndureCheckReplication/lambda_function/CloudEndureReplicationCheck.py [0:0]


def evaluate_compliance(event, configuration_item, valid_rule_parameters):
    evaluations = []
    rule_event = json.loads(event['invokingEvent'])
    print(rule_event)
    print(rule_event['messageType'])
    if rule_event['messageType'] == 'ScheduledNotification':
        try:
            configclient = boto3.client('config')
            triggereval = configclient.start_config_rules_evaluation(ConfigRuleNames=[event['configRuleName']])
        except Exception as e:
            print (e)
    
        return None
    
    try:
        CloudEndureStatus = CheckCloudEndureReplication(valid_rule_parameters['apiToken'], valid_rule_parameters['project'], configuration_item)
        print (CloudEndureStatus)
        if CloudEndureStatus[0] == "PASSED":
            evaluations.append (
                {
                    'ComplianceResourceType': configuration_item['resourceType'],
                    'ComplianceResourceId': configuration_item['resourceId'],
                    'ComplianceType': 'COMPLIANT',
                    'OrderingTimestamp': str(datetime.datetime.now())
                }
            ) 
        if CloudEndureStatus[0] == "FAILED":
            
            evaluations.append (
                {
                    'ComplianceResourceType': configuration_item['resourceType'],
                    'ComplianceResourceId': configuration_item['resourceId'],
                    'ComplianceType': 'NON_COMPLIANT',
                    'Annotation': CloudEndureStatus[1],
                    'OrderingTimestamp': str(datetime.datetime.now())
                }
            ) 
            
        if CloudEndureStatus[0] == "NOT_APPLICABLE":
            evaluations.append (
                {
                    'ComplianceResourceType': configuration_item['resourceType'],
                    'ComplianceResourceId': configuration_item['resourceId'],
                    'ComplianceType': 'NOT_APPLICABLE',
                    'Annotation': CloudEndureStatus[1],
                    'OrderingTimestamp': str(datetime.datetime.now())
                }
            ) 
    except Exception as e:
        print (e)
    
    print (CloudEndureStatus)
    return evaluations