Azure Data Factory 中的 Webhook 活動

適用於:Azure Data Factory Azure Synapse Analytics

提示

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

Webhook 活動可以透過自訂程式碼控制管線的執行。 透過 Webhook 活動,程式碼可以呼叫端點,並將回呼 URL 傳遞給這個端點。 管線執行會等候回呼叫用,然後再繼續進行下一個活動。

重要

WebHook 活動現在可讓您將錯誤狀態和自訂訊息呈現回活動與管線。 將 reportStatusOnCallBack 設定為 true,並在回呼承載中包含 StatusCodeError。 如需詳細資訊,請參閱其他注意事項一節。

使用 UI 建立 Webhook 活動

若要在管線中使用 Webhook 活動,請完成下列步驟:

  1. 在 [管線活動] 窗格中搜尋 Webhook,然後將 Webhook 活動拖曳至管線畫布。

  2. 在畫布上選取新的 Webhook 活動 (如未選取) 和其設定索引標籤以編輯詳細資料。

    Shows the UI for a Webhook activity.

  3. 指定 Webhook 的 URL,可以是字面上的 URL 字串,或是任何動態運算式、函式系統變數其他活動的輸出的組合。 提供其他要與要求一併提交的詳細資料。

  4. 使用活動的輸出作為任何其他活動的輸入,並用於參考目標活動支援的輸出隨處動態內容。

語法


{
    "name": "MyWebHookActivity",
    "type": "WebHook",
    "typeProperties": {
        "method": "POST",
        "url": "<URLEndpoint>",
        "headers": {
            "Content-Type": "application/json"
        },
        "body": {
            "key": "value"
        },
        "timeout": "00:10:00",
        "reportStatusOnCallBack": false,
        "authentication": {
            "type": "ClientCertificate",
            "pfx": "****",
            "password": "****"
        }
    }
}

類型屬性

屬性 說明 允許的值 必要
name Webhook 活動的名稱。 String Yes
type 必須設定為 "WebHook"。 String Yes
method 目標端點的 REST API 方法。 字串。 支援的類型為 "POST"。 Yes
url 目標端點和路徑。 字串或 resultType 值為字串的運算式。 Yes
headers 傳送至要求的標頭。 以下是在要求上設定語言和類型的範例:"headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" } 字串或 resultType 值為字串的運算式。 是。 需要 Content-Type 標頭,例如 "headers":{ "Content-Type":"application/json"}
body 代表傳送至端點的承載。 有效的 JSON 或 resultType 值為 JSON 的運算式。 如需要求承載的結構描述,請參閱要求承載結構描述 Yes
驗證 用來呼叫端點的驗證方法。 支援的類型為 "Basic" 和 "ClientCertificate"。 如需詳細資訊,請參閱驗證。 如果不需要驗證,請排除這個屬性。 字串或 resultType 值為字串的運算式。 No
timeout 活動需要等候多久時間叫用 callBackUri 所指定的回呼。 預設值為 10 分鐘 ("00:10:00")。 值具有 TimeSpan 格式 d.hh:mm:ss String No
回呼時報告狀態 讓使用者報告 Webhook 活動的失敗狀態。 布林值 No

驗證

Webhook 活動支援下列驗證類型。

如果不需要驗證,請勿包含 authentication 屬性。

基本

指定要搭配基本驗證使用的使用者名稱和密碼。

"authentication":{
   "type":"Basic",
   "username":"****",
   "password":"****"
}

用戶端憑證

指定以 Base64 編碼的 PFX 檔案和密碼內容。

"authentication":{
   "type":"ClientCertificate",
   "pfx":"****",
   "password":"****"
}

受控識別

使用資料處理站或 Synapse 工作區的受控識別,指定要求存取權杖的資源 URI。 若要呼叫 Azure 資源管理 API,請使用 https://management.azure.com/。 如需受控識別如何運作的詳細資訊,請參閱Azure 資源的受控識別概觀

"authentication": {
    "type": "MSI",
    "resource": "https://management.azure.com/"
}

注意

如果服務使用 Git 存放庫進行設定,您必須將認證儲存在 Azure Key Vault,以使用基本或用戶端憑證驗證。 服務無法將密碼儲存在 Git l 中。

其他注意事項

服務會在傳送至 URL 端點的本體中傳遞額外的屬性 callBackUri。 服務預期會在指定的逾時值之前叫用此 URI。 如果未叫用 URI,活動會失敗,狀態為 "TimedOut"。

呼叫自訂端點失敗時,Webhook 活動也會失敗。 任何錯誤訊息都可以新增至回呼本文,並在稍後的活動中使用。

對於每個 REST API 呼叫,如果端點在一分鐘內沒有回應,用戶端就會逾時。 此行為是標準 HTTP 最佳做法。 若要修正此問題,請實作 202 模式。 在目前的情況下,端點會傳回 202 (已接受) 和用戶端輪詢。

要求的一分鐘逾時與活動逾時無關。 後者用來等候 callbackUri 所指定的回呼。

傳回至回呼 URI 的本文必須是有效的 JSON。 將 Content-Type 標頭設定為 application/json

當使用 [回呼時報告狀態] 屬性時,您必須在進行回呼時,將下列程式碼新增至本文:

{
    "Output": {
        // output object is used in activity output
        "testProp": "testPropValue"
    },
    "Error": {
        // Optional, set it when you want to fail the activity
        "ErrorCode": "testErrorCode",
        "Message": "error message to show in activity error"
    },
    "StatusCode": "403" // when status code is >=400, activity is marked as failed
}

請參閱下列支援的控制流程活動: