def lambda_handler()

in source/sfm-subscribe-inspector-to-event.py [0:0]


def lambda_handler(event, context):
    logger.info('CFN Event: {}'.format(json.dumps(event)))

    if 'assessment_template_arn' in os.environ:
        assessment_template_arn = os.environ['assessment_template_arn']
        logger.debug('assessment template arn: {}'.format(assessment_template_arn))
    else:
        logger.error('No assessment_template_arn found.')
        send(event, context, 'FAILED', {"error": 'No assessment_template_arn found.'})
        return

    if 'assessment_notification_topic_arn' in os.environ:
        assessment_notification_topic_arn = os.environ['assessment_notification_topic_arn']
        logger.debug('assessment_notification_topic_arn: {}'.format(assessment_notification_topic_arn))
    else:
        logger.error('No assessment_notification_topic_arn found.')
        send(event, context, 'FAILED', {"error": 'No assessment_notification_topic_arn found.'})
        return

    try:
        if event['ResourceType'] == 'Custom::CreateInspectorResources' and event['RequestType'] in ['Create', 'Update']:
            logger.info('CFN request type: {}'.format(event['RequestType']))

            # Add a notification for the assessment runs.
            logger.debug('Subscribing Inspector to CloudWatch event')
            logger.debug('resource arn: {}'.format(assessment_template_arn))
            logger.debug('event: ASSESSMENT_RUN_COMPLETED')
            logger.debug('topic arn: {}'.format(assessment_notification_topic_arn))

            client.subscribe_to_event(
                resourceArn = assessment_template_arn,
                event = 'ASSESSMENT_RUN_COMPLETED',
                topicArn = assessment_notification_topic_arn
            )

            logger.info('Successfully subscribed Inspector to CloudWatch event')
    except Exception as e:
        logger.error('Failed to subscribe Inspector to CloudWatch event: {}'.format(e))

    send(event, context, 'SUCCESS', {"AssessmentTemplateArn": assessment_template_arn})