共用方式為


快速入門:控制連線到IoT中樞的裝置

在本快速入門中,您會使用直接方法來控制連線到IoT中樞的模擬裝置。 IoT 中樞是一項 Azure 服務,可讓您從雲端管理 IoT 裝置,並將大量裝置遙測擷取到雲端以進行記憶體或處理。 您可以使用直接方法來遠端變更連線到 IoT 中樞的裝置行為。

快速入門使用兩個預先撰寫的 .NET 應用程式:

  • 回應從服務應用程式呼叫之直接方法的模擬裝置應用程式。 為了接收直接方法呼叫,此應用程式會連線到IoT中樞上的裝置特定端點。

  • 用來在模擬裝置上呼叫直接方法的服務應用程式。 若要在裝置上呼叫直接方法,此應用程式會連線到IoT中樞上的服務端端點。

先決條件

  • 具有有效訂閱的 Azure 帳戶。 免費建立一個

  • 您在本快速入門中執行的兩個範例應用程式會使用 C# 撰寫。 您的開發電腦上需要 .NET SDK 6.0 或更新版本。

    您可以從 .NET 下載適用於多種平台的 .NET Core SDK。

    您可以使用下列命令,以確認開發電腦上目前的 C# 版本:

    dotnet --version
    
  • 從 GitHub 複製或下載 適用於 .NET 的 Azure IoT SDK Microsoft 。 本快速入門所使用的範例應用程式包含在 SDK 中。

  • 請確定您的防火牆已開啟連接埠 8883。 本快速入門中的裝置範例會使用透過埠 8883 通訊的 MQTT 通訊協定。 某些公司和教育網路環境可能會封鎖此連接埠。 如需解決此問題的詳細資訊和方式,請參閱使用 MQTT 通訊協定與 IoT 中樞通訊的<連線到 IoT 中樞>一節。

備註

本文使用最新版的 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

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

如果您的 Azure 訂用帳戶中已有 IoT 中樞,則您可以略過本節。

若要建立 IoT 中樞和資源群組:

  1. 啟動 CLI 應用程式。 若要在此文其餘部分執行 CLI 命令,請複製命令語法,並將其貼入 CLI 應用程式,然後編輯變數值,再按 Enter

    • 如果您要使用 Cloud Shell,則請選取 CLI 命令上的 [試用] 按鈕,以在分割的瀏覽器視窗中啟動 Cloud Shell。 或者,您可以在不同的瀏覽器索引標籤中開啟 Cloud Shell
    • 如果您要在本機使用 Azure CLI,則請啟動 CLI 主控台應用程式,並登入 Azure CLI。
  2. 執行 az extension add 以將 azure-iot 延伸模組安裝或升級至目前版本。

    az extension add --upgrade --name azure-iot
    
  3. 在 CLI 應用程式中,執行 az group create 命令以建立資源群組。 下列命令會在 eastus 位置中建立名為 MyResourceGroup 的資源群組。

    備註

    您可以選擇性地設定不同的位置。 若要查看可用位置,請執行 az account list-locations。 本快速入門使用 eastus,如範例命令所示。

    az group create --name MyResourceGroup --location eastus
    
  4. 使用 az iot hub create 命令建立 IoT 中樞。 建立 IoT 中樞可能需要幾分鐘的時間。

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

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

擷取服務連接字串

您也需要IoT中樞 的服務連接字串 ,讓服務應用程式連線到中樞並擷取訊息。 服務連接字串是整個IoT中樞,與您在上一節中擷取的裝置連接字串不同。

下列命令會擷取 IoT 中樞的服務連接字串:

az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table

記下服務連接字串,如下所示:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

您稍後會在快速入門中使用此值。

模擬裝置

