Share via


使用 Azure Resource Manager 建立和刪除路由和端點

本文說明如何匯出 Azure IoT 中樞範本、新增路由至 IoT 中樞,接著使用 Azure CLI 或 Azure PowerShell 將範本重新部署至 IoT 中樞。 使用 Azure Resource Manager 範本來建立 Azure 事件中樞、Azure 服務匯流排佇列和主題,以及 Azure 儲存體的路由和端點。

當您想要使用 JSON 檔案定義資源時,Azure Resource Manager 範本可以派上用場。 每個 Azure 資源都有一個範本,可定義該資源中的使用元件。 您可以匯出所有 Azure 資源範本。

重要

當您使用 Resource Manager 範本來部署資源時,範本會取代即將部署類型的所有現有資源。

當您建立新的 IoT 中樞時,不需擔心任何現有已部署資源被覆寫。 若要建立新的 IoT 中樞,您可以使用具有必要屬性的基本範本,而不是從已部署的 IoT 中樞匯出現有範本。

不過,如果您將路由新增至現有 IoT 中樞的 Resource Manager 範本,請使用從 IoT 中樞匯出的範本,以確保在部署更新的範本之後,所有現有資源和屬性都會保持連線。 已部署資源不會被取代。 例如,如果您已將 IoT 中樞連線至儲存體,則先前部署的匯出 Resource Manager 範本可能會包含 IoT 中樞的儲存體資訊。

若要深入了解路由如何在 IoT 中樞運作,請參閱使用 IoT 中樞訊息路由將裝置到雲端的訊息傳送至不同端點。 如需關於如何設定路由以將訊息傳送至儲存體,並在模擬裝置上進行測試的逐步解說,請參閱教學課程:使用 IoT 中樞訊息路由將裝置資料傳送至 Azure 儲存體

必要條件

本文描述的程序使用下列資源:

  • Azure Resource Manager 範本
  • IoT 中樞
  • Azure 中的端點服務

Azure Resource Manager 範本

本文透過 Azure 入口網站中的 Azure Resource Manager 範本來使用 IoT 中樞和其他 Azure 服務。 若要深入了解如何使用 Resource Manager 範本,請參閱什麼是 Azure Resource Manager 範本 ?

IoT 中樞

若要建立 IoT 中樞路由,您需要使用 Azure IoT 中樞所建立的 IoT 中樞。 裝置訊息和事件記錄檔來自您的 IoT 中樞。

當您建立 IoT 中樞路由時,請務必使用下列中樞資源:

端點服務

若要建立 IoT 中樞路由,您至少需要一個其他 Azure 服務,才能作為路由的端點。 端點會接收裝置訊息和事件記錄檔。 您可以選擇要使用何種 Azure 服務作為端點,以用於與 IoT 中樞路由連線: 事件中樞、服務匯流排佇列和主題,以及 Azure 儲存體。

當您建立 IoT 中樞路由時,請務必使用下列其中一項中樞資源:

建立路由

在 IoT 中樞中,您可以建立路由來傳送訊息或擷取事件。 每個路由都有一個資料來源和端點。 訊息或事件記錄源自於資料來源。 端點是訊息或事件記錄檔最後出現的位置。 當您在 IoT 中樞中建立新路由時,您可以選擇資料來源和端點的位置。 接著,您可以在訊息或事件傳送至端點前,使用路由查詢進行篩選。

您可以使用事件中樞、服務匯流排佇列 (或主題),或是 Azure 儲存體帳戶作為 IoT 中樞路由的端點。 您用來建立端點的服務必須先存在於 Azure 帳戶中。

從 IoT 中樞匯出 Resource Manager 範本

首先,從 IoT 中樞匯出 Resource Manager 範本,然後新增路由至該範本。

  1. 在 Azure 入口網站中,移至您的 IoT 中樞。 在資源選單中的 [自動化] 下方,選取 [匯出範本]

    Screenshot that shows the location of the Export template option in the menu of an IoT Hub resource.

  2. 在 [匯出範本] 中的 [範本] 索引標籤裡完成下列步驟:

    1. 檢視針對 IoT 中樞所產生的 JSON 檔案。

    2. 清除 [包含參數] 核取方塊。

    3. 選取 [下載] 以下載 JSON 檔案的本機複本。

    Screenshot that shows the location of the Download button on the Export template pane.

    範本有數個預留位置,可用來將功能或服務新增至 IoT 中樞。 在本文中,只將值新增至位於或巢狀於 routing 中的屬性。

