in autopilot/mlops/timeseries/aws-automl-ts-cdk/lambda/create-autopilot-job/index.py [0:0]
def handler(event, context):
print(event)
sagemaker_role = os.environ['SAGEMAKER_ROLE_ARN']
resource_bucket = os.environ['RESOURCE_BUCKET']
ts = datetime.now() # note TZ is UTC
ts = ts.strftime("%Y%m%dT%H%M%S")
job_name = 'automl-job-'+ts #os.environ['JOB_NAME']
csv_s3_uri = f's3://{resource_bucket}/input/training_data.csv'
automl_config_file_key = 'config/automl_problem_config.json'
# Define input data config for SageMaker
input_data_config = [
{
'DataSource': {
'S3DataSource': {
'S3DataType': 'S3Prefix',
'S3Uri': csv_s3_uri
}
}
}
]
# Define output data config for SageMaker
output_data_config = {
'S3OutputPath': f's3://{resource_bucket}/autopilot-output/'
}
# Get AutoML Problem Dynamic Config file from S3
automl_problem_config_s3 = s3.get_object(Bucket=resource_bucket, Key=automl_config_file_key)
automl_problem_config_body = automl_problem_config_s3['Body'].read().decode('utf-8')
automl_problem_config = json.loads(automl_problem_config_body)
# Create the AutoML job
response = sagemaker.create_auto_ml_job_v2(
AutoMLJobName=job_name,
AutoMLJobInputDataConfig=input_data_config,
OutputDataConfig=output_data_config,
RoleArn=sagemaker_role,
AutoMLProblemTypeConfig=automl_problem_config
)
return {
'AutoMLJobResponse': response,
'AutoMLJobName': job_name
}