共用方式為


在 Ubuntu 虛擬機器上執行 Azure IoT Edge

適用於:勾選圖示 IoT Edge 1.1

這很重要

IoT Edge 1.1 終止支援日期為 2022 年 12 月 13 日。 如需此產品、服務、技術或 API 的支援資訊,請參閱 Microsoft 產品生命週期。 如需更新至最新版 IoT Edge 的詳細資訊,請參閱 更新 IoT Edge

Azure IoT Edge 執行階段是將裝置轉換成 IoT Edge 裝置的功能。 可在小至 Raspberry Pi、大至工業伺服器的裝置上部署執行階段。 在裝置上設定 IoT Edge 執行階段後,就可以開始從雲端將商務邏輯部署到裝置上。

若要深入了解 IoT Edge 執行階段的運作方式,以及會包含哪些元件,請參閱了解 Azure IoT Edge 執行階段及其架構

本文列出使用預先提供的裝置連接字串來安裝及設定 Azure IoT Edge 運行時間的 Ubuntu 18.04 LTS 虛擬機的步驟。 部署是使用 cloud-initAzure Resource Manager 範本來完成,而此範本是在 iotedge-vm-deploy 專案存放庫中維護。

在第一次開機時,虛擬機器會透過 cloud-init 安裝最新版的 Azure IoT Edge 執行階段。 其也會在執行階段啟動之前設定提供的連接字串,讓您輕鬆設定和連線 IoT Edge 裝置,而不需要啟動 SSH 或遠端桌面工作階段。

使用 Azure 部署按鈕進行部署

部署至 Azure 按鈕可讓您簡化部署 GitHub 上維護的 Azure Resource Manager 範本。 本節將示範 iotedge-vm-deploy 專案存放庫中所含的部署至 Azure 按鈕的使用方式。

  1. 我們將使用 iotedge-vm-deploy Azure Resource Manager 範本來部署已啟用 Azure IoT Edge 的 Linux VM。 若要開始,請按下列按鈕:

    iotedge-vm-deploy 的 [部署至 Azure] 按鈕

  2. 在新啟動的視窗上,填入可用的表單欄位:

    顯示 iotedge-vm-deploy 範本的螢幕擷取畫面

    領域 說明
    訂用帳戶 要在其中部署虛擬機器的目前作用中的 Azure 訂用帳戶。
    資源群組 現有或新建立的資源群組,其中包含虛擬機器及其相關聯的資源。
    區域 要在其中部署虛擬機器的地理區域,此值預設為所選資源群組的位置。
    DNS 標籤首碼 您選擇的必要值,用來為虛擬機器的主機名稱加上前置詞。
    系統管理員使用者名稱 在部署時將會提供 root 權限的使用者名稱。
    裝置連接字串 為您在預定的IoT 中樞內建立的裝置提供裝置連接字串
    VM 大小 要部署的虛擬機器大小
    Ubuntu OS 版本 要安裝在基礎虛擬機器上的 Ubuntu 作業系統版本。
    驗證類型 選擇 [sshPublicKey] 或 [密碼],取決於您的喜好設定。
    系統管理員密碼或金鑰 SSH 公開金鑰的值或密碼的值,取決於選擇的驗證類型。

    填入所有欄位時,點擊底部的按鈕以移至 Next : Review + create,您可以在那裡檢閱條款,然後點擊 [ 建立 ] 開始部署。

  3. 確認部署已順利完成。 虛擬機資源應該已部署到選取的資源群組中。 記下電腦名稱,其格式應為 vm-0000000000000。 此外,請記下相關聯的 DNS 名稱,其格式應該是 <dnsLabelPrefix>.<location>.cloudapp.azure.com。

    DNS 名稱可從 Azure 入口網站內新部署虛擬機器的 [概觀] 區段取得。

  4. 如果您想要在設定之後使用 SSH 來連線到此 VM,請使用相關聯的 DNS 名稱並搭配下列命令:ssh <adminUsername>@<DNS_Name>

從 Azure CLI 進行部署

  1. 請確定您已透過下列指令安裝 Azure CLI 的 IoT 延伸模組:

    az extension add --name azure-iot
    
  2. 接下來,如果您在桌面上使用 Azure CLI,請從登入開始:

    az login
    
  3. 如果您有多個訂用帳戶,請選取想要使用的訂用帳戶:

    1. 列出您的訂用帳戶:

      az account list --output table
      
    2. 複製想要使用的訂用帳戶 SubscriptionID 欄位。

    3. 使用您所複製的識別碼來設定工作訂用帳戶:

      az account set -s <SubscriptionId>
      
  4. 建立新的資源群組 (或在下一個步驟中指定現有的資源群組):

    az group create --name IoTEdgeResources --location westus2
    
  5. 建立新的虛擬機器:

    若要使用passwordauthenticationType,請參閱下列範例:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.1/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='password' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_SECRET_PASSWORD>"
    

    若要使用 SSH 金鑰進行驗證,您可以藉由指定 sshPublicKey 來執行此動作,然後在 adminPasswordOrKey 參數中提供 SSH 金鑰的值。 範例如下所示。

    #Generate the SSH Key
    ssh-keygen -m PEM -t rsa -b 4096 -q -f ~/.ssh/iotedge-vm-key -N ""
    
    #Create a VM using the iotedge-vm-deploy script
    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.1/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='sshPublicKey' \
    --parameters adminPasswordOrKey="$(< ~/.ssh/iotedge-vm-key.pub)"
    
  6. 確認部署已順利完成。 虛擬機資源應該已部署到選取的資源群組中。 記下電腦名稱,其格式應為 vm-0000000000000。 此外,請記下相關聯的 DNS 名稱,其格式應該是 <dnsLabelPrefix>.<location>.cloudapp.azure.com。

    DNS 名稱可以從上一個步驟的 JSON 格式輸出中取得,其位於作為公用 SSH 項目一部分的 [輸出] 區段內。 此項目的值可以用來透過 SSH,連線到新部署的電腦。

    "outputs": {
      "public SSH": {
        "type": "String",
        "value": "ssh <adminUsername>@<DNS_Name>"
      }
    }
    

    您也可以在 Azure 入口網站中新部署的虛擬機器的 概觀 區段中取得 DNS 名稱

  7. 如果您想要在設定之後使用 SSH 來連線到此 VM,請使用相關聯的 DNS 名稱並搭配下列命令:ssh <adminUsername>@<DNS_Name>

後續步驟

現在您已佈建 IoT Edge 裝置並安裝執行階段,接下來您可以部署 IoT Edge 模組

如果您不確定 IoT Edge 執行階段是否已正確安裝,請參閱疑難排解頁面。

若要將現有安裝更新為最新版的 IoT Edge,請參閱更新 IoT Edge 安全性精靈和執行階段

如果您想要開啟埠,以透過 SSH 或其他入站連線來存取 VM,請參閱 Azure 虛擬機器文件中關於開啟 Linux VM 埠和端點的部分。