def create()

in source/lambda_custom_resource.py [0:0]


def create(event, context):
    """
    Runs on Stack Creation.
    As there is no real 'resource', and it will never be replaced,
    PhysicalResourceId is set to a hash of StackId and LogicalId.
    """
    s = '%s-%s' % (event.get('StackId'), event.get('LogicalResourceId'))
    physical_resource_id = md5(s.encode('UTF-8')).hexdigest()

    if event.get('ResourceType') == 'Custom::CWEventPermissions':
        cwe = CWEventPermissions(event, logger)
        logger.info("Create CW Event Bus Policy - CR Router")
        response = cwe.create_permissions()
        logger.info("Response from Create Policy CR Handler")
        logger.info(response)
        return physical_resource_id, response
    elif event.get('ResourceType') == 'Custom::ConsoleDeploy':
        cd = S3ConsoleDeploy(event, logger)
        logger.info("Deploy console content to s3")
        cd.upload_console_files()
        cd.upload_config_file()
        response = None
        return physical_resource_id, response
    elif event.get('ResourceType') == 'Custom::GetPrefixListArns':
        converter_client = PrefixListIdToArnConverter(event, logger)
        response = converter_client.get_prefix_list_arns()
        logger.info("Response from Get Prefix List Arns - CR Handler")
        logger.info(response)
        return physical_resource_id, response
    elif event.get('ResourceType') == 'Custom::SendCFNParameters':
        send = CFNMetrics(event, logger)
        send.send_metrics()
        response = None
        return physical_resource_id, response
    else:
        logger.error('No valid ResourceType found! Resource type \"'+event['ResourceType']+'\" received', exc_info=True)
        raise Exception('No valid ResourceType found! Resource type \"'+event['ResourceType']+'\" received')