

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

# 步驟 2：設定您的環境
<a name="getting-started-set-up-environment"></a>

**注意**  
這些步驟不適用於 nucleus lite。

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

## 設定 Linux 裝置 (Raspberry Pi)
<a name="getting-started-set-up-raspberry-pi"></a>

這些步驟假設您使用 Raspberry Pi 搭配 Raspberry Pi 作業系統。如果您使用不同的裝置或作業系統，請參閱裝置的相關文件。

**為 設定 Raspberry Pi AWS IoT Greengrass V2**

1. 在 Raspberry Pi 上啟用 SSH 以遠端連線到它。如需詳細資訊，請參閱 *Raspberry Pi 文件*中的 [SSH （安全殼層）](https://www.raspberrypi.com/documentation/computers/remote-access.html#ssh)。

1. 尋找 Raspberry Pi 的 IP 地址，以使用 SSH 與其連線。若要這樣做，您可以在 Raspberry Pi 上執行下列命令。

   ```
   hostname -I
   ```

1. 使用 SSH 連線至 Raspberry Pi。

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

   ```
   ssh username@pi-ip-address
   ```
**重要**  
如果您的開發電腦使用舊版 Windows，您可能沒有 `ssh`命令，或者您可能有 ，`ssh`但無法連線到 Raspberry Pi。若要連線至 Raspberry Pi，您可以安裝和設定 [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)，這是免費的開放原始碼 SSH 用戶端。請參閱 [PuTTY 文件](https://tartarus.org/~simon/putty-snapshots/htmldoc/Chapter2.html#gs)以連接至 Raspberry Pi。

1. 安裝執行 AWS IoT Greengrass 核心軟體所需的 Java 執行時間。在 Raspberry Pi 上，使用下列命令來安裝 Java 11。

   ```
   sudo apt install default-jdk
   ```

   安裝完成後，請執行下列命令來驗證 Java 是否在您的 Raspberry Pi 上執行。

   ```
   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 上設定核心參數**  
如果您的裝置是 Raspberry Pi，您可以完成以下步驟來檢視和更新其 Linux 核心參數：  
開啟 `/boot/cmdline.txt` 檔案。此檔案指定要在 Raspberry Pi 開機時套用的 Linux 核心參數。  
例如，在以 Linux 為基礎的系統上，您可以執行下列命令來使用 GNU nano 來開啟 檔案。  

   ```
   sudo nano /boot/cmdline.txt
   ```
確認`/boot/cmdline.txt`檔案包含下列核心參數。`systemd.unified_cgroup_hierarchy=0` 參數指定 使用 cgroups v1 而非 cgroups v2。  

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```
如果`/boot/cmdline.txt`檔案不包含這些參數，或包含具有不同值的這些參數，請更新檔案以包含這些參數和值。
如果您更新`/boot/cmdline.txt`檔案，請重新啟動 Raspberry Pi 以套用變更。  

   ```
   sudo reboot
   ```

## 設定 Linux 裝置 （其他）
<a name="getting-started-set-up-linux"></a><a name="set-up-linux-device-environment-procedure"></a>

**設定 的 Linux 裝置 AWS IoT Greengrass V2**

1. 安裝執行 AWS IoT Greengrass 核心軟體所需的 Java 執行時間。我們建議您使用 [Amazon Corretto](https://aws.amazon.com/corretto/) 或 [OpenJDK](https://openjdk.java.net/) 長期支援版本。第 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 Linux 2023：

     ```
     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)
   ```

1. （選用） 建立在裝置上執行元件的預設系統使用者和群組。您也可以選擇讓 AWS IoT Greengrass Core 軟體安裝程式在安裝期間使用`--component-default-user`安裝程式引數建立此使用者和群組。如需詳細資訊，請參閱[安裝程式引數](configure-installer.md)。

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. 確認執行 AWS IoT Greengrass 核心軟體的使用者 （通常為 `root`) 具有使用任何使用者和任何群組執行 `sudo` 的許可。

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

      ```
      sudo visudo
      ```

   1. 確認使用者的許可如下範例所示。

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. （選用） 若要[執行容器化 Lambda 函數](run-lambda-functions.md)，您必須啟用 [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1，而且必須啟用和掛載*記憶體*和*裝置* cgroups。如果您不打算執行容器化 Lambda 函數，您可以略過此步驟。

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

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

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

1. 在裝置上安裝所有其他必要的相依性，如 中的需求清單所示[裝置要求](greengrass-nucleus-component.md#greengrass-v2-requirements)。

## 設定 Windows 裝置
<a name="getting-started-set-up-windows"></a><a name="set-up-windows-device-environment-procedure"></a>

**為 設定 Windows 裝置 AWS IoT Greengrass V2**

1. 安裝執行 AWS IoT Greengrass 核心軟體所需的 Java 執行時間。我們建議您使用 [Amazon Corretto](https://aws.amazon.com/corretto/) 或 [OpenJDK](https://openjdk.java.net/) 長期支援版本。第 8 版或更新版本為必要項目。

1. 檢查 [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) 系統變數上是否提供 Java，如果沒有，請新增它。LocalSystem 帳戶會執行 AWS IoT Greengrass Core 軟體，因此您必須將 Java 新增至 PATH 系統變數，而不是使用者的 PATH 使用者變數。請執行下列操作：

   1. 按 Windows 鍵開啟開始選單。

   1. 輸入 **environment variables** 以從開始功能表搜尋系統選項。

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

   1. 選擇**環境變數...**以開啟**環境變數**視窗。

   1. 在**系統變數**下，選取**路徑**，然後選擇**編輯**。在**編輯環境變數**視窗中，您可以檢視個別行上的每個路徑。

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

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. 如果**路徑**中缺少 Java 安裝的`bin`資料夾，請選擇**新增**以新增，然後選擇**確定**。

1. <a name="set-up-windows-device-environment-open-cmd"></a>以管理員身分開啟 Windows 命令提示字元 (`cmd.exe`)。

1. <a name="set-up-windows-device-environment-create"></a>在 Windows 裝置上的 LocalSystem 帳戶中建立預設使用者。將*密碼*取代為安全密碼。

   ```
   net user /add ggc_user password
   ```
**提示**  <a name="windows-password-expiration-tip"></a>
根據您的 Windows 組態，使用者的密碼可能會設定為在未來的日期過期。為了確保您的 Greengrass 應用程式持續運作，請追蹤密碼過期的時間，並在過期之前更新它。您也可以將使用者的密碼設定為永不過期。  
若要檢查使用者及其密碼何時過期，請執行下列命令。  

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

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
如果您使用的是[`wmic`已棄用命令](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic)的 Windows 10 或更新版本，請執行下列 PowerShell 命令。  

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>從 Microsoft 在裝置上下載並安裝 [PsExec 公用程式](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec)。

1. <a name="set-up-windows-device-credentials"></a>使用 PsExec 公用程式，將預設使用者的使用者名稱和密碼存放在 LocalSystem 帳戶的 Credential Manager 執行個體中。將*密碼*取代為您先前設定的使用者密碼。

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

   如果 **PsExec License Agreement** 開啟，請選擇 以**Accept**同意授權並執行 命令。
**注意**  
在 Windows 裝置上，LocalSystem 帳戶會執行 Greengrass 核，而且您必須使用 PsExec 公用程式將預設使用者資訊存放在 LocalSystem 帳戶中。使用 Credential Manager 應用程式會將此資訊存放在目前登入使用者的 Windows 帳戶中，而不是 LocalSystem 帳戶。