模擬裝置應用程式會連線到IoT中樞上的裝置特定端點、傳送模擬遙測,以及接聽來自中樞的直接方法呼叫。 在此快速入門中,來自中樞的直接方法呼叫會告知裝置變更其傳送遙測的間隔。 模擬裝置在執行直接方法後,會將確認訊息傳回您的中樞。

  1. 在本機終端機視窗中,流覽至 SDK 的根資料夾。 然後,流覽至 iothub\device\samples\getting started\SimulatedDeviceWithCommand 資料夾。

  2. 執行下列命令以安裝模擬裝置應用程式所需的套件:

    dotnet restore
    
  3. 執行下列命令來建置並執行模擬裝置應用程式。

    {DeviceConnectionString}:將此預留位置取代為您先前所記下的裝置連接字串。

    dotnet run -- -c "{DeviceConnectionString}"
    

    下列螢幕擷取畫面顯示模擬裝置應用程式將遙測傳送到 IoT 中樞時的輸出:

    顯示模擬裝置應用程式輸出的終端機視窗螢幕快照。

呼叫直接方法

服務應用程式會連線到你的 IoT 中樞上的服務端接點。 應用程式會透過您的 IoT 中樞對裝置進行直接方法呼叫,並接聽通知。 IoT 中樞服務應用程式通常會在雲端中執行。

  1. 在另一個本機終端機視窗中,流覽至 SDK 的根資料夾。 然後,流覽至 iothub\service\samples\getting started\InvokeDeviceMethod 資料夾。

  2. 在本機終端機視窗中,執行下列命令來安裝服務應用程式所需的連結庫:

    dotnet build
    
  3. 在本機終端機視窗中,執行下列命令來建置和執行服務應用程式。

    {ServiceConnectionString}:將此預留位置取代為您先前所記下的 IoT 中樞服務連接字串。

    {DeviceName}:將此預留位置取代為您已註冊的裝置名稱。

    dotnet run -- -c "{ServiceConnectionString}" -d {DeviceName}
    

    下列螢幕快照顯示當應用程式對裝置進行直接方法呼叫並接收到確認時的輸出:

    終端機視窗的螢幕快照,其中顯示服務應用程式直接方法呼叫的結果。

    執行服務應用程式之後,您會在執行模擬裝置的本機終端機視窗中看到訊息,以及傳送訊息的速率變更:

    終端機視窗的螢幕快照,其中顯示來自模擬裝置應用程式的直接訊息結果和更新的輸出。

本快速入門使用兩個 Java 應用程式:

  • 可回應後端應用程式直接方法呼叫的模擬裝置應用程式。
  • 模擬裝置上呼叫直接方法的服務應用程式。

先決條件

  • 具有有效訂閱的 Azure 帳戶。 免費建立一個

  • Java SE 開發工具包 8。 在 Azure 和 Azure Stack 的 Java 長期支援中,於 [ 長期支援] 底下,選取 [Java 8]。

    您可以使用下列命令,在開發電腦上驗證目前版本的 Java:

    java -version
    
  • Apache Maven 3

    您可以使用下列命令,在開發電腦上驗證目前版本的 Maven:

    mvn --version
    
  • 從 GitHub 複製或下載 適用於 Java 的 Azure IoT 範例

  • 請確定您的防火牆已開啟連接埠 8883。 本快速入門中的裝置範例會使用透過埠 8883 通訊的 MQTT 通訊協定。 某些公司和教育網路環境可能會封鎖此連接埠。 如需解決此問題的詳細資訊和方式,請參閱使用 MQTT 通訊協定與 IoT 中樞通訊的<連線到 IoT 中樞>一節。

備註

本文使用最新版的 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

建立 IoT 中樞

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

如果您的 Azure 訂用帳戶中已有 IoT 中樞,則您可以略過本節。

