管線執行中的參考觸發程序中繼資料

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用

本文說明如何在管線執行中使用觸發程序中繼資料,例如觸發程序開始時間。

管線有時需要了解並從叫用它的觸發程序中讀取中繼資料。 例如,使用輪轉視窗觸發程序執行,根據視窗開始和結束時間,管線會處理不同的資料配量或資料夾。 在 Azure Data Factory 中,我們使用參數化和系統變數,將中繼資料從觸發程序傳遞至管線。

此模式特別適用於輪轉視窗觸發程序 (其中觸發程序會提供視窗開始和結束時間) 以及自訂事件觸發程序 (其中觸發程序剖析和處理值在自訂定義的資料欄位中很重要)。

注意

不同的觸發程序類型提供不同的中繼資料資訊。 如需詳細資訊,請參閱系統變數

Data Factory UI

本節說明如何在 Azure Data Factory 使用者介面內,將中繼資料資訊從觸發程序傳遞至管線。

  1. 前往製作畫布並編輯管線

  2. 在空白畫布上選取以顯示管線設定。 請勿選取任何活動。 您可能需要從畫布底部提取設定面板,因為它可能已摺疊

  3. 選取 [參數] 區段,然後選取 [+ 新增] 以新增參數

    Screen shot of pipeline setting showing how to define parameters in pipeline.

  4. 按一下 [+ 觸發程序],將觸發程序新增至管線。

  5. 建立或附加觸發程序至管線,然後選取 [確定]

  6. 選取 [確定] 之後,會顯示另一個 [新增觸發程式] 頁面,其中包含為管線指定的參數清單,如下列螢幕擷取畫面所示。 在該頁面上,填入每個參數的觸發程序中繼資料。 使用系統變數中定義的格式來擷取觸發程序資訊。 您不需要填入所有參數的資訊,只需要填入假設觸發程序中繼資料值的參數。 例如,我們會在這裡將觸發程序執行開始時間指派為 parameter_1

    Screenshot of trigger definition page showing how to pass trigger information to pipeline parameters.

  7. 若要使用管線中的值,請在管線定義中使用參數 @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而不是系統變數。

如需有關觸發程序的詳細資訊,請參閱管線執行和觸發程序