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