in custom-targets/vertex-ai-pipeline/pipeline-deployer/render.go [107:143]
func (r *renderer) renderCreatePipelineRequest() ([]byte, error) {
if err := applyDeployParams(r.params.configPath); err != nil {
return nil, fmt.Errorf("cannot apply deploy parameters to configuration file: %v", err)
}
configuration, err := loadConfigurationFile(r.params.configPath)
if err != nil {
return nil, fmt.Errorf("unable to obtain configuration data: %v", err)
}
// blank pipelineJob template
pipelineJob := &aiplatform.GoogleCloudAiplatformV1PipelineJob{}
if err = yaml.Unmarshal(configuration, pipelineJob); err != nil {
return nil, fmt.Errorf("unable to parse configuration data into pipelineJob object: %v", err)
}
paramValues := r.params.pipelineParams
if pipelineJob.TemplateUri == "" {
pipelineJob.TemplateUri = r.params.pipeline
}
if pipelineJob.DisplayName == "" {
pipelineJob.DisplayName = paramValues["model_display_name"]
}
paramValues["project_id"] = r.params.project
paramString, err := json.Marshal(paramValues)
if err != nil {
fmt.Printf("Error marshalling JSON: %s", err)
return nil, fmt.Errorf("unable to marshal params json")
}
pipelineJob.RuntimeConfig.ParameterValues = paramString
request := &aiplatform.GoogleCloudAiplatformV1CreatePipelineJobRequest{PipelineJob: pipelineJob}
return yaml.Marshal(request)
}