in code/workflow/implementations/autopilot/bp_automl_stage.py [0:0]
def generate_autopilot_config(cls, event, engine="sagemaker-autopilot") :
try :
data_config = event["config"]["Payload"]["data-config"]
security_config = event["config"]["Payload"]["security-config"]
automl_config = event["config"]["Payload"]["automl-config"]
ws_config = event["config"]["Payload"]["workspace-config"]
ws_bucket = ws_config["s3_bucket"]
ws_prefix = ws_config["s3_prefix"]
iam_role = security_config["iam_role"]
job_name = automl_config["job_name"]
max_candidates = automl_config["max_candidates"]
target_name = automl_config["target_name"]
problem_type = automl_config["problem_type"]
metric_name = automl_config["metric_name"]
if "automl_max_job_runtime" in automl_config :
timeout = 600 + automl_config["automl_max_job_runtime"]
else :
#limit to 24 hours
timeout = 86400
data_uri = event["taskresult"]["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"]
config = {
"JobName" : job_name,
"JobProperties" : cls.get_job_config(max_candidates),
"Input" : cls.get_input_config(data_uri, target_name),
"Problem" : problem_type,
"Objective": cls.get_automl_objective(metric_name),
"Output" : cls.get_output_config(f"s3://{ws_bucket}/{ws_prefix}/candidates"),
"IamRole" : iam_role,
"Region" : os.environ.get('AWS_REGION'),
"Timeout" : timeout,
"Engine" : engine
}
except (KeyError) as e:
raise type(e)(f"{type(e)}: Event was {event}.")
return config