in SamplesV1/ParameterizedPipelinesForAzureML/DeployDataFactory/DeployDataFactory/RetrainingPipeline.cs [55:154]
private static void CreatePipelines(
string resourceGroupName,
string dataFactoryName,
DataFactoryManagementClient client,
string inputDataset,
IList<string> outputModelDatasets,
IList<string> outputPlaceholderDatasets,
string[] parameters,
IList<UpdateResourceEndpoint> endpoints)
{
int i = 0;
foreach (string parameter in parameters)
{
string[] parameterList = parameter.Split(',');
string region = parameterList[0];
// create a pipeline
DateTime PipelineActivePeriodStartTime = DateTime.Parse(DataFactoryConfig.PipelineStartTime);
DateTime PipelineActivePeriodEndTime = PipelineActivePeriodStartTime.AddMinutes(DataFactoryConfig.MinutesToAddToStartTimeForEndTime);
string PipelineName = String.Format("RetrainingPipeline_{0}", region);
Console.WriteLine("Creating a pipeline {0}", PipelineName);
client.Pipelines.CreateOrUpdate(resourceGroupName, dataFactoryName,
new PipelineCreateOrUpdateParameters()
{
Pipeline = new Pipeline()
{
Name = PipelineName,
Properties = new PipelineProperties()
{
Description = "Pipeline for retraining",
// Initial value for pipeline's active period.
Start = PipelineActivePeriodStartTime,
End = PipelineActivePeriodEndTime,
Activities = new List<Activity>()
{
new Activity()
{
Name = "AzureMLBatchExecution",
Inputs = new List<ActivityInput>()
{
new ActivityInput() {
Name = inputDataset
}
},
Outputs = new List<ActivityOutput>()
{
new ActivityOutput()
{
Name = outputModelDatasets[i]
}
},
LinkedServiceName = "LinkedServiceRetraining-AzureML",
TypeProperties = new AzureMLBatchExecutionActivity()
{
WebServiceInput = inputDataset,
WebServiceOutputs = new Dictionary<string, string>
{
{"output1", outputModelDatasets[i]}
},
GlobalParameters = new Dictionary<string, string>
{
{"starttime", "$$Text.Format('\\'{0:yyyy-MM-dd HH:mm:ss}\\'', WindowStart)"},
{"endtime", "$$Text.Format('\\'{0:yyyy-MM-dd HH:mm:ss}\\'', WindowEnd)"},
{"cpf", region}
}
}
},
new Activity()
{
Name = "AzureMLUpdateResource",
Inputs = new List<ActivityInput>()
{
new ActivityInput() {
Name = outputModelDatasets[i]
}
},
Outputs = new List<ActivityOutput>()
{
new ActivityOutput()
{
Name = outputPlaceholderDatasets[i]
}
},
LinkedServiceName = "LinkedServiceScoring-AzureML-" + region,
TypeProperties = new AzureMLUpdateResourceActivity()
{
TrainedModelName = "Trained model for facility " + region,
TrainedModelDatasetName = outputModelDatasets[i]
}
}
},
}
}
});
i++;
}
}