def handler()

in Code/AuroraSLDataAPIDemo/aslbootstrap/aslbootstrap.py [0:0]


def handler(event, context):
    """
    This function bootstraps Aurora MySQL Cluster
    """
    
    responseData = {}
    
    if event['RequestType'] == 'Create':
    
        try:
            #Get Secret
            dbpass = get_secret(secret_arn,region_name)
            logger.info("SUCCESS: Retrieved Secret successfully")
            conn = pymysql.connect(db_host, user=user_name, passwd=dbpass, connect_timeout=60)
            logger.info("SUCCESS: Connection to Aurora MySQL Serverless Cluster succeeded")
        except Exception as e:
            logger.error("ERROR: Unexpected error: Could not connect to Aurora MySQL Serverless Cluster")
            logger.error('Exception: ' + str(e))
            responseData['Data'] = "ERROR: Unexpected error: Couldn't connect to Aurora PostgreSQL instance."
            cfnresponse.send(event, context, cfnresponse.SUCCESS, responseData, "None")
            
        try:
            with conn.cursor() as cur:
                cur.execute("create database Demo")
                cur.execute("create table Demo.Cities(City varchar(255))")
                conn.commit()
            logger.info("SUCCESS: Executed SQL statements successfully.")
            responseData['Data'] = "SUCCESS: Executed SQL statements successfully."
            cfnresponse.send(event, context, cfnresponse.SUCCESS, responseData, "None")
        except Exception as e:
            logger.error("ERROR: Unexpected error: Bootstrap of Aurora MySQL Serverless Cluster failed") 
            logger.error('Exception: ' + str(e))
            responseData['Data'] = "ERROR: Unexpected error: Bootstrap of Aurora MySQL Serverless Cluster failed"
            cfnresponse.send(event, context, cfnresponse.SUCCESS, responseData, "None")
            
    else:
        logger.info("{} is unsupported stack operation for this lambda function.".format(event['RequestType']))
        responseData['Data'] = "{} is unsupported stack operation for this lambda function.".format(event['RequestType'])
        cfnresponse.send(event, context, cfnresponse.SUCCESS, responseData, "None")