支援終止通知:2026 年 10 月 7 日 AWS 將停止 的支援 AWS IoT Greengrass Version 1。2026 年 10 月 7 日之後,您將無法再存取 AWS IoT Greengrass V1 資源。如需詳細資訊,請造訪從 遷移 AWS IoT Greengrass Version 1。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 Amazon EC2 執行個體
請遵循本主題中的步驟,設定 Amazon EC2 執行個體以用作您的 AWS IoT Greengrass 核心。
提示
或者,若要使用指令碼來設定您的環境並為您安裝 AWS IoT Greengrass 核心軟體,請參閱 快速入門:Greengrass 裝置安裝。
雖然您可以使用 Amazon EC2 執行個體完成本教學課程, AWS IoT Greengrass 但最好搭配實體硬體使用。我們建議您盡可能設定 Raspberry Pi,而不是使用 Amazon EC2 執行個體。如果您正在使用 Raspberry Pi,您不需要遵循本主題中的步驟。
-
登入 AWS 管理主控台
並使用 Amazon Linux AMI 啟動 Amazon EC2 執行個體。如需 Amazon EC2 執行個體的相關資訊,請參閱《Amazon EC2 入門指南》。 -
Amazon EC2 執行個體執行後,請啟用連接埠 8883 以允許傳入的 MQTT 通訊,讓其他裝置可以與 AWS IoT Greengrass 核心連線。
-
在 Amazon EC2 主控台的導覽窗格中,選擇安全群組。
-
選取您剛啟動之執行個體的安全群組,然後選擇傳入規則索引標籤。
-
選擇 Edit inbound Rules (編輯傳入規則)。
若要啟用連接埠 8883,您需新增自訂的 TCP 規則至安全群組。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的將規則新增至安全群組。
-
在編輯傳入規則頁面上,選擇新增規則,輸入下列設定,然後選擇儲存。
-
針對 Type (類型),選擇 Custom TCP Rule (自訂 TCP 規則)。
-
針對連接埠範圍,輸入
8883。 -
針對 Source (來源),選擇 Anywhere (隨處)。
-
對於 Description (說明),輸入
MQTT Communications。
-
-
-
連線到您的 Amazon EC2 執行個體。
-
在導覽窗格中,選擇 Instances (執行個體),選擇您的執行個體,然後選擇 Connect (連線)。
-
依照 Connect To Your Instance (連線至您的執行個體) 頁面中的說明,使用 SSH 和您的私密金鑰檔案連線至您的執行個體。
您可以使用適用於 Windows 的 PuTTY 或適用於 macOS 的終端機。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的連線至 Linux 執行個體。
您現在已準備好設定 Amazon EC2 執行個體 AWS IoT Greengrass。
-
-
連線至 Amazon EC2 執行個體後,請建立
ggc_user和ggc_group帳戶:sudo adduser --system ggc_user sudo groupadd --system ggc_group注意
如果在您系統中沒有可用的
adduser命令,請使用以下命令。sudo useradd --system ggc_user -
為了提高安全性,請確定在啟動時已在 Amazon EC2 執行個體的作業系統上啟用硬連結和軟連結 (符號連結) 保護。
注意
啟用 hardlink 和 softlink 保護的步驟會因作業系統而有所不同。請參閱文件來了解您的發行版本。
-
執行以下命令來檢查是否已啟用 hardlink 和 softlink 保護:
sudo sysctl -a | grep fs.protected如果 hardlinks 和 softlinks 已設定為
1,您的保護就會正確啟用。繼續進行步驟 6。注意
Softlink 會以
fs.protected_symlinks顯示。 -
如果 hardlinks 和 softlinks 未設定為
1,則啟用這些保護。導覽至您的系統組態檔案。cd /etc/sysctl.d ls -
使用您喜愛的文字編輯器 (例如 Leafpad、GNU nano 或 vi),將以下兩行新增至系統組態檔案結尾。在 Amazon Linux 1 上,這是
00-defaults.conf檔案。在 Amazon Linux 2 上,這是99-amazon.conf檔案。您可能需要變更許可 (使用chmod命令),才能寫入檔案,或使用sudo命令以根編輯 (例如,sudo nano)。00-defaults.conffs.protected_hardlinks = 1 fs.protected_symlinks = 1 -
重新啟動 Amazon EC2 執行個體。
sudo reboot在幾分鐘後,透過 SSH 連線到您的執行個體,然後執行以下命令來確認變更。
sudo sysctl -a | grep fs.protected您應該會看到 hardlinks 和 softlinks 設為 1。
-
-
擷取並執行下列指令碼來掛載 Linux 控制群組
(群組)。這可讓 AWS IoT Greengrass 設定 Lambda 函數的記憶體限制。在 AWS IoT Greengrass 預設容器化模式中執行 時,也需要 Cgroup。 curl https://raw.githubusercontent.com/tianon/cgroupfs-mount/951c38ee8d802330454bdede20d85ec1c0f8d312/cgroupfs-mount > cgroupfs-mount.sh chmod +x cgroupfs-mount.sh sudo bash ./cgroupfs-mount.sh您的 Amazon EC2 執行個體現在應已準備就緒 AWS IoT Greengrass。
-
選用。安裝串流管理員需要的 Java 8 執行時間。本教學課程不會使用串流管理員,但是會使用預設啟用串流管理員的 Default Group creation (預設群組建立) 工作流程。部署群組之前,先使用下列命令在核心裝置上安裝 Java 8 執行時間,或停用串流管理員。單元 3 中提供了停用串流管理員的指示。
-
針對 Debian 為基礎的發行版本:
sudo apt install openjdk-8-jdk -
針對 Red Hat 為基礎的發行版本:
sudo yum install java-1.8.0-openjdk
-
-
為了確保您擁有所有必要的相依性,請從 GitHub 上的AWS IoT Greengrass 範例
儲存庫下載並執行 Greengrass 相依性檢查程式。這些命令會在您的 Amazon EC2 執行個體中下載、解壓縮和執行相依性檢查程式指令碼。 mkdir greengrass-dependency-checker-GGCv1.11.x cd greengrass-dependency-checker-GGCv1.11.x wget https://github.com/aws-samples/aws-greengrass-samples/raw/master/greengrass-dependency-checker-GGCv1.11.x.zip unzip greengrass-dependency-checker-GGCv1.11.x.zip cd greengrass-dependency-checker-GGCv1.11.x sudo ./check_ggc_dependencies | more重要
本教學課程需要 Python 3.7 執行時間來執行本機 Lambda 函數。啟用串流管理員時,串流管理員需要 Java 8 執行時間。如果
check_ggc_dependencies指令碼產生了與這些遺漏執行時間事前準備有關的警告,請確認在您繼續前已安裝了這些項目。您可以忽略與其他遺漏選用執行時間事前準備有關的警告。
您的 Amazon EC2 執行個體組態已完成。繼續進行單元 2:安裝 AWS IoT Greengrass 核心軟體。