使用函式做為事件方格事件的事件處理常式

事件處理程序是 Azure 事件方格 傳送事件以供處理的目的地。 Azure 會自動配置多項服務來處理事件,而 Azure Functions 就是其中之一。

當你使用函式作為事件處理程序時,你會針對每個事件執行自訂程式碼,無需配置或管理伺服器。 例如,事件網格可以將函式作為 反損層 ,在將事件轉發至下游系統前,先轉換或驗證事件。

本文說明了使用函式作為事件處理者的兩種方式,並說明該採用哪一種方法。

若要使用 Azure 中的函式作為事件的處理常式,請遵循下列其中一種方法:

  • 使用 事件網格觸發器。 將 Azure 函式指定為端點類型。 然後指定 function 應用程式和處理事件的函式。
  • 使用 HTTP 觸發器。 將 WebHook 指定為端點類型。 然後指定處理事件的函式網址。

使用第一種方法(事件格觸發器)。 相較於第二種方法,它有以下優點:

  • Event Grid 會自動驗證 Event Grid 觸發程序。 使用一般 HTTP 觸發程序時,您必須自行實作驗證回應。
  • 事件網格會根據該函式能處理事件的感知速率,自動調整將事件傳送到該函數觸發的函式的速率。 此速率匹配功能避免了因函數無法處理事件而產生的傳遞錯誤,因為該函數的事件處理速率會隨時間變化。 若要提高高輸送量下的效率,請在事件訂閱中啟用批次處理。 如需詳細資訊,請參閱啟用批次。

注意

  • 當你使用 Event Grid 觸發器透過 Azure 函式新增事件訂閱時,Event Grid 會利用 Event Grid 服務主體的憑證取得目標函式的存取金鑰。 當你在 Azure 訂閱中註冊事件 Grid 資源提供者時,Event Grid 會接收權限。
  • 如果您使用 Microsoft Entra ID 應用程式來保護 Azure 函式,就必須採用通用的 Webhook 方法,並使用 HTTP 觸發程序。 新增訂閱時,請使用 Azure 函式端點作為 Webhook URL。

教學課程

標題 描述
快速入門:使用函式處理事件 將自訂事件傳送至函式進行處理。
教學課程:將巨量資料串流處理至資料倉儲 當事件中樞建立擷取檔案時,事件方格會將事件傳送至函式應用程式。 應用程式會對「擷取」檔案進行擷取,並將資料遷移到資料倉儲。
教學課程:Azure 服務匯流排與 Azure 事件方格的整合範例 Event Grid 會將訊息從 服務匯流排 主題傳送給函式應用程式和邏輯應用程式。

REST API 範例

以下範例展示了 PUT 操作的請求體,該操作建立以 Azure 函式作為事件處理程序的事件訂閱。 它設定目標函式的資源 ID,並啟用批次處理。

{
    "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 入口網站,可以在建立訂閱時或之後設定每批次的最大事件數量,以及偏好的批次大小(以千位元組為單位)。

使用Azure入口網站、PowerShell、CLI或Resource Manager範本來設定批次設定。

Azure 入口網站

當你在入口網站建立訂閱時,在 「建立事件訂閱 」頁面切換到 「進階功能 」標籤,並設定 每批最大事件 數和 偏好批次大小(以千位元組為單位)。

建立活動訂閱頁面進階功能標籤的截圖,顯示批次設定。

請在事件網格主題頁面的功能標籤中更新現有訂閱的這些值。

事件網格主題頁面功能標籤的截圖,顯示現有訂閱的批次設定。

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 or -PreferredBatchSizeInKiloBytes 參數來設定你的偏好。

有關支援的事件處理器清單,請參閱 事件處理器 條目。