什麼是 Azure 事件方格?
Azure 事件方格是高度可調整且完全受控的 Pub Sub 訊息散發服務,可使用 MQTT 和 HTTP 通訊協定提供彈性的訊息使用量模式。 透過 Azure 事件方格,您可以使用裝置資料建置資料管線、整合應用程式,以及建置事件驅動的無伺服器結構。
事件方格可讓用戶端透過 MQTT v3.1.1 和 v5.0 通訊協定發佈和訂閱訊息,以支援物聯網 (IoT) 解決方案。 透過 HTTP,事件方格可讓您建置事件驅動解決方案,讓發行者服務向訂閱者應用程式宣告其系統狀態變更 (事件)。 事件方格可以設定為將事件傳送給訂閱者 (推送傳遞),或訂閱者可以連線到事件方格以讀取事件 (提取傳遞)。 事件方格支援 CloudEvents 1.0 規格,以提供跨系統的互通性。
核心功能
以下是 Azure 事件方格 的兩個主要功能:
MQTT 傳訊。 IoT 裝置和應用程式可以透過 MQTT 彼此通訊。 事件方格也可用來將 MQTT 訊息路由傳送至 Azure 服務或自訂端點,以進一步進行資料分析、視覺化或儲存。 與 Azure 服務的整合可讓您建置資料管線,以從 IoT 裝置擷取資料開始。
使用推送和提取傳遞模式的資料散發。 在資料管線中的任何點,HTTP 應用程式都可以使用推送或提取 API 來取用訊息。 數據源可能包含 MQTT 用戶端的數據,但也包含透過 HTTP 傳送其事件的下列數據來源:
- Azure 服務
- 您的自訂應用程式
- 外部合作夥伴 (SaaS) 系統
事件方格的推送傳遞機制可將資料傳送至目的地,包含您自己的應用程式 Webhook 和 Azure 服務。 讓我們詳細查看這兩個功能:
MQTT 傳訊
事件方格可讓您的用戶端使用發佈-訂閱傳訊模型以自訂 MQTT 主題名稱進行通訊。 事件方格支援透過 MQTT v3.1.1、透過 WebSocket 的 MQTT v3.1.1、MQTT v5 和透過 WebSockets 的 MQTT v5 發佈和訂閱訊息的用戶端。 事件方格可讓您將 MQTT 訊息傳送至雲端,以進行資料分析、儲存和視覺化,以及其他使用案例。
事件方格會與 Azure IoT 作業 整合,透過事件方格在雲端中的 MQTT 訊息代理程式功能,在邊緣橋接其 MQTT 訊息代理程式功能。 Azure IoT MQTT 訊息代理程式是新的分散式 MQTT 訊息代理程式,可用於邊緣運算,在已啟用 Arc 的 Kubernetes 叢集上執行。 現已在 Azure IoT 操作中提供公開預覽版。
Azure 事件方格中的 MQTT 代理功能非常適合用於汽車和行動案例等等的實作。 請參閱參考結構,了解如何使用 Azure 的傳訊和資料分析服務,建置安全且可調整的解決方案,以將數百萬輛車輛連線到雲端。
以下是 Azure 事件方格 中 MQTT 傳訊支援的一些重點:
- MQTT v3.1.1 和 MQTT v5.0 支援 - 使用任何開放原始碼 MQTT 用戶端程式庫來與服務通訊。
- 具有通配符支援的自定義主題 - 使用您自己的主題結構。
- 發佈-訂閱傳訊模型 - 使用一對多、多對一和一對一傳訊模式有效率地通訊。
- 內建雲端整合 - 將您的 MQTT 訊息路由傳送至 Azure 服務或自訂 Webhook,以進一步處理。
- 彈性且精細的 訪問控制模型 - 群組用戶端和主題以簡化訪問控制管理,並使用主題範本中的變數支援進行更細緻的訪問控制。
- MQTT 訊息代理程序驗證方法 - X.509 憑證驗證 是 IoT 裝置中的產業驗證標準, Microsoft Entra IDauthentication 是適用於應用程式和 OAuth 2.0 (JSON Web Token) 驗證 的 Azure 驗證標準,可為未在 Azure 中布建的 MQTT 用戶端提供輕量、安全且彈性的選項。
- 傳輸層安全性 (TLS) 1.2 和 TLS 1.3 支援 - 使用強固的加密通訊協定保護您的用戶端通訊。
- 多工作階段支援 - 將您的應用程式與多個作用中工作階段連線,以確保可靠性和可擴縮性。
- 透過 WebSockets 的 MQTT - 在防火牆限制的環境中啟用用戶端的連線能力。
- 自訂網域名稱 - 可讓使用者將自己的網域名稱名稱指派給事件方格命名空間的 MQTT 端點,增強安全性和簡化用戶端設定。
- 用戶端生命週期事件 - 可讓應用程式回應用戶端連線狀態或用戶端資源作業的相關事件。
如需 MQTT 訊息代理程式的詳細資訊,請參閱下列文章:
事件傳訊 (HTTP)
事件方格支援使用 HTTP 的推送和提取事件傳遞。 透過 推送傳遞,您會在事件訂用帳戶中定義目的地,而事件方格會傳送事件。 透過提取傳遞,訂閱者應用程式會連接到事件方格以取用事件。 事件方格命名空間中的主題支援提取傳遞。
事件處理常式
在推送傳遞中,事件訂閱是一般組態資源,可讓您定義使用推送傳遞傳送事件的事件處理程式或目的地。 例如,您可將資料傳送至 Webhook、Azure 函式或事件中樞。 如需支援的事件處理常式完整清單,請參閱:
推送傳遞與提取傳遞
以下是一般指導方針,可協助您決定何時使用提取或推送傳遞。
提取傳遞
- 您需要完整控管接收事件的時機。 例如,您的應用程式可能不會一直處於運作狀態、不夠穩定,或者您在特定時間處理資料。
- 您需要完全控管事件取用。 例如,取用者應用程式中的下游服務或層級發生問題,導致您無法處理事件。 在此情況下,提取傳遞 API 可讓取用者應用程式將已讀取的事件釋回訊息代理程式,以便稍後傳遞。
- 您想要在接收事件時使用私人連結,這只能透共提取傳遞使用,而無法透過推送傳遞使用。
- 您無法公開端點並使用推送傳遞,但您可以連線至事件方格來取用事件。
推送傳遞
- 您想要避免常數輪詢,以判斷發生系統狀態變更。 您選擇在事件狀態變更時,使用事件方格將事件傳送給您。
- 您有無法進行輸出呼叫的應用程式。 例如,您的組織可能會擔心資料外流。 不過,您的應用程式可以透過公用端點接收事件。
以下是 HTTP 模型的一些重點:
- 彈性事件使用量模型 - 使用 HTTP 時,使用提取或推送傳遞模式取用事件。
- 系統事件 - 使用內建 Azure 服務事件快速啟動並執行。
- 您自己的應用程式事件 - 使用事件方格來路由傳送、篩選並從應用程式可靠地傳遞自訂事件。
- 合作夥伴事件 - 訂閱合作夥伴 SaaS 提供者事件,並在 Azure 上處理。
- 進階篩選 - 篩選事件類型或其他事件屬性,以確保事件處理常式或取用者應用程式只收到相關事件。
- 可靠性 - 推送傳遞具有 24 小時的指數輪詢重試機制,可確保事件能夠傳遞出去。 如果您使用提取傳遞,您的應用程式可以完全控制事件使用量。
- 高輸送量 - 使用事件方格建置大量整合式解決方案。
- 自訂網域名稱 - 可讓使用者將自己的網域名稱名稱指派給事件方格命名空間的 HTTP 端點,增強安全性和簡化用戶端設定。
如需詳細資訊,請參閱下列文章:
- 提取傳遞概觀。
- 推送傳遞概觀。
- 概念
- 快速入門:使用命名空間主題發佈和訂閱應用程式事件。
使用案例
如需您可以使用 Azure 事件方格 的使用案例清單,請參閱使用案例
支援的區域
以下是新的 MQTT 代理和命名空間主題功能可供使用的區域清單:
區域 | 區域 | 區域 | 區域 |
---|---|---|---|
澳大利亞東部 | 澳大利亞東南部 | 澳大利亞中部 | 澳大利亞中部 2 |
巴西南部 | 巴西東南部 | 加拿大中部 | 加拿大東部 |
印度中部 | 美國中部 | 東亞 | 美國東部 |
美國東部 2 | 美國西部 | 法國中部 | 法國南部 |
德國北部 | 德國中西部 | 以色列中部 | 義大利北部 |
日本東部 | 日本西部 | 南韓中部 | 南韓南部 |
墨西哥中部 | 美國中北部 | 北歐 | 挪威東部 |
波蘭中部 | 南非西部 | 南非北部 | 美國中南部 |
印度南部 | 東南亞 | 西班牙中部 | 瑞典中部 |
瑞典南部 | 瑞士北部 | 瑞士西部 | 阿拉伯聯合大公國北部 |
阿拉伯聯合大公國中部 | 英國南部 | 英國西部 | 西歐 |
美國西部 2 | 美國西部 3 | 美國中西部 |