將新端點新增至 Resource Manager 範本

在 JSON 檔案中,尋找巢狀在 "routing" 中的 "endpoints": [] 屬性。 完成根據您為端點選擇的 Azure 服務新增端點的步驟:事件中樞、服務總線佇列 (或主題),或是 Azure 儲存體。

若要了解如何建立新的事件中樞資源 (包含容器),請參閱快速入門: 使用 Resource Manager 範本建立事件中樞

Azure 入口網站中,從事件中樞資源取得主要連接字串。 在資源的 [共用存取原則] 窗格中,選取其中一個原則,以查看金鑰和連接字串資訊。 將事件中樞名稱新增至連接字串結尾的實體路徑。 例如,使用 ;EntityPath=my-event-hubs。 該名稱是您的事件中樞名稱,並非命名空間名稱。

針對 name,使用事件中樞端點的唯一值。 id 參數保留空白。 部署端點時,Azure 服務會提供 id 值。

"routing": {
   "endpoints": {
      "serviceBusQueues": [],
      "serviceBusTopics": [],
      "eventHubs": [
            {
               "connectionString": "my Event Hubs connection string + entity path",
               "authenticationType": "keyBased",
               "name": "my-event-hubs-endpoint",
               "id": "",
               "subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
               "resourceGroup": "my-resource-group"
            }
      ],
      "storageContainers": [],
      "cosmosDBSqlCollections": []
   },
},

將新路由新增至 Resource Manager 範本

在 JSON 檔案中,尋找巢狀在 "routing" 下的 "routes": [] 屬性,並根據您選擇的端點服務新增下列新路由: 事件中樞、服務匯流排 (或主題),或是 Azure 儲存體。

預設後援路由會從 DeviceMessages 收集訊息。 使用不同選項,如 DeviceConnectionStateEvents。 如需資源選項的詳細資訊,請參閱 az iot 中樞路由

警告

如果您將 "routes" 的任何現有值取代為下列程式代碼範例中使用的路由值,那麼在部署時現有路由會被移除。 若要保留現有路由,新增新的路由物件至 "routes" 清單。

如需關於範本的詳細資訊,請參閱 Azure Resource Manager 範本資源定義

"routes": [
    {
        "name": "MyIotHubRoute",
        "source": "DeviceConnectionStateEvents",
        "condition": "true",
        "endpointNames": [
        "my-event-hubs-endpoint"
        ],
        "isEnabled": true
    }
],

儲存您的 JSON 檔案。

部署 Resource Manager 範本

將新端點和路由新增至 Resource Manager 範本後,您現在可以將 JSON 檔案部署回 IoT 中樞。

本機部署

az deployment group create \
  --name my-iot-hub-template \
  --resource-group my-resource-group \
  --template-file "my\path\to\template.json"

Azure Cloud Shell 部署

因為 Azure Cloud Shell 在網頁瀏覽器中執行,因此您可以在執行部署命令之前,先上傳範本檔案。 將檔案上傳後,您只需要範本檔案名稱 (而不是整個檔案路徑),才能在 template-file 參數中使用。

Screenshot that shows the location of the button in Azure Cloud Shell to upload a file.

az deployment group create \
  --name my-iot-hub-template \
  --resource-group my-resource-group \
  --template-file "template.json"

注意

如果部署失敗,請使用 -verbose 參數來取得所建立資源的相關資訊。 使用 -debug 參數取得更多資訊,以進行偵錯。

確認部署

若要確認範本是否已成功部署至 Azure,請在 Azure 入口網站中前往您的資源群組資源。 在 [設定]下方的資源選單中,選取 [部署],以查看部署清單中的範本。

Screenshot that shows a list of deployments for a resource in the Azure portal, with a test template highlighted.

若要檢視 Azure 入口網站中的新路徑,請前往您的 IoT 中樞資源。 在 [訊息路由] 窗格的 [路由] 索引標籤上,確認您的路由已被列出。

下一步

在本操作說明文章中,您已了解如何建立事件中樞、服務匯流排佇列和主題,以及 Azure 儲存體的路由和端點。

若要深入了解訊息路由,請參閱教學課程:使用 IoT 中樞訊息路由將裝置資料傳送至 Azure 儲存體。 在本教學課程中,您會建立儲存體路由,並使用 IoT 中樞內的裝置進行測試。