若要建立 IoT 中樞和資源群組:

  1. 啟動 CLI 應用程式。 若要在此文其餘部分執行 CLI 命令,請複製命令語法,並將其貼入 CLI 應用程式,然後編輯變數值,再按 Enter

    • 如果您要使用 Cloud Shell,則請選取 CLI 命令上的 [試用] 按鈕,以在分割的瀏覽器視窗中啟動 Cloud Shell。 或者,您可以在不同的瀏覽器索引標籤中開啟 Cloud Shell
    • 如果您要在本機使用 Azure CLI,則請啟動 CLI 主控台應用程式,並登入 Azure CLI。
  2. 執行 az extension add 以將 azure-iot 延伸模組安裝或升級至目前版本。

    az extension add --upgrade --name azure-iot
    
  3. 在 CLI 應用程式中,執行 az group create 命令以建立資源群組。 下列命令會在 eastus 位置中建立名為 MyResourceGroup 的資源群組。

    備註

    您可以選擇性地設定不同的位置。 若要查看可用位置,請執行 az account list-locations。 本快速入門使用 eastus,如範例命令所示。

    az group create --name MyResourceGroup --location eastus
    
  4. 使用 az iot hub create 命令建立 IoT 中樞。 建立 IoT 中樞可能需要幾分鐘的時間。

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

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

註冊裝置

裝置必須向您的 IoT 中樞註冊,才能進行連線。 在本節中,您會使用 Azure CLI 來建立裝置身分識別。

如果您已在 IoT 中樞內註冊裝置,則可以略過本節。

若要建立裝置身分識別:

  1. 在 CLI 殼層中,執行 az iot hub device-identity create 命令。 此命令會建立裝置身分識別。

    YourIoTHubName。 使用您為 IoT 中樞選擇的名稱,取代下列命令中的這個預留位置和前後的大括弧。 IoT 中樞名稱在 Azure 中必須是全域唯一的。

    myDevice。 您可以針對本文中的裝置識別碼使用此名稱,或提供不同的裝置名稱。

    az iot hub device-identity create --device-id myDevice --hub-name {YourIoTHubName}
    
  2. 執行 az iot hub device-identity connection-string show 命令。

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {YourIoTHubName}
    

    連接字串輸出的格式如下:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. 將連接字串儲存至安全的位置。

備註

將您的 CLI 應用程式保持開啟。 你會在後續步驟中用到它。

擷取服務連接字串

您也需要 服務連接字串 ,讓後端應用程式能夠連線到IoT中樞並擷取訊息。 下列命令會擷取 IoT 中樞的服務連接字串:

YourIoTHubName:請下列命令中的這個預留位置取代為您為 IoT 中樞選擇的名稱。

az iot hub connection-string show --policy-name service --hub-name {YourIoTHubName} --output table

記下服務連接字串,如下所示:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

您稍後會在快速入門中使用此值。 此服務連接字串與您在上一個步驟中注意到的裝置連接字串不同。

模擬裝置

模擬裝置應用程式會連線到IoT中樞上的裝置特定端點、傳送模擬遙測,以及接聽來自中樞的直接方法呼叫。 在此快速入門中,來自中樞的直接方法呼叫會告知裝置變更其傳送遙測的間隔。 模擬裝置在執行直接方法後,會將確認訊息傳回您的中樞。

  1. 在本機終端機視窗中,流覽至範例 Java 專案的根資料夾。 然後流覽至 iot-hub\Quickstarts\simulated-device-2 資料夾。

  2. 在您選擇的文本編輯器中開啟 src/main/java/com/microsoft/docs/iothub/samples/SimulatedDevice.java 檔案。

    使用您先前記下的裝置連接字串取代 connString 變數的值。 然後將變更儲存至 SimulatedDevice.java

  3. 在本機終端機視窗中,執行下列命令來安裝必要的連結庫,並建置模擬裝置應用程式:

    mvn clean package
    
  4. 在本機終端機視窗中,執行下列命令以執行模擬裝置應用程式:

    java -jar target/simulated-device-2-1.0.0-with-deps.jar
    

    下列螢幕擷取畫面顯示模擬裝置應用程式將遙測傳送到 IoT 中樞時的輸出:

    顯示模擬裝置應用程式輸出的終端機視窗螢幕快照。

呼叫直接方法

