Kubernetes 上的事件方格 - 概念

本文描述具有 Azure Arc (預覽版) 的 Kubernetes 上的事件方格主要概念。

重要

具有 Azure Arc 的 Kubernetes 上的事件方格目前處於公開預覽狀態。 此預覽版本是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

事件

事件是一種資料記錄,宣告軟體系統作業的事實。 一般而言,事件會因為系統引發或觀察到的訊號而宣告狀態變更。 事件包含兩種型別的資訊:

Kubernetes 上的事件方格支援CloudEvents (英文) 結構描述規格。 以下是使用 CloudEvents 結構描述的事件範例。 事件方格支援大小上限為 1 MB 的事件。

[{
       "specVersion": "1.0",
       "type" : "orderCreated",
       "source": "myCompanyName/us/webCommerceChannel/myOnlineCommerceSiteBrandName",
       "id" : "eventId-n",
       "time" : "2020-12-25T20:54:07+00:00",
       "subject" : "account/acct-123224/order/o-123456",
       "dataSchema" : "1.0",
       "data" : {
          "orderId" : "123",
          "orderType" : "PO",
          "reference" : "https://www.myCompanyName.com/orders/123"
      }
}]

來源

來源屬性描述發生事件的內容。 來源可能是事件發生的原因, 不過針對某些案例,也有由產生者建立並發佈的事件, 而且這些產生者與來源不同。 為了方便理解,本文假設來源就是事件的產生者。

每個事件來源都會產生一或多種類型的事件。 作為事件來源,應用程式會定義一組相關事件來宣告其狀態變更。 每個事件都有通用資訊,例如事件來源、事件發生的時間以及唯一識別碼。 每個事件也有只與特定事件類型相關的特定資訊。 目前在預覽版支援最大 1 MB 的事件。

如需了解事件中包含的屬性,請參閱 CloudEvents 結構描述

發行者

事件發行者是將事件傳送至事件方格,以將之傳遞至事件訂閱者的應用程式或系統。

主題

主題是一種輸入通道,可公開發行者將事件傳送至事件方格的端點。

主題可充當相關事件的集合。 您可以為每個類別的相關事件建立主題, 針對某些案例,來源可用來將事件組織成類別,因為來源通常會有一組密切相關的事件類型 (「MyApp.OrderCreated」、「MyApp.OderDeleted」、「MyApp.OrderRejected」等)。

請考慮使用應用程式來傳送與管理使用者帳戶和處理訂單有關的事件。 事件訂閱者通常不太會想同時取用兩種類別的事件。 建立兩個自訂主題,並讓事件處理常式訂閱其感興趣的自訂主題。 針對小型解決方案,您可能會偏好將所有事件傳送至單一主題。

事件訂閱者

事件訂閱者是微服務之類的軟體系統,會將端點公開給事件方格傳遞事件的對象。

事件訂閱

事件訂閱會通知事件方格您有興趣接收的主題事件 (事件篩選),以及傳送事件的目的地 (事件路由)。 建立事件訂閱時,系統會要求您提供處理事件的端點。 您可以在事件訂閱上設定篩選子句,藉此挑選欲傳遞至您端點的事件。

事件處理常式

事件處理常式是公開事件傳送端點的軟體系統。 處理常式會接收事件,並採取動作來處理事件。 事件方格支援數個處理常式類型。 作為處理常式,您可以使用裝載在 Kubernetes 或 Azure 上的受支援 Azure 服務,或公開 Webhook (端點) 的個人專屬解決方案,裝載於何處皆可。 依據處理常式的類型,事件方格會遵循不同機制來保證事件的傳遞。 如果目的地事件處理常式是 HTTP Webhook,則會重試事件,直到處理常式傳回的狀態碼為 200 - 確定。 如需詳細資訊,請參閱事件處理常式

SAS 驗證

Kubernetes 上的事件方格提供 SAS 金鑰型驗證,以將事件發佈至主題。

事件傳遞

Kubernetes 上的事件方格提供可靠的傳遞和重試機制。 若事件方格無法確認事件處理常式端點收到的事件,則會重新傳遞事件。 如需詳細資訊,請參閱 Event Grid 訊息傳遞與重試

批次事件發佈

使用主題時,事件必須一律發佈在陣列中。 對於低輸送量情節,陣列只會有一個事件。 針對大量使用案例,建議您在每次發佈時一併批次處理數個事件,以達到更高的效率。 批次最多可達 1 MB。 每個事件仍不應大於 1 MB。 如需詳細資訊,請參閱批次事件傳遞

Kubernetes 上的事件方格元件

  • 事件方格運算子會執行運算子模式 (英文)。 該功能會監看事件方格資源的狀態變更,了解控制平面對 Kubernetes API 伺服器提出要求的結果。 若有要求影響到任何事件方格資源的狀態,則事件方格運算子會與事件方格訊息代理程式同步處理該狀態。

  • 事件方格訊息代理程式兼具控制平面和資料平面作業功能。

    控制平面服務會將事件方格的狀態帶入事件方格運算子表示的預期狀態。 例如,要求建立新主題時,這項功能會滿足該要求,並更新服務中繼資料。

    資料平面服務會提供所有事件發佈要求,並將事件傳遞至事件訂閱設定的目的地。

下一步

若要開始使用,請參閱建立主題和訂閱