適用於 Azure Functions 的 Azure 事件方格繫結

此參考會示範如何使用 Azure Functions 觸發程式和系結連線到 Azure 事件方格。

事件方格是一項 Azure 服務,會傳送 HTTP 要求,通知您發行者中發生的事件。 發行者是源自事件的服務或資源。 例如,Azure Blob 記憶體帳戶是發行者,而 Blob 上傳或刪除是事件。 某些 Azure 服務內建支援將事件發佈至事件方格

事件處理程式會接收和處理事件。 Azure Functions 是數 個 Azure 服務之一,內建支持處理事件方格事件。 函式會提供事件方格觸發程式,其會在從事件方格接收事件時叫用函式。 類似的輸出系結可用來將事件從函式傳送至 事件方格自定義主題

您也可以使用 HTTP 觸發程式來處理事件方格事件。 若要深入瞭解,請參閱 接收 HTTP 端點的事件。 建議您透過 HTTP 觸發程式使用事件方格觸發程式。

動作 類型
分派 Event Grid 事件時執行函式 觸發程序
傳送事件方格事件 輸出系結
控制傳回的 HTTP 狀態代碼 HTTP 端點

安裝擴充功能

您安裝的延伸模組 NuGet 套件取決於您在函式應用程式中使用的 C# 模式:

函式會在隔離的 C# 背景工作進程中執行。 若要深入瞭解,請參閱 在隔離背景工作程序中執行 C# Azure Functions 的指南。

擴充功能的功能會根據擴充功能版本而有所不同:

藉由安裝 NuGet 套件 3.x 版,將擴充功能新增至您的專案。

安裝套件組合

事件方格延伸模組是延伸模組套件組合的一部分,其指定於您的host.json項目檔中。 您可能需要修改此套件組合來變更事件方格系結的版本,或尚未安裝套件組合。 若要深入瞭解,請參閱 延伸模組套件組合

您可以從擴充功能套件組合 v3 新增此版本的延伸模組,方法是在檔案中 host.json 新增或取代下列組態:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.3.0, 4.0.0)"
    }
}

若要深入瞭解,請參閱 更新延伸模組

繫結型別

.NET 支援的系結類型取決於延伸模組版本和 C# 執行模式,這可以是下列其中一項:

已編譯 C# 函式的隔離背景工作進程類別庫會在與運行時間隔離的進程中執行。

選擇版本以查看模式和版本的系結類型詳細數據。

隔離的背景工作進程會根據下表支持參數類型。 支援從 Azure.Messaging 系結至 Stream、 和 型別,目前為預覽狀態。

事件方格觸發程式

當您想要讓函式處理單一事件時,Event Grid 觸發程式可以繫結至下列類型:

類型 描述
JSON 可序列化型別 函式會嘗試將事件的 JSON 數據還原串行化為純舊 CLR 物件 (POCO) 類型。
string 事件做為字串。
BinaryData1 事件訊息的位元組。
CloudEvent1 事件物件。 當事件方格設定為使用 CloudEvents 架構傳遞時,請使用 。
EventGridEvent1 事件物件。 當事件方格設定為使用事件方格架構傳遞時,請使用 。

當您想要讓函式處理一批事件時,Event Grid 觸發程式可以繫結至下列類型:

類型 描述
CloudEvent[]1
EventGridEvent[]1
string[],
BinaryData[]1
來自批次的事件陣列。 每個專案都代表一個事件。

1 若要使用這些類型,您必須參考 Microsoft.Azure.Functions.Worker.Extensions.EventGrid 3.3.0 或更新版本 ,以及 SDK 類型系結的常見相依性。

事件方格輸出系結

當您想要讓函式撰寫單一事件時,Event Grid 輸出系結可以繫結至下列類型:

類型 描述
string 事件做為字串。
byte[] 事件訊息的位元組。
JSON 可序列化型別 物件,表示 JSON 事件。 函式會嘗試將一般舊的CLR物件 (POCO) 類型串行化為 JSON 數據。

當您想要函式寫入多個事件時,Event Grid 輸出系結可以繫結至下列類型:

類型 描述
T[] 其中 T 是其中一個單一事件類型 包含多個事件的陣列。 每個專案都代表一個事件。

針對其他輸出案例,請直接從 Azure.Messaging.EventGrid 建立和使用類型。

host.json 設定

事件方格觸發程式會使用 Webhook HTTP 要求,其可以使用與 HTTP 觸發程式相同的host.json設定來設定。

下一步