教學課程:使用自定義主題將 Azure 事件方格 中的 MQTT 訊息路由至 Azure Functions - Azure 入口網站
在本教學課程中,您將瞭解如何依照下列步驟,透過事件方格自定義主題,將 Azure 事件方格 命名空間所接收的 MQTT 訊息路由傳送至 Azure 函式:
如果您沒有 Azure 訂用帳戶,則可以註冊申請一個免費的試用帳戶。
使用事件方格觸發程式建立 Azure 函式
請遵循使用 Visual Studio Code 建立 Azure 函式中的指示,但使用 Azure 事件方格 觸發程式,而不是使用 HTTP 觸發程式。 您應該會看到類似下列範例的程式代碼:
using System;
using Azure.Messaging;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;
namespace Company.Function
{
public class MyEventGridTriggerFunc
{
private readonly ILogger<MyEventGridTriggerFunc> _logger;
public MyEventGridTriggerFunc(ILogger<MyEventGridTriggerFunc> logger)
{
_logger = logger;
}
[Function(nameof(MyEventGridTriggerFunc))]
public void Run([EventGridTrigger] CloudEvent cloudEvent)
{
_logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject);
}
}
}
在本教學課程稍後,您會使用此 Azure 函式作為主題訂用帳戶的事件處理程式。
注意
- 在相同的區域中建立所有資源。
- 本教學課程已使用使用 .NET 8.0(隔離)運行時間堆疊的 Azure 函式進行測試。
建立事件方格主題 (自訂主題)
建立事件方格主題。 請參閱 使用入口網站建立自定義主題。 當您建立事件方格主題時,在 [進階] 索引標籤上,針對 [事件架構] 選取 [雲端事件架構 v1.0]。
注意
在本教學課程的任何地方使用 雲端事件架構 。
使用函式將訂用帳戶新增至主題
在此步驟中,您會使用您稍早建立的 Azure 函式,建立事件方格主題的訂用帳戶。
在 [事件方格] 主題頁面上,選取 左側導覽列上的 [訂用帳戶 ]。
在 [ 建立事件訂用帳戶 ] 頁面上,執行下列步驟:
在 [ 選取 Azure 函式 ] 頁面上,執行下列步驟:
在 [建立事件訂閱] 頁面上,選取 [建立]。
在 [ 事件訂閱] 頁面上,您應該會看到您所建立的訂用帳戶。
建立命名空間、用戶端、主題空間和許可權系結
請遵循快速入門:使用事件方格命名空間發佈及訂閱 MQTT 訊息,並搭配 Azure 入口網站:
- 建立事件方格命名空間。
- 建立兩個用戶端。
- 建立主題空間。
- 建立發行者和訂閱者許可權系結。
- 使用 MQTTX 應用程式 進行測試,以確認客戶端能夠傳送和接收訊息。
啟用命名空間的受控識別
在本節中,您會為事件方格命名空間啟用系統指派的受控識別。 然後,將傳送許可權授與您稍早建立的事件方格自定義主題,以便將訊息路由傳送至自定義主題。 您可以在自訂主題上將受控識別新增至 事件方格數據傳送者 角色。
在 [ 事件方格命名空間] 頁面上,選取 左側導覽功能表上的 [身分 識別]。
流覽至 事件方格自定義主題的事件方格主題 。
選取 左側導覽列上的 [存取控制 ]。
在 [ 訪問控制 ] 頁面上,選取 [新增],然後選取 [ 新增角色指派]。
在 [新增角色指派精靈] 的 [角色] 頁面上,選取 [事件方格數據傳送者] 角色,然後選取頁面底部的 [下一步]。
在 [新增角色指派精靈] 的 [成員] 頁面上,選取 [受控識別],然後選擇 [選取成員]。
在 [ 選取受控識別 ] 頁面上,執行下列步驟:
在 [ 新增角色指派 ] 頁面上,選取 頁面底部的 [下一步 ]。
在 [ 檢閱 + 指派 ] 頁面上檢閱設定,然後選取頁面底部的 [ 檢閱 + 指派 ]。
透過自定義主題設定路由訊息至 Azure 函式
在此步驟中,您會設定事件方格命名空間的路由,讓接收的訊息路由傳送至您所建立的自定義主題。
在 [ 事件方格命名空間] 頁面上,選取 左側導覽列上的 [路由 ]。
在 [ 路由 ] 頁面上,選取 [ 啟用路由]。
針對 [ 主題類型],選取 [ 自定義主題]。
針對 [ 主題],選取您為此教學課程建立的自定義主題。
針對 要傳遞的受控識別,選取 [ 系統指派]。
選取 頁面底部的 [套用 ]。
使用 MQTTX 傳送測試 MQTT 訊息
將測試 MQTT 訊息傳送至命名空間,並確認函式會收到它們。
請遵循使用 MQTTX 應用程式發佈、訂閱訊息一文中的指示,將一些測試訊息傳送至事件方格命名空間。
以下是事件或訊息的流程:
後續步驟
請參閱此 GitHub 存放庫中的程式代碼範例。