後端應用程式會連線到IoT中樞上的服務端端點。 應用程式會透過您的 IoT 中樞對裝置進行直接方法呼叫,並接聽通知。 IoT 中樞後端應用程式通常會在雲端中執行。

  1. 在另一個本機終端機視窗中,流覽至範例 Java 專案的根資料夾。 然後流覽至 iot-hub\Quickstarts\back-end-application 資料夾。

  2. 在您選擇的文本編輯器中開啟 src/main/java/com/microsoft/docs/iothub/samples/BackEndApplication.java 檔案。

    使用您先前記下的服務連接字串取代 iotHubConnectionString 變數的值。 然後將變更儲存至 BackEndApplication.java

  3. 在本機終端機視窗中,執行下列命令來安裝必要的連結庫並建置後端應用程式:

    mvn clean package
    
  4. 在本機終端機視窗中,執行下列命令以執行後端應用程式:

    java -jar target/back-end-application-1.0.0-with-deps.jar
    

    下列螢幕快照顯示當應用程式對裝置進行直接方法呼叫並接收到確認時的輸出:

    終端機視窗的螢幕快照,其中顯示服務應用程式直接方法呼叫的結果。

    執行後端應用程式之後,您會在本機終端機視窗中看到執行模擬裝置的訊息,以及傳送訊息的速率變更:

    終端機視窗的螢幕快照,其中顯示來自模擬裝置應用程式的直接訊息結果和更新的輸出。

本快速入門指南使用了兩款 Node.js 應用程式:

  • 可回應後端應用程式直接方法呼叫的模擬裝置應用程式。 為了接收直接方法呼叫,此應用程式會連線到IoT中樞上的裝置特定端點。
  • 在模擬裝置上呼叫直接方法的後端應用程式。 若要在裝置上呼叫直接方法,此應用程式會連線到IoT中樞上的服務特定端點。

先決條件

  • 具有有效訂閱的 Azure 帳戶。 免費建立一個

  • Node.js 12+

    您可以使用下列命令,以確認開發電腦上目前的 Node.js 版本:

    node --version
    
  • 從 GitHub 複製或下載 Azure IoT Node.js 範例

  • 請確定您的防火牆已開啟連接埠 8883。 本快速入門中的裝置範例會使用透過埠 8883 通訊的 MQTT 通訊協定。 某些公司和教育網路環境可能會封鎖此連接埠。 如需解決此問題的詳細資訊和方式,請參閱使用 MQTT 通訊協定與 IoT 中樞通訊的<連線到 IoT 中樞>一節。

備註

本文使用最新版的 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

建立 IoT 中樞

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

如果您的 Azure 訂用帳戶中已有 IoT 中樞,則您可以略過本節。

若要建立 IoT 中樞和資源群組:

  1. 啟動 CLI 應用程式。 若要在此文其餘部分執行 CLI 命令,請複製命令語法,並將其貼入 CLI 應用程式,然後編輯變數值,再按 Enter

    • 如果您要使用 Cloud Shell,則請選取 CLI 命令上的 [試用] 按鈕,以在分割的瀏覽器視窗中啟動 Cloud Shell。 或者,您可以在不同的瀏覽器索引標籤中開啟 Cloud Shell
    • 如果您要在本機使用 Azure CLI,則請啟動 CLI 主控台應用程式,並登入 Azure CLI。
  2. 執行 az extension add 以將 azure-iot 延伸模組安裝或升級至目前版本。

    az extension add --upgrade --name azure-iot
    
  3. 在 CLI 應用程式中,執行 az group create 命令以建立資源群組。 下列命令會在 eastus 位置中建立名為 MyResourceGroup 的資源群組。

    備註

    您可以選擇性地設定不同的位置。 若要查看可用位置,請執行 az account list-locations。 本快速入門使用 eastus,如範例命令所示。

    az group create --name MyResourceGroup --location eastus
    
  4. 使用 az iot hub create 命令建立 IoT 中樞。 建立 IoT 中樞可能需要幾分鐘的時間。

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

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

註冊裝置

裝置必須向您的 IoT 中樞註冊,才能進行連線。 在本節中,您會使用 Azure CLI 來建立裝置身分識別。

如果您已在 IoT 中樞內註冊裝置,則可以略過本節。

