教學課程:設定 IoT 即插即用快速入門和教學課程的環境
您必須先在 Azure 訂用帳戶中設定 IoT 中樞和裝置佈建服務 (DPS),才能完成任何 IoT 隨插即用快速入門和教學課程。 您也需要範例應用程式和 Azure IoT 總管工具所用模型檔案的本機複本。
重要
本文包含使用共用存取簽章連線至服務的步驟。 此驗證方法方便進行測試和評估,但使用 Microsoft Entra ID 或受控識別向服務進行驗證是更安全的方法。 若要深入了解,請參閱安全性最佳做法 > 雲端安全性。
必要條件
如果您沒有 Azure 訂用帳戶,請在開始前建立免費帳戶。
備妥環境以使用 Azure CLI
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
建立資源
建立資源的 Azure 資源群組:
az group create --name my-pnp-resourcegroup --location centralus
建立 IoT 中樞。 下列命令使用名稱 my-pnp-hub
做為所要建立 IoT 中樞的名稱範例。 為您的 IoT 中樞選擇唯一名稱,以取代 my-pnp-hub
:
az iot hub create --name my-pnp-hub --resource-group my-pnp-resourcegroup --sku F1 --partition-count 2
建立 DPS 執行個體。 下列命令使用名稱 my-pnp-dps
做為所要建立 DPS 執行個體的名稱範例。 為您的 DPS 執行個體選擇唯一名稱,以取代 my-pnp-dps
:
az iot dps create --name my-pnp-dps --resource-group my-pnp-resourcegroup
若要將 DPS 執行個體連結至 IoT 中樞,請使用下列命令。 將 my-pnp-dps
與 my-pnp-hub
取代為您先前選擇的唯一名稱:
hubConnectionString=$(az iot hub connection-string show -n my-pnp-hub --key primary --query connectionString -o tsv)
az iot dps linked-hub create --dps-name my-pnp-dps --resource-group my-pnp-resourcegroup --location centralus --connection-string $hubConnectionString
擷取設定
某些快速入門和教學課程會使用 IoT 中樞的連接字串。 當您設定 Azure IoT 總管工具時,也需要連接字串。 擷取連接字串並立即將其記下。 使用您為 IoT 中樞所選擇的唯一名稱,以取代 my-pnp-hub
:
az iot hub connection-string show -n my-pnp-hub --key primary --query connectionString
大部分的快速入門和教學課程都會使用 DPS 組態 的「識別碼範圍」。 擷取識別碼範圍並立即將其記下。 使用您為 DPM 執行個體所選擇的唯一名稱來取代 my-pnp-dps
:
az iot dps show --name my-pnp-dps --query properties.idScope
所有快速入門和教學課程都會使用 DPS 裝置註冊。 使用下列命令,在 DPS 執行個體中建立my-pnp-device
個別裝置註冊。 使用您為 DPM 執行個體所選擇的唯一名稱來取代 my-pnp-dps
。 記下要在快速入門和教學課程中使用的註冊識別碼和主索引鍵:
az iot dps enrollment create --attestation-type symmetrickey --dps-name my-pnp-dps --resource-group my-pnp-resourcegroup --enrollment-id my-pnp-device --device-id my-pnp-device --query '{registrationID:registrationId,primaryKey:attestation.symmetricKey.primaryKey}'
建立環境變數
建立五個環境變數,以在快速入門和教學課程中設定範例,進而使用裝置佈建服務 (DPS) 連線到 IoT 中樞:
- IOTHUB_DEVICE_SECURITY_TYPE:值為
DPS
。 - IOTHUB_DEVICE_DPS_ID_SCOPE:您先前記下的 DPS 識別碼範圍。
- IOTHUB_DEVICE_DPS_DEVICE_ID:值為
my-pnp-device
。 - IOTHUB_DEVICE_DPS_DEVICE_KEY:您先前記下的註冊主索引鍵。
- IOTHUB_DEVICE_DPS_ENDPOINT:值為
global.azure-devices-provisioning.net
服務範例需要下列環境變數來識別要連線的中樞和裝置:
- IOTHUB_CONNECTION_STRING:您先前記下的 IoT 中樞連接字串。
- IOTHUB_DEVICE_ID:
my-pnp-device
。
例如,在 Linux bash 殼層中:
export IOTHUB_DEVICE_SECURITY_TYPE="DPS"
export IOTHUB_DEVICE_DPS_ID_SCOPE="<Your ID scope>"
export IOTHUB_DEVICE_DPS_DEVICE_ID="my-pnp-device"
export IOTHUB_DEVICE_DPS_DEVICE_KEY="<Your enrolment primary key>"
export IOTHUB_DEVICE_DPS_ENDPOINT="global.azure-devices-provisioning.net"
export IOTHUB_CONNECTION_STRING="<Your IoT hub connection string>"
export IOTHUB_DEVICE_ID="my-pnp-device"
例如,在 Windows 命令列:
set IOTHUB_DEVICE_SECURITY_TYPE=DPS
set IOTHUB_DEVICE_DPS_ID_SCOPE=<Your ID scope>
set IOTHUB_DEVICE_DPS_DEVICE_ID=my-pnp-device
set IOTHUB_DEVICE_DPS_DEVICE_KEY=<Your enrolment primary key>
set IOTHUB_DEVICE_DPS_ENDPOINT=global.azure-devices-provisioning.net
set IOTHUB_CONNECTION_STRING=<Your IoT hub connection string>
set IOTHUB_DEVICE_ID=my-pnp-device
下載模型檔案
快速入門和教學課程會針對溫度控制器和恆溫器裝置使用範例模型檔案。 若要下載範例模型檔案:
在本機電腦上建立名為 models 的資料夾。
以滑鼠右鍵按一下 TemperatureController.json,並將 JSON 檔案儲存至 models 資料夾。
以滑鼠右鍵按一下 Thermostat.json,並將 JSON 檔案儲存至 models 資料夾。
安裝 Azure IoT 檔案總管
快速入門和教學課程會使用 Azure IoT 總管工具。 移至 Azure IoT 總管版本,然後展開最新版本的資產清單。 針對您的作業系統下載並安裝最新版應用程式。
第一次執行此工具時,系統會提示您輸入 IoT 中樞連接字串。 使用您先前記下的連接字串。
設定工具以使用您先前下載的模型檔案。 從工具的首頁,選取 [IoT 隨插即用設定],然後選取 [+ 新增] > [本機資料夾]。 選取您先前建立的 models 資料夾。 然後選取 [儲存] 以儲存設定。
如需詳細資訊,請參閱安裝和使用 Azure IoT 總管。
清除資源
您可針對所有 IoT 即插即用快速入門和教學課程使用 IoT 中樞和 DPS 執行個體,因此您只需要完成本文中的步驟一次。 完成時,您可使用下列命令從訂用帳戶中將其移除:
az group delete --name my-pnp-resourcegroup
下一步
您現在已設定環境,可嘗試下列其中一個快速入門或教學課程,例如: