配置您的裝置執行 IDT 測試 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 於 2023 年 6 月 30 日進入延長壽命階段。如需詳細資訊,請參閱 AWS IoT Greengrass V1 維護政策 。在此日期之後, AWS IoT Greengrass V1 不會發佈提供功能、增強功能、錯誤修正或安全修補程式的更新。在 上執行的裝置 AWS IoT Greengrass V1 不會中斷,並會繼續運作和連線至雲端。我們強烈建議您遷移至 AWS IoT Greengrass Version 2,這會新增重要的新功能,並支援其他平台

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

配置您的裝置執行 IDT 測試

若要設定您的裝置,您必須安裝 AWS IoT Greengrass 相依性、設定 AWS IoT Greengrass Core 軟體、設定主機電腦來存取您的裝置,以及在您的裝置上設定使用者許可。

確認測試裝置上的 AWS IoT Greengrass 相依性

IDT 之前AWS IoT Greengrass可以測試您的裝置,請確定您已設定您的裝置,如入門AWS IoT Greengrass。如需受支援平台的相關資訊,請參閱支援的平台

設定 AWS IoT Greengrass 軟體

IDT for AWS IoT Greengrass 會測試您的裝置與特定版本的 AWS IoT Greengrass 是否相容。IDT 提供兩個選項在您的裝置上測試 AWS IoT Greengrass:

  • 下載並使用某個版本的 AWS IoT Greengrass Core 軟體。IDT 會為您安裝此軟體。

  • 使用已安裝在您裝置上的 AWS IoT Greengrass Core 軟體版本。

注意

每個 AWS IoT Greengrass 版本都有對應的 IDT 版本。您下載的 IDT 版本必須對應於您所使用的 AWS IoT Greengrass 版本。

下列各節描述這些選項。您只需要執行一個選項。

您可以使用下載AWS IoT Greengrass核心軟體AWS IoT Greengrass核心軟體下載頁面。

  1. 尋找正確的架構和 Linux 發行版本,然後選擇 Download (下載)

  2. 將 tar.gz 檔案複製到 <device-tester-extract-location>/products/greengrass/ggc

注意

請勿變更 AWS IoT Greengrass tar.gz 檔案的名稱。請勿將相同作業系統和架構的多個檔案放在這個目錄中。例如,將 greengrass-linux-armv7l-1.7.1.tar.gzgreengrass-linux-armv7l-1.8.1.tar.gz 檔案放在該目錄中將導致測試失敗。

greengrassLocation 屬性新增至 <device-tester-extract-location>/configs 資料夾的 device.json 檔案,以設定 IDT 來測試您的裝置上已安裝的 AWS IoT Greengrass Core 軟體。例如:

"greengrassLocation" : "<path-to-greengrass-on-device>"

如需 device.json 詳細資訊,請參閱 設定 device.json

在 Linux 裝置上,AWS IoT Greengrass Core 軟體的預設位置是 /greengrass

注意

您的裝置必須已安裝一個尚未啟動的 AWS IoT Greengrass Core 軟體。

請確定您已在裝置上新增 ggc_user 使用者和 ggc_group。如需詳細資訊,請參閱 AWS IoT Greengrass 的環境設定

設定主機電腦以存取待測裝置

IDT 是在您的主機電腦上執行,而且必須能夠使用 SSH 連線到您的裝置。有兩個選項允許 IDT 取得待測裝置的 SSH 存取權:

  1. 依照此處的指示來建立 SSH 金鑰對,並授權您的金鑰可以登入待測裝置,無需指定密碼。

  2. 提供 device.json 檔案中每個裝置的使用者名稱和密碼。如需詳細資訊,請參閱 設定 device.json

您可以使用任何 SSL 實作來建立 SSH 金鑰。以下指示展示如何使用 SSH-KEYGEN PuTTYgen (適用於 Windows)。如果您使用的是另一個 SSL 實作,請參閱該實作的文件。

IDT 使用 SSH 金鑰向待測裝置進行驗證。

