適用於 Azure Functions 的 Azure 事件方格繫結
此參考示範如何使用 Azure Functions 觸發程式和系結來連線到 Azure 事件方格。
事件方格 (Event Grid) 是一項 Azure 服務,它會傳送 HTTP 要求以通知您發佈者中所發生的事件。 發行者是產生事件的服務或資源。 例如,Azure Blob 儲存體帳戶即為發行者,而 Blob 的上傳或刪除是事件。 部分 Azure 服務內建有將事件發佈至 Event Grid 的支援。
事件處理常式會接收及處理事件。 Azure Functions 是數個有內建 Event Grid 事件處理支援的 Azure 服務之一。 Azure Functions 會提供事件方格觸發程序,從事件網格接收到事件時,該處發程序會叫用函式。 類似的輸出繫結可用於將事件從函式傳送至事件格線自訂主題。
您也可以使用 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 建立並使用 EventGridPublisherClient 與其他類型。 如需使用相依性插入從 Azure SDK 建立用戶端類型的範例,請參閱 註冊 Azure 用戶端 。
host.json 設定
事件方格觸發程式會使用 Webhook HTTP 要求,其可以使用與 HTTP 觸發程式相同的host.json設定來設定。
下一步
- 如果您有問題,請在這裡提交問題給小組
- 事件方格觸發程序
- 事件方格輸出系結
- 分派 Event Grid 事件時執行函式
- 分派事件方格事件