管線執行中的參考觸發程序中繼資料
適用於:Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用 (部分機器翻譯)!
本文說明如何在管線執行中使用觸發程序中繼資料,例如觸發程序開始時間。
管線有時需要了解並從叫用它的觸發程序中讀取中繼資料。 例如,使用輪轉視窗觸發程序執行,根據視窗開始和結束時間,管線會處理不同的資料配量或資料夾。 在 Azure Data Factory 中,我們使用參數化和系統變數,將中繼資料從觸發程序傳遞至管線。
此模式特別適用於輪轉視窗觸發程序 (其中觸發程序會提供視窗開始和結束時間) 以及自訂事件觸發程序 (其中觸發程序剖析和處理值在自訂定義的資料欄位中很重要)。
注意
不同的觸發程序類型提供不同的中繼資料資訊。 如需詳細資訊,請參閱系統變數。
Data Factory UI
本節說明如何在 Data Factory 使用者介面 (UI) 內,將中繼資料資訊從觸發程序傳遞至管線。
前往製作畫布並編輯管線。
選取空白畫布以顯示管線設定。 請勿選取任何活動。 您可能需要從畫布底部提取設定面板,因為它可能已摺疊。
選取 [參數] 索引標籤,然後選取 [+ 新增] 以新增參數。
選取 [+ 觸發程序],將觸發程序新增至管線。
建立或附加觸發程序至管線,然後選取 [確定]。
選取 [確定] 之後,會顯示另一個 [新增觸發程序] 頁面,其中包含該管線的指定參數清單,如下列螢幕擷取畫面所示。 在該頁面上,填入每個參數的觸發程序中繼資料。 使用系統變數中定義的格式來擷取觸發程序資訊。 您不需要填入所有參數的資訊。 只要填入要假設觸發程序中繼資料值的資訊即可。 例如,我們會在這裡將觸發程序執行開始時間指派為
parameter_1
。若要使用管線中的值,請在管線定義中使用參數,例如
@pipeline().parameters.parameterName
,而不是系統變數。 例如在此案例中,若要讀取觸發程序開始時間,我們會參考@pipeline().parameters.parameter_1
。
JSON 結構描述
若要將觸發程序資訊傳遞至管線執行,觸發程序和管線 JSON 都必須使用 parameters
區段來更新。
管線定義
在 properties
區段底下,將參數定義新增至 parameters
區段。
{
"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"
}
觸發程序定義
在 pipelines
區段底下的 parameters
區段中指派參數值。 您不需要填入所有參數的資訊。 只要填入要假設觸發程序中繼資料值的資訊即可。
{
"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
,而不是系統變數。
相關內容
如需觸發程序的詳細資訊,請參閱管線執行和觸發程序。