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,
},
}