建立自訂事件觸發程序以在 Azure Data Factory 中執行管線
適用於:Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用 (部分機器翻譯)!
Azure Data Factory 中的事件觸發程式可讓您根據數據源中發生的特定事件,自動執行管線。 這是事件驅動架構的重要功能,可啟用實時數據整合和處理。
事件驅動架構是常見的資料整合模式,所涉及的環節包括生產、偵測、取用和事件反應。 資料整合案例通常會要求 Azure Data Factory 客戶在特定事件發生時觸發管線。 Data Factory 與 Azure 事件方格的原生整合現已涵蓋自訂主題。 您可將事件傳送至事件方格主題。 Data Factory 會訂閱主題、接聽,然後觸發對應管線。
本文章中說明的整合,仰賴 Azure 事件方格。 請確認您的訂用帳戶已向事件方格資源提供者註冊。 如需詳細資訊,請參閱資源提供者和類型。 您必須能夠執行 Microsoft.EventGrid/eventSubscriptions/
動作。 此動作是 EventGrid EventSubscription 參與者內建角色的一部分。
重要
如果您在 Azure Synapse Analytics 中使用此功能,請確定您也向 Data Factory 資源提供者註冊您的訂用帳戶。 否則,您會收到一則訊息,指出「建立事件訂閱失敗」。
如果您合併管線參數和自訂事件觸發程序,就可以在管線執行中剖析並參考自訂 data
承載。 由於自訂事件承載中的 data
欄位是格式自由的 JSON 索引鍵/值結構,因此您可以控制事件驅動管線執行。
重要
如果自訂事件承載中遺漏參數化所參考的索引鍵,trigger run
就會失敗。 您會收到一則訊息,說明無法評估運算式,因為屬性 keyName
不存在。 在此情況下,事件不會觸發任何 pipeline run
。
事件和觸發程式使用案例
觸發程式可由各種事件引發,包括:
Blob 建立:將新檔案上傳至指定的容器時。 Blob 已刪除:從容器中移除檔案時。 Blob 已修改:更新現有的檔案時。
您可以使用事件動態控制管線執行。 例如,當新的數據檔上傳至 Azure Blob 儲存體 中的 「傳入」資料夾時,觸發程式可以自動啟動管線來處理數據,確保數據及時整合。
在事件方格中設定自訂主題
若要在 Data Factory 中使用自訂事件觸發程序,您必須先在事件方格中設定自訂主題。
前往事件方格並自行建立主題。 如需如何建立自訂主題的詳細資訊,請參閱事件方格入口網站教學課程和 Azure CLI 教學課程。
注意
工作流程與儲存體事件觸發程序不同。 Data Factory 不會在此處為您設定主題。
Data Factory 預期事件將遵循事件方格事件結構描述。 請確定事件承載具有以下欄位:
[
{
"topic": string,
"subject": string,
"id": string,
"eventType": string,
"eventTime": string,
"data":{
object-unique-to-each-publisher
},
"dataVersion": string,
"metadataVersion": string
}
]
使用 Data Factory 建立自訂事件觸發程序
前往 Data Factory 並登入。
切換至 [編輯] 索引標籤。尋找鉛筆圖示。
選取功能表上的 [觸發程序],然後選取 [新增/編輯]。
在 [新增觸發程序] 頁面上,選取 [選擇觸發程序],然後選取 [+ 新增]。
在 [類型] 底下,選取 [自訂事件]。
從 Azure 訂用帳戶下拉式清單中選取您的自訂主題,或手動輸入事件主題範圍。
注意
若要在 Data Factory 中建立或修改自訂事件觸發程序,您必須使用具有適當 Azure 角色型存取控制 (Azure RBAC) 的 Azure 帳戶。 不需要其他任何權限。 Data Factory 服務準則不需要事件方格的特殊權限。 如需存取控制的詳細資訊,請參閱角色型存取控制一節。
Subject begins with
和Subject ends with
屬性可讓您篩選觸發程序事件。 這兩個屬性皆為選擇性。使用 [+ 新增] 來新增要篩選的事件類型。 自訂事件觸發程序的清單會使用 OR 關聯性。 當自訂事件含符合清單的
eventType
屬性時,就會觸發管線執行。 事件類型不區分大小寫。 例如在下列螢幕擷取畫面中,觸發程序符合所有copycompleted
或copysucceeded
事件,且其主旨的開頭均為「factories」(處理站)。自訂事件觸發程序可以剖析並傳送自訂
data
承載至您的管線。 您可以建立管線參數,然後在 [參數] 頁面上填入值。 使用格式@triggerBody().event.data._keyName_
來剖析資料承載,並將值傳遞至管線參數。如需詳細說明,請參閱:
輸入參數之後,請選取 [確定]。
進階篩選
自訂事件觸發程序支援進階篩選功能,與事件方格進階篩選類似。 這些條件式篩選可讓管線根據事件裝載值進行觸發。 例如,您的事件裝載中可能會有一個名為 [部門] 的欄位,且管線應當僅在 [部門] 等於 [財務] 時才觸發。 您也可以指定複雜的邏輯,例如清單 [1, 2, 3, 4, 5] 中的 [日期] 欄位、不包含在清單 [11, 12] 中的 [月份]欄位,以及 [標籤] 欄位是否包含 [Fiscal Year 2021, FiscalYear2021 或 FY2021]。
目前,自訂事件觸發程序支援事件方格中進階篩選運算子的子集。 支援下列篩選條件:
NumberIn
NumberNotIn
NumberLessThan
NumberGreaterThan
NumberLessThanOrEquals
NumberGreaterThanOrEquals
BoolEquals
StringContains
StringBeginsWith
StringEndsWith
StringIn
StringNotIn
選取 [+ 新增] 以新增篩選條件。
自訂事件觸發程序也遵守與事件方格相同的限制,例如:
- 每個自訂事件觸發程序的所有篩選條件都有 5 個進階篩選條件和 25 個篩選條件值。
- 每個字串值只能有 512 個字元。
in
和not in
運算子的 5 個值。- 索引鍵不能有
.
(點) 字元,例如john.doe@contoso.com
。 目前,索引鍵中不支援逸出字元。 - 相同的索引鍵可以用在多個篩選中。
Data Factory 依賴最新正式發行的事件方格 API 版本。 隨著新的 API 版本進入 GA 階段,Data Factory 也會進一步支援更進階的篩選運算子。
JSON 結構描述
下表提供與自訂事件觸發程序相關的結構描述元素概觀。
JSON 元素 | 描述 | 類型 | 允許的值 | 必要 |
---|---|---|---|---|
scope |
事件方格主題的 Azure Resource Manager 資源識別碼。 | String | Azure Resource Manager 識別碼 | 是。 |
events |
會導致引發此觸發程序的事件類型。 | 字串陣列 | 是,預計至少會有一個值。 | |
subjectBeginsWith |
subject 欄位必須以提供的模式作開頭,才能啟動觸發程序。 例如,「factories」(處理站) 只會針對開頭為「factories」的事件主旨啟動觸發程序。 |
String | 否。 | |
subjectEndsWith |
subject 欄位必須以提供的模式作結尾,才能啟動觸發程序。 |
String | 否。 | |
advancedFilters |
JSON Blob 的清單,每個皆指定了篩選條件。 每個 Blob 都會指定 key 、operatorType 和 values 。 |
JSON Blob 清單 | 否。 |
角色型存取控制
Data Factory 使用 Azure RBAC 來禁止未經授權的存取。 若要正常運作,Data Factory 需要下列存取權:
- 接聽事件。
- 訂閱來自事件的更新。
- 觸發連結至自訂事件的管線。
若要成功建立或更新自訂事件觸發程序,您必須使用具有適當存取權的 Azure 帳戶登入 Data Factory。 否則,該作業會失敗且有訊息「拒絕存取」。
Data Factory 不需要事件方格執行個體的特殊權限。 您也不需要將特殊 Azure RBAC 角色權限指派給該作業的 Data Factory 服務主體。
具體而言,您需要 /subscriptions/####/resourceGroups//####/providers/Microsoft.EventGrid/topics/someTopics
上的 Microsoft.EventGrid/EventSubscriptions/Write
權限。
- 當您在資料處理站中 (例如在開發環境中) 編寫時,登入的 Azure 帳戶必須具有上述權限。
- 當您透過持續整合與持續傳遞發佈時,用來將 Azure Resource Manager 範本發佈至測試或生產處理站的帳戶必須具有上述權限。
相關內容
- 取得觸發程序執行的詳細資訊。
- 了解如何在管線執行中參考觸發程序中繼資料。