若要建立裝置身分識別:

  1. 在 CLI 殼層中,執行 az iot hub device-identity create 命令。 此命令會建立裝置身分識別。

    YourIoTHubName。 使用您為 IoT 中樞選擇的名稱,取代下列命令中的這個預留位置和前後的大括弧。 IoT 中樞名稱在 Azure 中必須是全域唯一的。

    myDevice。 您可以針對本文中的裝置識別碼使用此名稱,或提供不同的裝置名稱。

    az iot hub device-identity create --device-id myDevice --hub-name {YourIoTHubName}
    
  2. 執行 az iot hub device-identity connection-string show 命令。

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {YourIoTHubName}
    

    連接字串輸出的格式如下:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. 將連接字串儲存至安全的位置。

備註

將您的 CLI 應用程式保持開啟。 你會在後續步驟中用到它。

擷取服務連接字串

您也需要IoT中樞 的服務連接字串 ,讓後端應用程式能夠連線到IoT中樞並擷取訊息。 下列命令會擷取 IoT 中樞的服務連接字串:

YourIoTHubName:請下列命令中的這個預留位置取代為您為 IoT 中樞選擇的名稱。

az iot hub connection-string show \
  --policy-name service --hub-name {YourIoTHubName} --output table

記下服務連接字串,如下所示:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

您稍後會在快速入門中使用此值。 此服務連接字串與您在上一個步驟中注意到的裝置連接字串不同。

模擬裝置

模擬裝置應用程式會連線到IoT中樞上的裝置特定端點、傳送模擬遙測,以及接聽來自中樞的直接方法呼叫。 在此快速入門中,來自中樞的直接方法呼叫會告知裝置變更其傳送遙測的間隔。 模擬裝置在執行直接方法後,會將確認訊息傳回您的中樞。

  1. 在本機終端機視窗中,流覽至範例 Node.js 專案的根資料夾。 然後流覽至 iot-hub\Quickstarts\simulated-device-2 資料夾。

  2. 在您選擇的文字編輯器中開啟 SimulatedDevice.js 檔案。

    使用您先前記下的裝置連接字串取代 connectionString 變數的值。 然後變更儲存至 SimulatedDevice.js

  3. 在本機終端機視窗中,執行下列命令來安裝必要的連結庫,並執行模擬裝置應用程式:

    npm install
    node SimulatedDevice.js
    

    下列螢幕擷取畫面顯示模擬裝置應用程式將遙測傳送到 IoT 中樞時的輸出:

    顯示模擬裝置應用程式輸出的終端機視窗螢幕快照。

呼叫直接方法

後端應用程式會連線到IoT中樞上的服務端端點。 應用程式會透過您的 IoT 中樞對裝置進行直接方法呼叫,並接聽通知。 IoT 中樞後端應用程式通常會在雲端中執行。

  1. 在另一個本機終端機視窗中,流覽至範例 Node.js 專案的根資料夾。 然後流覽至 iot-hub\Quickstarts\back-end-application 資料夾。

  2. 在您選擇的文字編輯器中開啟 BackEndApplication.js 檔案。

    使用您先前記下的服務連接字串取代 connectionString 變數的值。 然後變更儲存至 BackEndApplication.js

  3. 在本機終端機視窗中,執行下列命令來安裝必要的連結庫,並執行後端應用程式:

    npm install
    node BackEndApplication.js
    

    下列螢幕快照顯示當應用程式對裝置進行直接方法呼叫並接收到確認時的輸出:

    終端機視窗的螢幕快照,其中顯示服務應用程式直接方法呼叫的結果。

    執行後端應用程式之後,您會在本機終端機視窗中看到執行模擬裝置的訊息,以及傳送訊息的速率變更:

    終端機視窗的螢幕快照,其中顯示來自模擬裝置應用程式的直接訊息結果和更新的輸出。

本快速入門使用兩個 Python 應用程式:

  • 可回應後端應用程式直接方法呼叫的模擬裝置應用程式。
  • 在模擬裝置上呼叫直接方法的後端應用程式。

