步驟 2:設定環境 - AWS IoT Greengrass

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

步驟 2:設定環境

請依照本節中的步驟設定 Linux 或 Windows 裝置作為AWS IoT Greengrass核心裝置使用。

這些步驟假設您使用樹莓派與樹莓派作業系統. 如果您使用不同的裝置或作業系統,請參閱您裝置的相關文件。

若要設定樹莓派 AWS IoT Greengrass V2
  1. 在樹莓派上啟用 SSH 以遠程連接到它。如需詳細資訊,請參閱樹莓派文件中的 SSH (安全殼層)

  2. 找到您的樹莓派的 IP 地址連接到它與 SSH. 為此,您可以在 Raspberry Pi 上運行以下命令。

    hostname -I
  3. 使用 SSH Connect 到您的樹莓派。

    在您的開發電腦上,執行下列命令。將使用者名稱取代為要登入的使用者名稱,並pi-ip-address以您在上一個步驟中找到的 IP 位址取代。

    ssh username@pi-ip-address
    重要

    如果您的開發計算機使用舊版 Windows,則可能沒有該ssh命令,或者您可能有ssh但無法連接到 Raspberry Pi。要連接到樹莓派,您可以安裝和配置 PuTTY,這是一個免費的開源 SSH 客戶端。請參閱 PuTTY 文檔以連接到您的樹莓派。

  4. 安裝 Java 執行階段,AWS IoT Greengrass核心軟體需要執行。在樹莓派上,使用以下命令安裝 Java 11。

    sudo apt install default-jdk

    安裝完成後,請執行下列命令以驗證 Java 是否在您的樹莓派上執行。

    java -version

    此指令會列印在裝置上執行的 Java 版本。輸出看起來可能類似於下列範例。

    openjdk version "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2) OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
提示:在樹莓派上設置內核參數

如果您的設備是 Raspberry Pi,則可以完成以下步驟來查看和更新其 Linux 內核參數:

  1. 開啟 /boot/cmdline.txt 檔案。此檔案指定樹莓派啟動時要套用的 Linux 核心參數。

    例如,在 Linux 系統上,您可以執行下列命令來使用 GNU nano 來開啟檔案。

    sudo nano /boot/cmdline.txt
  2. 確認/boot/cmdline.txt檔案包含下列核心參數。此systemd.unified_cgroup_hierarchy=0參數會指定使用 cgroup v1 而不是使用 cgroup v2。

    cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0

    如果/boot/cmdline.txt檔案不包含這些參數,或包含這些具有不同值的參數,請更新檔案以包含這些參數和值。

  3. 如果您更新了/boot/cmdline.txt文件,請重新啟動 Raspberry Pi 以應用更改。

    sudo reboot
若要設定下列項目的 Linux 設備 AWS IoT Greengrass V2
  1. 安裝 Java 執行階段,AWS IoT Greengrass核心軟體需要執行。我們建議您使用 Amazon CorrettoOpenJDK 長期支持版本。需要版本 8 或更高版本。以下命令向您展示如何在設備上安裝 OpenJDK。

    • 針對 Debian 為基礎或 Ubuntu 為基礎的發行版本:

      sudo apt install default-jdk
    • 針對 Red Hat 為基礎的發行版本:

      sudo yum install java-11-openjdk-devel
    • 針對 Amazon Linux 2:

      sudo amazon-linux-extras install java-openjdk11
    • 對於 Amazon

      sudo dnf install java-11-amazon-corretto -y

    安裝完成時,請執行下列命令以確認 Java 是否在 Linux 裝置上執行。

    java -version

    此指令會列印在裝置上執行的 Java 版本。例如,在基於 Debian 的發行版上,輸出可能類似於以下示例。

    openjdk version "11.0.9.1" 2020-11-04
    OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
    OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
  2. (選擇性) 建立在裝置上執行元件的預設系統使用者和群組。您也可以選擇讓 AWS IoT Greengrass Core 軟體安裝程式在安裝期間使用安裝程式引數建立此使用者和群組。--component-default-user如需詳細資訊,請參閱 安裝器引數

    sudo useradd --system --create-home ggc_user sudo groupadd --system ggc_group
  3. 確認執行 AWS IoT Greengrass Core 軟體的使用者 (通常root) 具有sudo與任何使用者和任何群組一起執行的權限。

    1. 執行下列命令以開啟/etc/sudoers檔案。

      sudo visudo
    2. 確認使用者的權限看起來像下列範例。

      root ALL=(ALL:ALL) ALL
  4. (選擇性) 若要執行容器化 Lambda 函數,您必須啟用 cgroup v1,並且必須啟用並掛接記憶體和裝置 cgroup。如果您不打算執行容器化 Lambda 函數,則可以略過此步驟。

    若要啟用這些 cgroups 選項,請使用下列 Linux 核心參數來啟動裝置。

    cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0

    如需有關檢視和設定裝置核心參數的資訊,請參閱作業系統和開機載入程式的說明文件。依照指示永久設定核心參數。

  5. 依照中的需求清單所指示,在您的裝置上安裝所有其他必要的相依性裝置要求