使用 SSH-KEYGEN 建立 SSH 金鑰
  1. 建立 SSH 金鑰。

    您可以使用 Open SSH ssh-keygen 命令建立 SSH 金鑰對。如果您的主機電腦上已有 SSH 金鑰對,則最佳實務是特別為 IDT 建立 SSH 金鑰對。如此一來,在您完成測試之後,若沒有輸入密碼,主機電腦再也無法連接至您的裝置。它還可讓您限制只有需要遠端裝置的人,才能存取該裝置。

    注意

    Windows 沒有安裝的 SSH 用戶端。如需在 Windows 上安裝 SSH 用戶端的詳細資訊,請參閱下載 SSH 用戶端軟體

    ssh-keygen 命令會提示您提供金鑰對的存放名稱和路徑。根據預設,該金鑰對檔案會命名為 id_rsa (私有金鑰) 和 id_rsa.pub (公有金鑰)。在 macOS 和 Linux 上,這些檔案的預設位置是 ~/.ssh/。在 Windows 上,預設位置為 C:\Users\<user-name>\.ssh

    出現提示時,請輸入金鑰字詞來保護您的 SSH 金鑰。如需詳細資訊,請參閱產生新的 SSH 金鑰

  2. 將授權的 SSH 金鑰新增至待測裝置。

    IDT 必須使用您的 SSH 私有金鑰登入待測裝置。請從您的主機電腦使用 ssh-copy-id 命令,授權您的 SSH 私有金鑰登入待測裝置。此命令會將您的公有金鑰新增至待測裝置上的 ~/.ssh/authorized_keys 檔案。例如:

    $ ssh-copy-id <remote-ssh-user>@<remote-device-ip>

    remote-ssh-user 是用來登入測試裝置的使用者名稱,而 remote-device-ip 是要執行測試的測試裝置 IP 地址。例如:

    ssh-copy-id pi@192.168.1.5

    出現提示時,請輸入您在 ssh-copy-id 命令中指定的使用者名稱密碼。

    ssh-copy-id 假設公有金鑰名為 id_rsa.pub,並存放在預設位置 (macOS 和 Linux 為 ~/.ssh/,Windows 為 C:\Users\<user-name>\.ssh)。如果您給公有金鑰不同的名稱,或將其存放在不同的位置中,則必須在 ssh-copy-id 中使用 -i 選項,以指定 SSH 公有金鑰的完整路徑 (例如,ssh-copy-id -i ~/my/path/myKey.pub)。如需有關建立 SSH 金鑰和複製公有金鑰的詳細資訊,請參閱 SSH-COPY-ID

使用 PuTTYgen 建立 SSH 金鑰 (僅限 Windows)
  1. 確定您的待測裝置上已安裝 OpenSSH 伺服器和用戶端。如需詳細資訊,請參閱 OpenSSH

  2. 在您的待測裝置上安裝 PuTTYgen

  3. 開啟 PuTTYgen。

  4. 選擇 Generate (產生),並將滑鼠游標移到方塊內以產生私有金鑰。

  5. Conversions (轉換) 功能表中,選擇 Export OpenSSH key (匯出 OpenSSH 金鑰),然後以 .pem 副檔名儲存私有金鑰。

  6. 將公有金鑰新增至待測裝置上的 /home/<user>/.ssh/authorized_keys 檔案。

    1. 從 PuTTYgen 視窗複製公有金鑰文字。

    2. 使用 PuTTY 在您的待測裝置上建立工作階段。

      1. 從命令提示字元或 Windows Powershell 視窗中,執行下列命令:

        C:/<path-to-putty>/putty.exe -ssh <user>@<dut-ip-address>

      2. 出現提示時,請輸入您裝置的密碼。

      3. 使用 vi 或其他文字編輯器,將公有金鑰附加到待測裝置上的 /home/<user>/.ssh/authorized_keys 檔案。

  7. 使用您的使用者名稱、IP 地址,以及私有金鑰檔案的路徑 (您剛針對待測裝置將該檔案儲存在主機電腦上) 來更新 device.json 檔案。如需詳細資訊,請參閱 設定 device.json。請務必提供私有金鑰的完整路徑和檔案名稱,並使用正斜線 ('/')。例如,若為 Windows 路徑 C:\DT\privatekey.pem,請在 device.json 檔案中使用 C:/DT/privatekey.pem

在您的裝置上設定使用者許可

IDT 會在待測裝置的各種目錄和檔案上執行操作。其中某些操作需要較高的許可 (使用 sudo)。IDT for AWS IoT Greengrass 必須能夠在不提示輸入密碼的情況下使用 sudo 執行命令,才能自動化這些操作。

在待測裝置上依照以下步驟,在不提示輸入密碼的情況下允許 sudo 存取。

注意

username 是指 IDT 存取待測裝置時所使用的 SSH 使用者。

將使用者新增至 sudo 群組
  1. 在待測裝置上,執行 sudo usermod -aG sudo <username>

  2. 登出後再重新登入,以使變更生效。

  3. 若要驗證是否已成功新增您的使用者名稱,請執行 sudo echo test。如果未提示您輸入密碼,表示已正確設定您的使用者。

  4. 開啟 /etc/sudoers 檔案,然後在檔案結尾處新增以下一行:

    <ssh-username> ALL=(ALL) NOPASSWD: ALL

設定您的裝置以測試選用功能

下列主題說明如何設定您的裝置以針對選用功能執行 IDT 測試。只有在您想要測試這些功能時,才需遵循這些設定步驟。否則,請繼續進行配置 IDT 設置以運行AWS IoT Greengrass資格套件