先決條件

  • 具有有效訂閱的 Azure 帳戶。 免費建立一個

  • Python 3.7+。 如需支援的其他 Python 版本,請參閱 Azure IoT 裝置功能

  • 從 GitHub 複製或下載 Azure IoT Python 範例

  • 請確定您的防火牆已開啟連接埠 8883。 本快速入門中的裝置範例會使用透過埠 8883 通訊的 MQTT 通訊協定。 某些公司和教育網路環境可能會封鎖此連接埠。 如需解決此問題的詳細資訊和方式,請參閱使用 MQTT 通訊協定與 IoT 中樞通訊的<連線到 IoT 中樞>一節。

備註

本文使用最新版的 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

建立 IoT 中樞

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

如果您的 Azure 訂用帳戶中已有 IoT 中樞,則您可以略過本節。

若要建立 IoT 中樞和資源群組:

  1. 啟動 CLI 應用程式。 若要在此文其餘部分執行 CLI 命令,請複製命令語法,並將其貼入 CLI 應用程式,然後編輯變數值,再按 Enter

    • 如果您要使用 Cloud Shell,則請選取 CLI 命令上的 [試用] 按鈕,以在分割的瀏覽器視窗中啟動 Cloud Shell。 或者,您可以在不同的瀏覽器索引標籤中開啟 Cloud Shell
    • 如果您要在本機使用 Azure CLI,則請啟動 CLI 主控台應用程式,並登入 Azure CLI。
  2. 執行 az extension add 以將 azure-iot 延伸模組安裝或升級至目前版本。

    az extension add --upgrade --name azure-iot
    
  3. 在 CLI 應用程式中,執行 az group create 命令以建立資源群組。 下列命令會在 eastus 位置中建立名為 MyResourceGroup 的資源群組。

    備註

    您可以選擇性地設定不同的位置。 若要查看可用位置,請執行 az account list-locations。 本快速入門使用 eastus,如範例命令所示。

    az group create --name MyResourceGroup --location eastus
    
  4. 使用 az iot hub create 命令建立 IoT 中樞。 建立 IoT 中樞可能需要幾分鐘的時間。

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

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

註冊裝置

裝置必須向您的 IoT 中樞註冊,才能進行連線。 在本節中,您會使用 Azure CLI 來建立裝置身分識別。

如果您已在 IoT 中樞內註冊裝置,則可以略過本節。

若要建立裝置身分識別:

  1. 在 CLI 殼層中,執行 az iot hub device-identity create 命令。 此命令會建立裝置身分識別。

    YourIoTHubName。 使用您為 IoT 中樞選擇的名稱,取代下列命令中的這個預留位置和前後的大括弧。 IoT 中樞名稱在 Azure 中必須是全域唯一的。

    myDevice。 您可以針對本文中的裝置識別碼使用此名稱,或提供不同的裝置名稱。

    az iot hub device-identity create --device-id myDevice --hub-name {YourIoTHubName}
    
  2. 執行 az iot hub device-identity connection-string show 命令。

    az iot hub device-identity connection-string show --device-id myDevice --hub-name {YourIoTHubName}
    

    連接字串輸出的格式如下:

    HostName=<your IoT Hub name>.azure-devices.net;DeviceId=<your device id>;SharedAccessKey=<some value>
    
  3. 將連接字串儲存至安全的位置。

備註

將您的 CLI 應用程式保持開啟。 你會在後續步驟中用到它。

擷取服務連接字串

您也需要 服務連接字串 ,讓後端應用程式能夠連線到IoT中樞並擷取訊息。 下列命令會擷取 IoT 中樞的服務連接字串:

YourIoTHubName:請在下列命令中以您選擇的 IoT 中樞名稱取代這個佔位符。

az iot hub connection-string show \
  --policy-name service \
  --hub-name {YourIoTHubName} \
  --output table

記下服務連接字串,如下所示:

HostName={YourIoTHubName}.azure-devices.net;SharedAccessKeyName=service;SharedAccessKey={YourSharedAccessKey}

您稍後會在快速入門中使用此值。 此服務連接字串與您在上一個步驟中注意到的裝置連接字串不同。

模擬裝置

模擬裝置應用程式會連線到IoT中樞上的裝置特定端點、傳送模擬遙測,以及接聽來自中樞的直接方法呼叫。 在此快速入門中,來自中樞的直接方法呼叫會告知裝置變更其傳送遙測的間隔。 模擬裝置在執行直接方法後,會將確認訊息傳回您的中樞。

  1. 在本機終端機視窗中,流覽至範例 Python 專案的根資料夾。 然後流覽至 iot-hub\Quickstarts\simulated-device-2 資料夾。

  2. 在您選擇的文字編輯器中開啟 SimulatedDeviceSync.py 檔案。

    使用您先前記下的裝置連接字串取代 CONNECTION_STRING 變數的值。 然後將變更儲存至 SimulatedDeviceSync.py

  3. 在本機終端機視窗中,執行下列命令來安裝模擬裝置應用程式所需的連結庫:

    pip install azure-iot-device
    
  4. 在本機終端機視窗中,執行下列命令以執行模擬裝置應用程式:

    python SimulatedDeviceSync.py
    

    下列螢幕擷取畫面顯示模擬裝置應用程式將遙測傳送到 IoT 中樞時的輸出:

    顯示模擬裝置應用程式輸出的終端機視窗螢幕快照。

呼叫直接方法

後端應用程式會連線到IoT中樞上的服務端端點。 應用程式會透過您的 IoT 中樞對裝置進行直接方法呼叫,並接聽通知。 IoT 中樞後端應用程式通常會在雲端中執行。

  1. 在另一個本機終端機視窗中,流覽至範例 Python 專案的根資料夾。 然後流覽至 iot-hub\Quickstarts\back-end-application 資料夾。

  2. 在您選擇的文字編輯器中開啟 BackEndApplication.py 檔案。

    使用您先前記下的服務連接字串取代 CONNECTION_STRING 變數的值。 然後將變更儲存至 BackEndApplication.py

  3. 在本機終端機視窗中,執行下列命令來安裝模擬裝置應用程式所需的連結庫:

    pip install azure-iot-hub
    
  4. 在本機終端機視窗中,執行下列命令以執行後端應用程式:

    python BackEndApplication.py
    

    下列螢幕快照顯示當應用程式對裝置進行直接方法呼叫並接收到確認時的輸出:

    終端機視窗的螢幕快照,其中顯示服務應用程式直接方法呼叫的結果。

    執行後端應用程式之後,您會在執行模擬裝置的控制台視窗中看到訊息,以及傳送訊息的速率變更:

    終端機視窗的螢幕快照,其中顯示來自模擬裝置應用程式的直接訊息結果和更新的輸出。

清理資源

如果您繼續下一篇文章,您可以保留您已建立的資源並重複使用它們。

否則,您可以刪除本文中建立的 Azure 資源,以避免產生費用。

這很重要

刪除資源群組是無法回復的動作。 資源群組和其中包含的所有資源都將永久刪除。 請確定您不會誤刪錯誤的資源群組或資源。 如果您在包含您想要保留之資源的現有資源群組內建立IoT中樞,則只會刪除IoT中樞資源本身,而不是刪除資源群組。

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

  1. 登入 Azure 入口網站,然後選取 [資源群組]

  2. 在 [ 篩選任何字段 ] 文本框中,輸入包含IoT中樞的資源群組名稱。

  3. 在結果清單中,選取包含IoT中樞的資源群組。

  4. 在資源群組的工作窗格中,從命令行選取 [ 刪除資源群組 ]。

    此螢幕快照顯示 Azure 入口網站中資源群組的工作窗格,並在命令行中醒目提示 [刪除資源群組] 命令。

  5. 系統將會要求您確認是否刪除資源群組。 再次輸入您的資源群組名稱以進行確認,然後選取 [刪除]。 片刻過後,系統便會刪除該資源群組及其所有內含的資源。

後續步驟

在此快速入門指導中,您從服務應用程式中對裝置呼叫了一個直接方法,並在模擬裝置應用程式中對此直接方法呼叫進行了響應。

若要瞭解如何將裝置到雲端訊息路由傳送至雲端中的不同目的地,請繼續進行下一個教學課程。