in infra/stack/mlops/mlops-pipeline-stack.ts [63:97]
constructor(appContext: AppContext, stackConfig: any) {
super(appContext, stackConfig);
const pipelineConfig = stackConfig as MLOpsPipelineConfig;
const baseName = pipelineConfig.EndpointName;
const bucket = this.createS3Bucket(baseName);
const stateMachine = this.createStateMachine({
statemachineName: baseName,
statemachineRole: this.createStateMachineRole(baseName),
bucket: bucket,
glueJob: this.createGlueEtl(baseName, bucket, pipelineConfig.GlueJobFilePath, pipelineConfig.GlueJobTimeoutInMin),
glueJobTimeoutInMin: pipelineConfig.GlueJobTimeoutInMin,
trainInputContent: pipelineConfig.TrainInputContent,
trainParameters: pipelineConfig.TrainParameters,
trainJobRole: this.createSageMakerTrainingRole(baseName),
trainInstanceType: this.findInstanceType(pipelineConfig.TrainInstanceType),
trainContainerImage: pipelineConfig.TrainContainerImage,
modelErrorThreshold: pipelineConfig.ModelErrorThreshold,
endpointInstanceCount: pipelineConfig.EndpointInstanceCount,
endpointInstanceType: this.findInstanceType(pipelineConfig.EndpointInstanceType),
queryAccuracyLambda: pipelineConfig.ModelValidationEnable ? this.createQueryAccuracyLambda(baseName) : undefined,
queryEndpointLambda: this.createQueryEndpointLambda(baseName),
});
this.createTriggerStateMachineLambda(baseName, bucket, stateMachine);
}