跳至主要内容

建立運行 IoT Edge 的虛擬機器

在 Azure 中,你可以建立一個虛擬機器 - 一台雲端中的電腦,你可以隨意配置並運行自己的軟體。

💁 你可以在 維基百科的虛擬機器頁面 上閱讀更多關於虛擬機器的資訊。

任務 - 設置 IoT Edge 虛擬機器

  1. 運行以下命令來建立一個已經預裝 Azure IoT Edge 的虛擬機器:

    az deployment group create \
    --resource-group fruit-quality-detector \
    --template-uri https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.2.0/edgeDeploy.json \
    --parameters dnsLabelPrefix=<vm_name> \
    --parameters adminUsername=<username> \
    --parameters deviceConnectionString="<connection_string>" \
    --parameters authenticationType=password \
    --parameters adminPasswordOrKey="<password>"

    <vm_name> 替換為此虛擬機器的名稱。這需要是全球唯一的,因此使用類似 fruit-quality-detector-vm- 並在末尾加上你的名字或其他值。

    <username><password> 替換為用於登錄虛擬機器的用戶名和密碼。這些需要相對安全,因此不能使用 admin/password。

    <connection_string> 替換為你的 fruit-quality-detector-edge IoT Edge 設備的連接字串。

    這將建立一個配置為 DS1 v2 的虛擬機器。這些類別表示機器的性能,因此也表示其成本。這台虛擬機器有 1 個 CPU 和 3.5GB 的 RAM。

    💰 你可以在 Azure 虛擬機器定價指南 上查看這些虛擬機器的當前定價

    一旦虛擬機器建立完成,IoT Edge 運行時將自動安裝,並配置為連接到你的 IoT 中樞作為你的 fruit-quality-detector-edge 設備。

  2. 你將需要虛擬機器的 IP 地址或 DNS 名稱來從中調用圖像分類器。運行以下命令來獲取這些資訊:

    az vm list --resource-group fruit-quality-detector \
    --output table \
    --show-details

    複製 PublicIps 欄位或 Fqdns 欄位的值。

  3. 虛擬機器是需要花費金錢的。在撰寫本文時,DS1 虛擬機器每小時約需 $0.06。為了降低成本,你應該在不使用虛擬機器時將其關閉,並在完成此專案後刪除它。

    你可以配置虛擬機器在每天的某個時間自動關閉。這意味著如果你忘記關閉它,你將不會被收取超過自動關閉時間的費用。使用以下命令來設置這個:

    az vm auto-shutdown --resource-group fruit-quality-detector \
    --name <vm_name> \
    --time <shutdown_time_utc>

    <vm_name> 替換為你的虛擬機器名稱。

    <shutdown_time_utc> 替換為你希望虛擬機器關閉的 UTC 時間,使用 4 位數字表示 HHMM。例如,如果你希望在 UTC 午夜關閉,則設置為 0000。對於美國西海岸的晚上 7:30,則使用 0230(美國西海岸的晚上 7:30 是 UTC 的 2:30AM)。

  4. 你的圖像分類器將在此邊緣設備上運行,並在端口 80(標準 HTTP 端口)上監聽。默認情況下,虛擬機器的入站端口是被阻止的,因此你需要啟用端口 80。端口是在網絡安全組上啟用的,因此首先你需要知道虛擬機器的網絡安全組名稱,可以通過以下命令找到:

    az network nsg list --resource-group fruit-quality-detector \
    --output table

    複製 Name 欄位的值。

  5. 運行以下命令來添加規則以打開網絡安全組的端口 80:

    az network nsg rule create \
    --resource-group fruit-quality-detector \
    --name Port_80 \
    --protocol tcp \
    --priority 1010 \
    --destination-port-range 80 \
    --nsg-name <nsg name>

    <nsg name> 替換為上一步中的網絡安全組名稱。

任務 - 管理你的虛擬機器以降低成本

  1. 當你不使用虛擬機器時,應該將其關閉。使用以下命令關閉虛擬機器:

    az vm deallocate --resource-group fruit-quality-detector \
    --name <vm_name>

    <vm_name> 替換為你的虛擬機器名稱。

    💁 有一個 az vm stop 命令可以停止虛擬機器,但它會保留分配給你的計算機,因此你仍然需要支付與運行時相同的費用。

  2. 要重新啟動虛擬機器,使用以下命令:

    az vm start --resource-group fruit-quality-detector \
    --name <vm_name>

    <vm_name> 替換為你的虛擬機器名稱。