Azure 事件方格的推送傳遞 - 概念

本文說明與推送傳遞相關的主要事件方格概念。

注意

如需與使用命名空間的新資源模型相關的事件方格概念,請參閱這篇概念文章。

事件

事件是完整說明系統中發生內容的最小量資訊。 每個事件都有一般資訊,例如:事件的 source、事件發生的 time,以及唯一識別碼。 每個事件也有只會與特定事件類型相關的特定資訊。 例如,在 Azure 儲存體中建立新檔案的相關事件含有該檔案相關詳細資料,例如 lastTimeModified 值。 事件中樞事件含有「擷取」檔案的 URL。 「訂單」微服務中新訂單的相關事件可能會有 orderId 屬性,以及訂單狀態表示法的 URL 屬性。

雲端事件

事件方格會使用 CNCF 的開放標準 CloudEvents 1.0 規格,其搭配使用 HTTP 通訊協定繫結JSON 格式。 CloudEvents 是可延伸事件規格,其中包含特定需求的已記載延伸模組。 使用事件方格時,CloudEvents 是慣用的事件格式,因為其記載良好的使用案例 (傳輸事件的模式事件格式等)、擴充性,以及改善的互通性。 CloudEvents 藉由提供用以發佈和取用事件的常見事件格式,改善互通性。 允許路由傳送和處理事件的統一工具和標準方式。

下表顯示目前支援的 CloudEvents 規格:

CloudEvents 內容模式 是否支援?
結構化 JSON Yes
二進位 No

允許的事件大小上限是 1 MB。 超過 64 KB 的事件會以 64 KB 遞增計費。 如需了解隨事件傳送的屬性,請參閱 CloudEvents 結構描述

其他格式

事件方格也支援系統事件發行者的專屬事件方格結構描述格式。 您可以設定事件方格使用 CloudEvents 格式傳遞事件

發行者

發行者是指將事件傳送至事件方格的應用程式。 可以是產生事件所在的相同應用程式,事件來源。 Azure 服務會將事件發佈至事件方格,以在其服務中宣佈發生事件。 您可以從您自己的應用程式發行事件。 裝載 Azure 外部服務的組織也可以透過事件方格發佈事件。

事件來源

事件來源是事件發生的位置。 每個事件來源都與一或多個事件類型相關。 例如,Azure 儲存體是 Blob 建立事件的事件來源。 IoT 中樞是裝置建立事件的事件來源。 您的應用程式是您定義之自訂事件本身的事件來源。 事件來源負責將事件傳送至事件方格。

合作夥伴

合作夥伴是一種發行者,會從自己的系統傳送事件給 Azure 客戶。 合作夥伴通常是與 Azure Event Grid 整合的 SaaS 或 ERP 提供者,可協助客戶實現跨平台的事件驅動使用案例。 合作夥伴不僅可以將事件發行至 Azure Event Grid,也可以從中接收事件。 這些功能是透過合作夥伴事件功能來啟用。

主題

主題會保存已發佈至事件方格的事件。 您通常會針對相關事件的集合使用主題資源。 若要回應某些類型的事件,訂閱者 (Azure 服務或其他應用程式) 會決定要訂閱的主題。 有數種主題:自訂主題、系統主題和合作夥伴主題。

自訂主題

自訂主題也是與您的應用程式搭配使用的主題。 它們是專為建置自訂應用程式事件驅動整合而設計的第一種主題。 作為獨立資源,它們會公開自己的事件發佈目標端點。

自訂主題支援推送傳遞。 請參閱使用提取或推送傳遞的時機,以協助您決定推送傳遞是否為符合您需求的正確方法。 您可能也想要參考自訂主題一文。

系統主題

系統主題是由 Azure 儲存體、Azure 事件中樞、Azure 服務匯流排等 Azure 服務提供的內建主題。 您可以在 Azure 訂閱帳戶中建立系統主題並加以訂閱。 如需詳細資訊,請參閱系統主題概觀

合作夥伴主題

