def lambda_handler()

in custom_resource/sagemaker_create_experiment.py [0:0]


def lambda_handler(event, context):
    if "ExperimentName" in event:
        experiment_name = event["ExperimentName"]
    else:
        raise KeyError("ExperimentName key not found in input: {}".format(json.dumps(event)))
    if "TrialName" in event:
        trial_name = event["TrialName"]
    else:
        raise KeyError("TrialName key not found in input: {}".format(json.dumps(event)))
    experiment_created = False
    try:
        response = sm_client.create_experiment(ExperimentName=experiment_name)
        logger.info("Created experiment: {}".format(experiment_name))
        logger.debug(response)
        experiment_created = True
    except ClientError as error:
        if (
            error.response["Error"]["Code"] == "ValidationException"
            and "Experiment names must be unique" in error.response["Error"]["Message"]
        ):
            logger.warn("Attempt to create duplicate experiment: {}".format(experiment_name))
        else:
            raise error
    trial_created = False
    try:
        response = sm_client.create_trial(ExperimentName=experiment_name, TrialName=trial_name)
        logger.info("Created trial: {}".format(trial_name))
        experiment_created = True
    except ClientError as error:
        if (
            error.response["Error"]["Code"] == "ValidationException"
            and "Trial names must be unique" in error.response["Error"]["Message"]
        ):
            logger.warn("Attempt to create duplicate trial: {}".format(trial_name))
        else:
            raise error
    return {
        "statusCode": 200,
        "results": {
            "ExperimentCreated": experiment_created,
            "TrialCreated": trial_created,
        },
    }