管線執行中的參考觸發程序中繼資料
適用於:Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用!
本文說明如何在管線執行中使用觸發程序中繼資料,例如觸發程序開始時間。
管線有時需要了解並從叫用它的觸發程序中讀取中繼資料。 例如,使用輪轉視窗觸發程序執行,根據視窗開始和結束時間,管線會處理不同的資料配量或資料夾。 在 Azure Data Factory 中,我們使用參數化和系統變數,將中繼資料從觸發程序傳遞至管線。
此模式特別適用於輪轉視窗觸發程序 (其中觸發程序會提供視窗開始和結束時間) 以及自訂事件觸發程序 (其中觸發程序剖析和處理值在自訂定義的資料欄位中很重要)。
注意
不同的觸發程序類型提供不同的中繼資料資訊。 如需詳細資訊,請參閱系統變數
Data Factory UI
本節說明如何在 Azure Data Factory 使用者介面內,將中繼資料資訊從觸發程序傳遞至管線。
前往製作畫布並編輯管線
在空白畫布上選取以顯示管線設定。 請勿選取任何活動。 您可能需要從畫布底部提取設定面板,因為它可能已摺疊
選取 [參數] 區段,然後選取 [+ 新增] 以新增參數
按一下 [+ 觸發程序],將觸發程序新增至管線。
建立或附加觸發程序至管線,然後選取 [確定]
選取 [確定] 之後,會顯示另一個 [新增觸發程式] 頁面,其中包含為管線指定的參數清單,如下列螢幕擷取畫面所示。 在該頁面上,填入每個參數的觸發程序中繼資料。 使用系統變數中定義的格式來擷取觸發程序資訊。 您不需要填入所有參數的資訊,只需要填入假設觸發程序中繼資料值的參數。 例如,我們會在這裡將觸發程序執行開始時間指派為 parameter_1。
若要使用管線中的值,請在管線定義中使用參數 @pipeline().parameters.parameterName,而不是系統變數。 例如在我們的案例中,若要讀取觸發程序開始時間,我們將參考 @pipeline().parameters.parameter_1。
JSON 結構描述
若要將觸發程序資訊傳遞至管線執行,觸發程序和管線 JSON 都必須使用 [參數] 區段來更新。
管線定義
在 [屬性] 區段下,將參數定義新增至 [參數] 區段
{
"name": "demo_pipeline",
"properties": {
"activities": [
{
"name": "demo_activity",
"type": "WebActivity",
"dependsOn": [],
"policy": {
"timeout": "7.00:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false,
"secureInput": false
},
"userProperties": [],
"typeProperties": {
"url": {
"value": "@pipeline().parameters.parameter_2",
"type": "Expression"
},
"method": "GET"
}
}
],
"parameters": {
"parameter_1": {
"type": "string"
},
"parameter_2": {
"type": "string"
},
"parameter_3": {
"type": "string"
},
"parameter_4": {
"type": "string"
},
"parameter_5": {
"type": "string"
}
},
"annotations": [],
"lastPublishTime": "2021-02-24T03:06:23Z"
},
"type": "Microsoft.DataFactory/factories/pipelines"
}
觸發程序定義
在 [管線] 區段下,指派 [參數] 區段中的參數值。 您不需要填入所有參數的資訊,只需要填入假設觸發程序中繼資料值的參數。
{
"name": "trigger1",
"properties": {
"annotations": [],
"runtimeState": "Started",
"pipelines": [
{
"pipelineReference": {
"referenceName": "demo_pipeline",
"type": "PipelineReference"
},
"parameters": {
"parameter_1": "@trigger().startTime"
}
}
],
"type": "ScheduleTrigger",
"typeProperties": {
"recurrence": {
"frequency": "Minute",
"interval": 15,
"startTime": "2021-03-03T04:38:00Z",
"timeZone": "UTC"
}
}
}
}
在管線中使用觸發程序資訊
若要使用管線中的值,請在管線定義中使用參數 @pipeline().parameters.parameterName,而不是系統變數。
相關內容
如需有關觸發程序的詳細資訊,請參閱管線執行和觸發程序。