Attività ExecutePipeline in Azure Data FactoryExecute Pipeline activity in Azure Data Factory

L'attività ExecutePipeline consente a una pipeline di Data Factory di richiamare un'altra pipeline.The Execute Pipeline activity allows a Data Factory pipeline to invoke another pipeline.

SintassiSyntax

{
    "name": "MyPipeline",
    "properties": {
        "activities": [
            {
                "name": "ExecutePipelineActivity",
                "type": "ExecutePipeline",
                "typeProperties": {
                    "parameters": {                        
                        "mySourceDatasetFolderPath": {
                            "value": "@pipeline().parameters.mySourceDatasetFolderPath",
                            "type": "Expression"
                        }
                    },
                    "pipeline": {
                        "referenceName": "<InvokedPipelineName>",
                        "type": "PipelineReference"
                    },
                    "waitOnCompletion": true
                 }
            }
        ],
        "parameters": [
            {
                "mySourceDatasetFolderPath": {
                    "type": "String"
                }
            }
        ]
    }
}

Proprietà del tipoType properties

ProprietàProperty DescriptionDescription Valori consentitiAllowed values ObbligatorioRequired
namename Nome dell'attività di esecuzione della pipeline.Name of the execute pipeline activity. stringString Yes
typetype Deve essere impostata su: ExecutePipeline.Must be set to: ExecutePipeline. stringString Yes
pipelinepipeline Pipeline di riferimento per la pipeline dipendente chiamata da questa pipeline.Pipeline reference to the dependent pipeline that this pipeline invokes. Un oggetto di riferimento della pipeline ha due proprietà: referenceName e type.A pipeline reference object has two properties: referenceName and type. La proprietà referenceName specifica il nome della pipeline di riferimento.The referenceName property specifies the name of the reference pipeline. La proprietà type deve essere impostata su PipelineReference.The type property must be set to PipelineReference. PipelineReferencePipelineReference Yes
parametriparameters Parametri da passare alla pipeline chiamataParameters to be passed to the invoked pipeline Oggetto JSON che esegue il mapping dei nomi di parametro ai valori degli argomentiA JSON object that maps parameter names to argument values NoNo
waitOnCompletionwaitOnCompletion Definisce se l'esecuzione dell'attività attende che l'esecuzione della pipeline dipendente termini.Defines whether activity execution waits for the dependent pipeline execution to finish. L'impostazione predefinita è false.Default is false. BooleanBoolean NoNo

EsempioSample

Questo scenario include due pipeline:This scenario has two pipelines:

  • Pipeline master: questa pipeline ha una sola attività di esecuzione della pipeline che chiama la pipeline richiamata.Master pipeline - This pipeline has one Execute Pipeline activity that calls the invoked pipeline. La pipeline master accetta due parametri: masterSourceBlobContainer e masterSinkBlobContainer.The master pipeline takes two parameters: masterSourceBlobContainer, masterSinkBlobContainer.
  • Pipeline richiamata: questa pipeline ha un'attività Copy che copia i dati da un'origine BLOB di Azure al sink di BLOB di Azure.Invoked pipeline - This pipeline has one Copy activity that copies data from an Azure Blob source to Azure Blob sink. La pipeline richiamata accetta due parametri: sourceBlobContainer, sinkBlobContainer.The invoked pipeline takes two parameters: sourceBlobContainer, sinkBlobContainer.

Definizione della pipeline masterMaster pipeline definition

{
  "name": "masterPipeline",
  "properties": {
    "activities": [
      {
        "type": "ExecutePipeline",
        "typeProperties": {
          "pipeline": {
            "referenceName": "invokedPipeline",
            "type": "PipelineReference"
          },
          "parameters": {
            "sourceBlobContainer": {
              "value": "@pipeline().parameters.masterSourceBlobContainer",
              "type": "Expression"
            },
            "sinkBlobContainer": {
              "value": "@pipeline().parameters.masterSinkBlobContainer",
              "type": "Expression"
            }
          },
          "waitOnCompletion": true
        },
        "name": "MyExecutePipelineActivity"
      }
    ],
    "parameters": {
      "masterSourceBlobContainer": {
        "type": "String"
      },
      "masterSinkBlobContainer": {
        "type": "String"
      }
    }
  }
}

Definizione della pipeline richiamataInvoked pipeline definition

{
  "name": "invokedPipeline",
  "properties": {
    "activities": [
      {
        "type": "Copy",
        "typeProperties": {
          "source": {
            "type": "BlobSource"
          },
          "sink": {
            "type": "BlobSink"
          }
        },
        "name": "CopyBlobtoBlob",
        "inputs": [
          {
            "referenceName": "SourceBlobDataset",
            "type": "DatasetReference"
          }
        ],
        "outputs": [
          {
            "referenceName": "sinkBlobDataset",
            "type": "DatasetReference"
          }
        ]
      }
    ],
    "parameters": {
      "sourceBlobContainer": {
        "type": "String"
      },
      "sinkBlobContainer": {
        "type": "String"
      }
    }
  }
}

Servizio collegatoLinked service

{
    "name": "BlobStorageLinkedService",
    "properties": {
    "type": "AzureStorage",
    "typeProperties": {
      "connectionString": "DefaultEndpointsProtocol=https;AccountName=*****;AccountKey=*****"
    }
  }
}

Set di dati di origineSource dataset

{
    "name": "SourceBlobDataset",
    "properties": {
    "type": "AzureBlob",
    "typeProperties": {
      "folderPath": {
        "value": "@pipeline().parameters.sourceBlobContainer",
        "type": "Expression"
      },
      "fileName": "salesforce.txt"
    },
    "linkedServiceName": {
      "referenceName": "BlobStorageLinkedService",
      "type": "LinkedServiceReference"
    }
  }
}

Set di dati sinkSink dataset

{
    "name": "sinkBlobDataset",
    "properties": {
    "type": "AzureBlob",
    "typeProperties": {
      "folderPath": {
        "value": "@pipeline().parameters.sinkBlobContainer",
        "type": "Expression"
      }
    },
    "linkedServiceName": {
      "referenceName": "BlobStorageLinkedService",
      "type": "LinkedServiceReference"
    }
  }
}

Esecuzione della pipelineRunning the pipeline

Per eseguire la pipeline master di questo esempio, vengono passati i valori seguenti per i parametri masterSourceBlobContainer e masterSinkBlobContainer:To run the master pipeline in this example, the following values are passed for the masterSourceBlobContainer and masterSinkBlobContainer parameters:

{
  "masterSourceBlobContainer": "executetest",
  "masterSinkBlobContainer": "executesink"
}

La pipeline master inoltra questi valori alla pipeline richiamata, come illustrato nell'esempio seguente:The master pipeline forwards these values to the invoked pipeline as shown in the following example:

{
    "type": "ExecutePipeline",
    "typeProperties": {
      "pipeline": {
        "referenceName": "invokedPipeline",
        "type": "PipelineReference"
      },
      "parameters": {
        "sourceBlobContainer": {
          "value": "@pipeline().parameters.masterSourceBlobContainer",
          "type": "Expression"
        },
        "sinkBlobContainer": {
          "value": "@pipeline().parameters.masterSinkBlobContainer",
          "type": "Expression"
        }
      },

      ....
}

Passaggi successiviNext steps

Vedere altre attività del flusso di controllo supportate da Data Factory:See other control flow activities supported by Data Factory: