快速入門:使用 Azure CLI 將遙測資料從裝置傳送至 IoT 中樞並加以監視

IoT 中樞是一項 Azure 服務,可讓您從 IoT 裝置將大量的遙測擷取到雲端進行儲存或處理。 在此無程式碼快速入門中,您會使用 Azure CLI 來建立 IoT 中樞和模擬裝置。 您會將裝置遙測傳送至中樞、傳送訊息、呼叫方法,以及更新裝置上的屬性。 您也將使用 Azure 入口網站以視覺化裝置計量。 本文為開發人員說明使用 CLI 與 IoT 中樞應用程式互動的基本工作流程。

必要條件

  • 如果您沒有 Azure 訂用帳戶,請在開始之前建立免費帳戶
  • Azure CLI。 您可使用 Azure Cloud Shell (在瀏覽器或 Windows 終端機這類應用程式中執行的互動式 CLI Shell),以執行本快速入門中的所有命令。 如果您使用 Cloud Shell,就不需要安裝任何項目。 若您偏好在本機使用 CLI,本快速入門需要 Azure CLI 2.36 或以上版本。 執行 az --version 以尋找版本。 若要安裝或升級,請參閱安裝 Azure CLI

登入 Azure 入口網站

登入 Azure 入口網站

無論您是在本機還是在 Cloud Shell 中執行 CLI,均請在瀏覽器中保持入口網站的開啟狀態。 您稍後會在本快速入門中使用此入口網站。

啟動 Cloud Shell

在本節中,您會啟動 Azure Cloud Shell 的執行個體。 如果您在本機使用 CLI,請跳至準備兩個 CLI 工作階段一節。

若要啟動 Cloud Shell:

  1. 在 Azure 入口網站右上角的功能表列中,選取 [Cloud Shell] 按鈕。

    Azure 入口網站 Cloud Shell 按鈕

    注意

    如果這是您第一次使用 Cloud Shell,它將會提示您建立使用 Cloud Shell 所需的儲存體。 選取用來建立儲存體帳戶和 Microsoft Azure 檔案共用的訂用帳戶。

  2. 在 [選取環境] 下拉式清單中,選取您慣用的 CLI 環境。 本快速入門會使用 Bash 環境。 您也可以使用 PowerShell 環境。

    注意

    某些命令在 BashPowerShell 環境中需要不同的語法或格式。 如需詳細資訊,請參閱 成功使用 Azure CLI 的秘訣

    選取 CLI 環境

準備兩個 CLI 工作階段

接著,您將準備兩個 Azure CLI 工作階段。 若使用 Cloud Shell,這些工作階段將會在個別的 Cloud Shell 索引標籤中執行。 若使用本機 CLI 用戶端,則會執行個別的 CLI 執行個體。 針對下列工作,請使用個別的 CLI 工作階段:

  • 第一個工作階段會模擬與 IoT 中樞通訊的 IoT 裝置。
  • 第二個工作階段則監視第一個工作階段中的裝置,或傳送訊息、命令和屬性更新。

若要執行命令,請選取 [複製] 以複製本快速入門中的程式碼區塊,將其貼入您的 Shell 工作階段中,然後加以執行。

使用 Azure CLI 時,您必須登入 Azure 帳戶。 您的 Azure CLI Shell 工作階段與 IoT 中樞之間的所有通訊都會經過驗證和加密。 因此,本快速入門無需實際裝置使用的其他驗證 (如連接字串)。

  • 在第一個 CLI 工作階段中,執行 az extension add 命令。 該命令會將適用於 Azure CLI 的 Microsoft Azure IoT 延伸模組新增至 CLI Shell。 IoT 擴充功能可將 IoT 中樞、IoT Edge 和 IoT 裝置佈建服務的特定命令新增至 Azure CLI。

    az extension add --name azure-iot
    

    安裝 Azure IOT 擴充功能後,您不需要在任何 Cloud Shell 工作階段中再次加以安裝。

    注意

    本文使用最新版的 Azure IoT 擴充功能,稱為 azure-iot。 舊版則稱為 azure-cli-iot-ext。您一次只能安裝一個版本。 您可以使用命令 az extension list 來驗證目前安裝的擴充功能。

    使用 az extension remove --name azure-cli-iot-ext 移除舊版的擴充功能。

    使用 az extension add --name azure-iot 新增新版的擴充功能。

    若要查看您已安裝的擴充功能,請使用 az extension list

  • 開啟第二個 CLI 工作階段。 若在瀏覽器中使用 Cloud Shell,請使用 [開啟新的工作階段] 按鈕。 若在本機使用 CLI,請開啟第二個執行個體。

    開啟新的 Cloud Shell 工作階段

建立 IoT 中樞

在本節中,您將使用 Azure CLI 建立資源群組和 IoT 中樞。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。 IoT 中樞可作為 IoT 應用程式與裝置之間雙向通訊的中央訊息中樞。

提示

(選擇性) 您可以使用 Azure 入口網站Visual Studio Code 或其他程式設計方法,來建立 Azure 資源群組、IoT 中樞和其他資源。

  1. 在第一個 CLI 工作階段中,執行 az group create 命令以建立資源群組。 下列命令會在 eastus 位置中建立名為 MyResourceGroup 的資源群組。

    az group create --name MyResourceGroup --location eastus
    
  2. 在第一個 CLI 工作階段中,執行 Az PowerShell module iot hub create 命令以建立 IoT 中樞。 建立 IoT 中樞可能需要幾分鐘的時間。

    YourIotHubName。 使用您為 IoT 中樞選擇的名稱,取代下列命令中的這個預留位置和前後的大括弧。 IoT 中樞名稱在 Azure 中必須是全域唯一的。 只要您看到預留位置,就請在本快速入門的其餘部分使用您的 IoT 中樞名稱。

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
    

建立和監視裝置

在本節中,您將在第一個 CLI 工作階段中建立模擬裝置。 模擬裝置會將裝置遙測資料傳送至您的 IoT 中樞。 在第二個 CLI 工作階段中,您可監視事件和遙測。

若要建立並啟動模擬裝置:

  1. 在第一個 CLI 工作階段中,執行 az iot hub device-identity create 命令。 此命令會建立模擬裝置身分識別。

    YourIotHubName。 以您為 IoT 中樞選擇的名稱取代此預留位置。

    simDevice。 您可以在本快速入門的其餘部分直接對模擬裝置使用此名稱。 您也可以選擇使用不同的名稱。

    az iot hub device-identity create -d simDevice -n {YourIoTHubName} 
    
  2. 在第一個 CLI 工作階段中,執行 az iot device simulate 命令。 此命令會啟動模擬裝置。 裝置會將遙測資料傳送至您的 IoT 中樞,並接收來自該處的訊息。

    YourIotHubName。 以您為 IoT 中樞選擇的名稱取代此預留位置。

    az iot device simulate -d simDevice -n {YourIoTHubName}
    

若要監視裝置:

  1. 在第二個 CLI 工作階段中,執行 az iot hub monitor-events 命令。 此命令會持續監視模擬裝置。 輸出會顯示遙測,例如模擬裝置傳送至 IoT 中樞的事件和屬性狀態變更。

    YourIotHubName。 以您為 IoT 中樞選擇的名稱取代此預留位置。

    az iot hub monitor-events --output table -p all -n {YourIoTHubName}
    

    監視模擬裝置事件的螢幕擷取畫面。

  2. 在第二個 CLI 工作階段中監視模擬裝置之後,請按 Ctrl+C 以停止監視。 保持第二個 CLI 工作階段開啟,以便後續步驟使用。

使用 CLI 傳送訊息

在本節中,您會傳送訊息給模擬裝置。

  1. 在第一個 CLI 工作階段中,確認模擬裝置正在執行中。 若裝置已停止,請執行下列命令以重新啟動該裝置:

    YourIotHubName。 以您為 IoT 中樞選擇的名稱取代此預留位置。

    az iot device simulate -d simDevice -n {YourIoTHubName}
    
  2. 在第二個 CLI 工作階段中,執行 az iot device c2d-message send 命令。 此命令會將雲端到裝置的訊息從 IoT 中樞傳送至模擬裝置。 訊息中包含字串和兩個索引鍵/值組。

    YourIotHubName。 以您為 IoT 中樞選擇的名稱取代此預留位置。

    az iot device c2d-message send -d simDevice --data "Hello World" --props "key0=value0;key1=value1" -n {YourIoTHubName}
    

    (選擇性) 您可以使用 Azure 入口網站來傳送雲端到裝置的訊息。 若要這麼做,請瀏覽至 IoT 中樞的概觀頁面,選取 [IoT 裝置],選取模擬裝置,然後選取 [傳訊到裝置]

  3. 在第一個 CLI 工作階段中,確認模擬裝置已收到訊息。

    模擬裝置收到訊息的螢幕擷取畫面。

使用 CLI 呼叫裝置方法

在本節中,您會在模擬裝置上呼叫直接方法。

  1. 如先前動作,確認第一個 CLI 工作階段中的模擬裝置正在執行中。 如否,請重新啟動。

  2. 在第二個 CLI 工作階段中,執行 az iot hub invoke-device-method 命令。 在此範例中,該裝置沒有預先存在的方法。 該命令會在模擬裝置上呼叫範例方法名稱,並傳回承載。

    YourIotHubName。 以您為 IoT 中樞選擇的名稱取代此預留位置。

    az iot hub invoke-device-method --mn MySampleMethod -d simDevice -n {YourIoTHubName}
    
  3. 在第一個 CLI 工作階段中,確認輸出會顯示方法呼叫。

    顯示叫用方法後輸出的模擬裝置螢幕擷取畫面。

使用 CLI 更新裝置屬性

在本節中,您會設定屬性值以更新模擬裝置的狀態。

  1. 如先前動作,確認第一個 CLI 工作階段中的模擬裝置正在執行中。 如否,請重新啟動。

  2. 在第二個 CLI 工作階段中,執行 az iot hub device-twin update 命令。 此命令會更新屬性的狀態,以符合模擬裝置對應的 IoT 中樞裝置對應項所需。 在此情況下,該命令會設定範例溫度條件屬性。

    重要

    如果您在 CLI 殼層中使用 PowerShell,請使用下列命令的 PowerShell 版本。 PowerShell 會要求您逸出 JSON 承載中的字元。

    YourIotHubName。 以您為 IoT 中樞選擇的名稱取代此預留位置。

    az iot hub device-twin update -d simDevice --desired '{"conditions":{"temperature":{"warning":98, "critical":107}}}' -n {YourIoTHubName}
    
    az iot hub device-twin update -d simDevice --desired '{\"conditions\":{\"temperature\":{\"warning\":98, \"critical\":107}}}' -n {YourIoTHubName}
    
  3. 在第一個 CLI 工作階段中,確認該模擬裝置輸出屬性更新。

    此螢幕擷取畫面顯示如何更新裝置上的屬性。

  4. 在第二個 CLI 工作階段中,執行 az iot hub device-twin show 命令。 此命令會報告裝置屬性的變更。

    YourIotHubName。 以您為 IoT 中樞選擇的名稱取代此預留位置。

    az iot hub device-twin show -d simDevice --query properties.reported -n {YourIoTHubName}
    

    此螢幕擷取畫面顯示裝置對應項上的更新屬性。

在入口網站中檢視訊息計量

Azure 入口網站可讓您管理 IoT 中樞和裝置的所有層面。 在從裝置擷取遙測資料的一般 IoT 中樞應用程式中,您可能會想要監視裝置或檢視裝置遙測的計量。

若要將 Azure 入口網站中的訊息計量視覺化:

  1. 在入口網站的左側導覽功能表中,選取 [所有資源]。 此索引標籤會列出訂用帳戶中的所有資源,包含您所建立的 IoT 中樞。

  2. 選取您建立的 IoT 中樞上的連結。 入口網站會顯示中樞的概觀頁面。

  3. 在 IoT 中樞的左窗格中選取 [計量]

    IoT 中樞訊息計量

  4. 在 [範圍] 欄位中,輸入您的 IoT 中樞名稱。

  5. 在 [計量命名空間] 欄位中,選取 [Iot 中樞標準計量]。

  6. 在 [計量] 欄位中,選取 [已使用的訊息總數]。

  7. 將滑鼠指標停留在您的裝置傳送訊息的時間軸區域上方。 某個時間點的訊息總數會出現在時間軸的左下角。

    檢視 Azure IoT 中樞計量

  8. (選擇性) 使用 [計量] 下拉式清單,顯示模擬裝置的其他計量。 例如,已完成 C2D 訊息傳遞數裝置總計 (預覽)

清除資源

如果您不再需要在本快速入門中建立的 Azure 資源,您可以使用 Azure CLI 將其刪除。

如果您要繼續閱讀下一篇建議的文章,則可以保留已建立的資源並重複使用。

重要

刪除資源群組是無法回復的動作。 資源群組和其中包含的所有資源都將永久刪除。 請確定您不會不小心刪除錯誤的資源群組或資源。

若要依名稱刪除資源群組:

  1. 執行 az group delete 命令。 此命令會移除資源群組、IoT 中樞,以及您建立的裝置註冊。

    az group delete --name MyResourceGroup
    
  2. 執行 az group list 命令,以確認資源群組已刪除。

    az group list
    

下一步

在本快速入門中,您已使用 Azure CLI 建立 IoT 中樞、建立模擬裝置、傳送監視遙測、呼叫方法、設定所需屬性,並清除資源。 您已使用 Azure 入口網站將裝置上的訊息計量視覺化。

若您是裝置開發人員,接下來建議參閱使用「適用於 C 的 Azure IoT 裝置 SDK」的遙測快速入門。您也可選擇依慣用的語言或 SDK,參閱其中一篇 Azure IoT 中樞遙測快速入門文章。

若要了解如何從後端應用程式控制您的模擬裝置,請繼續下一個快速入門。