若要設定下列項目的視窗裝置 AWS IoT Greengrass V2
  1. 安裝 Java 執行階段,AWS IoT Greengrass核心軟體需要執行。我們建議您使用 Amazon CorrettoOpenJDK 長期支持版本。需要版本 8 或更高版本。

  2. 檢查系統變數 PATH 上是否可用 Java,如果沒有,則加入它。此 LocalSystem 帳戶會執行AWS IoT Greengrass核心軟體,因此您必須將 Java 新增至系統變數 PATH,而非使用者的 PATH 使用者變數。請執行下列操作:

    1. 按視窗鍵開啟開始功能表。

    2. 鍵入environment variables以從開始功能表搜尋系統選項。

    3. 在開始功能表搜尋結果中,選擇 [編輯系統環境變數] 以開啟 [系統屬性] 視窗。

    4. 選擇環境變數... 以開啟 [環境變數] 視窗。

    5. 在 [系統變數] 下,選取 [路徑],然後選擇 [編輯]。在 「編輯」環境變數視窗中,您可以在不同的行上檢視每個路徑。

    6. 檢查 Java 安裝bin資料夾的路徑是否存在。路徑看起來可能類似下列範例。

      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
    7. 如果路徑中缺少 Java 安裝的bin資料夾,請選擇 [增] 加入,然後選擇 [確定]

  3. 以系統管理員身分開啟 Windows 命令提示字元 (cmd.exe)。

  4. 在 Windows 裝置上的 LocalSystem 帳戶中建立預設使用者。以安全密碼取代密碼。

    net user /add ggc_user password
    提示

    視您的 Windows 組態而定,使用者的密碼可能會設定為在 future 的某個日期到期。為確保您的 Greengrass 應用程式繼續運作,請追蹤密碼何時到期,並在密碼到期之前進行更新。您也可以將使用者的密碼設定為永不過期。

    • 若要檢查使用者及其密碼何時到期,請執行下列命令。

      net user ggc_user | findstr /C:expires
    • 若要將使用者的密碼設定為永不過期,請執行下列命令。

      wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
    • 如果您使用的是 Windows 10 或更新版本,而該wmic命令已被取代,請執行下列 PowerShell 命令。

      Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
  5. 在設備上從 Microsoft 下載並安裝該PsExec實用程序

  6. 使用此 PsExec 公用程式將預設使用者的使用者名稱和密碼儲存在 LocalSystem 帳戶的認證管理員執行個體中。以您先前設定的使用者密碼取代密碼。

    psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password

    如果打PsExec License Agreement開,請選Accept擇同意許可證並運行命令。

    注意

    在 Windows 裝置上, LocalSystem 帳戶會執行 Greengrass 核心,而且您必須使用公用 PsExec 程式將預設使用者資訊儲存在帳戶中。 LocalSystem 使用認證管理員應用程式會將此資訊儲存在目前登入使用者的 Windows 帳戶中,而非 LocalSystem 帳戶中。