合作夥伴主題是一種用於訂閱合作夥伴發行事件的主題。 啟用這類整合的功能稱為合作夥伴事件。 這類整合讓您能夠取得提供合作夥伴系統事件的合作夥伴主題。 如同其他主題一樣,您擁有合作夥伴主題後,也可以建立事件訂閱帳戶

事件訂閱

注意

如需命名空間主題下事件訂閱的詳細資訊,請參閱這篇概念文章。

訂閱會告知事件方格您有興趣接收的主題事件。 您建立訂閱時,可提供處理事件的端點。 端點可以是 Webhook 或 Azure 服務資源。 您可以篩選傳送至端點的事件。 舉例來說,您可以依事件類型或事件主旨進行篩選。 如需詳細資訊,請參閱事件訂閱CloudEvents 架構。 自訂、系統和合作夥伴主題的事件訂閱,以及網域具有相同的資源屬性。

如需建立自訂、系統和合作夥伴主題以及網域的訂閱範例,請參閱:

如需取得目前 Event Grid 訂閱的資訊,請參閱查詢事件方格訂用帳戶

事件訂閱過期

您可以為與自訂、系統、合作夥伴和網域主題相關聯的事件訂閱以及網域訂閱設定到期時間。 事件訂閱會在該日期之後自動過期。 設定事件訂閱的到期日,其只需要有限的時間,您無須擔心清理這些訂閱的工作。 例如,建立事件訂閱來測試案例時,您可能想要設定到期。

如需設定到期的範例,請參閱搭配進階篩選進行訂閱

事件處理常式

從事件方格的觀點而言,當使用推送傳遞時,事件處理常式是傳送事件的位置。 處理常式會採取進一步動作來處理事件。 當使用推送傳遞時,事件方格支援數個處理常式類型。 您可以使用支援的 Azure 服務或您自己的 Webhook 作為處理常式。 依據處理常式的類型,事件方格會遵循不同機制來保證事件的傳遞。 針對 HTTP Webhook 事件處理常式,在處理常式傳回 200 – OK 的狀態碼之前,會一直重試事件。 針對 Azure 儲存體佇列,在佇列服務成功處理推送至佇列的訊息之前,會一直重試事件。

若需了解事件如何傳遞至支援的 Event Grid 處理常式,請參閱 Azure Event Grid 中的事件處理常式

安全性

事件方格提供訂閱主題以及將事件發佈至主題時的安全性。 訂閱時,您必須擁有事件方格主題的適當權限。 如果使用推送傳遞,事件處理常式是 Azure 服務,而受控識別則會用來驗證事件方格,受控識別應該具有適當的 RBAC 角色。 例如,如果將事件傳送至事件中樞,事件訂閱中使用的受控識別應該是事件中樞資料傳送者角色的成員。 發佈時,您必須擁有主題的 SAS 權杖或金鑰驗證。 如需詳細資訊,請參閱 Event Grid 安全性和驗證

事件傳遞

如果在使用推送傳遞時,事件方格無法確認訂閱者端點是否收到事件,則會重新傳遞事件。 如需詳細資訊,請參閱 Event Grid 訊息傳遞與重試

批次處理

使用自訂主題時,事件必須一律發佈在陣列中。 這可以是低輸送量案例的批次。

內嵌事件類型定義

如果您是合作夥伴,可以在建立通道時定義可供客戶使用的事件類型。 使用內嵌事件類型定義,訂閱者可以在設定事件訂閱時輕鬆地依事件類型篩選事件。

可用性區域

每個可容忍本機失敗的 Azure 區域中,Azure 可用性區域的實際位置都不同。 其透過高效能網路進行連線,而往返延遲小於 2 毫秒。 每個可用性區域都是由一或多個配備獨立電力、冷卻系統和網路基礎結構的資料中心所組成。 如果其中一個區域受到影響,則其餘兩個區域會支援區域服務、容量和高可用性。 如需可用性區域的詳細資訊,請參閱區域和可用性區域

下一步