使用函式作為事件方格事件的事件處理常式
事件處理常式是傳送事件的位置。 處理常式會採取相關動作來處理事件。 有幾項 Azure 服務已自動設定為會處理事件,Azure Functions 是其中之一。
若要使用 Azure 中的函式作為事件的處理常式,請遵循下列其中一種方法:
- 使用事件方格觸發程序。 將 Azure 函式指定為端點類型。 然後,指定函數應用程式以及將處理事件的函式。
- 使用 HTTP 觸發程序。 將 WebHook 指定為端點類型。 然後,為將處理事件的函式指定 URL。
建議您使用第一種方法 (事件方格觸發程式),因為其具有第二種方法所沒有的下列優點:
- 事件方格會自動驗證事件方格觸發程序。 若要使用 HTTP 觸發程序,您必須自行實作驗證回應。
- 事件方格會根據函式可以處理事件的認知速率,自動調整事件傳遞至事件方格事件所觸發函式的速率。 此速率比對功能可防止傳遞錯誤,而這些錯誤源自函式無法處理事件,因為函式的事件處理速率可能會隨著時間而有所不同。 若要提升高輸送量的效率,請在事件訂用帳戶上啟用批次。 如需詳細資訊,請參閱啟用批次。
注意
- 當您以事件方格觸發程序身分使用 Azure 函式新增事件訂閱時,事件方格會使用事件方格服務主體的認證擷取目標函式的存取金鑰。 在其 Azure 訂用帳戶中註冊事件方格資源提供者時,會授與事件方格權限。
- 如果您使用 Microsoft Entra ID 應用程式來保護 Azure 函式,則必須採用一般 Webhook 方法,使用 HTTP 觸發程序。 新增訂閱時,請使用 Azure 函式端點作為 Webhook URL。
教學課程
標題 | 描述 |
---|---|
快速入門:使用函式處理事件 | 將自訂事件傳送至函式進行處理。 |
教學課程:將巨量資料串流處理至資料倉儲 | 當事件中樞建立「擷取」檔案時,事件方格會傳送一個事件至函式應用程式。 應用程式會對「擷取」檔案進行擷取,並將資料遷移到資料倉儲。 |
教學課程:Azure 服務匯流排與 Azure 事件方格的整合範例 | 事件方格會將訊息從服務匯流排主題傳送至函式應用程式和邏輯應用程式。 |
REST 範例 (用於 PUT)
{
"properties":
{
"destination":
{
"endpointType": "AzureFunction",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.Web/sites/<FUNCTION APP NAME>/functions/<FUNCTION NAME>",
"maxEventsPerBatch": 10,
"preferredBatchSizeInKilobytes": 64
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
啟用批次
如需更高的輸送量,請在訂用帳戶上啟用批次。 如果您使用 Azure 入口網站,則可以在建立訂用帳戶時或在建立之後,設定每個批次的事件數目上限和偏好的批次大小 (以 KB 為單位)。
您可以使用 Azure 入口網站、PowerShell、CLI 或 Resource Manager 範本來設定批次設定。
Azure 入口網站
在 UI 中建立訂用帳戶時,請在 [建立事件訂閱] 頁面上,切換至 [進階功能] 索引標籤,然後設定 [每個批次的事件數上限] 和 [偏好的批次大小 (KB)] 的值。
您可以在 [事件方格主題] 頁面的 [功能] 索引標籤上,更新現有訂用帳戶的這些值。
Azure Resource Manager 範本
您可以在 Azure Resource Manager 範本中設定 maxEventsPerBatch 和 preferredBatchSizeInKilobytes 如需詳細資訊,請參閱 Microsoft.EventGrid eventSubscriptions 範本參考。
Azure CLI
您可以使用 az eventgrid event-subscription create
命令,並使用下列參數來設定批次相關設定:--max-events-per-batch
或 --preferred-batch-size-in-kilobytes
。
Azure PowerShell
您可以使用 New-AzEventGridSubscription 或 Update-AzEventGridSubscription Cmdlet,來設定批次相關設定,方法是使用下列參數:-MaxEventsPerBatch
或 -PreferredBatchSizeInKiloBytes
。
注意
當您使用事件方格觸發程序時,事件方格服務會擷取目標 Azure 函式的用戶端密碼,並使用其將事件傳遞至 Azure 函式。 如果您使用 Microsoft Entra 應用程式來保護 Azure 函式,則必須採用一般 Web 攔截方法,並使用 HTTP 觸發程式。
下一步
如需支援的事件處理常式清單,請參閱事件處理常式一文。