本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
安裝自動資源佈建的 AWS IoT Greengrass 核心軟體
AWS IoT Greengrass 核心軟體包含一個安裝程式,可將您的裝置設定為 Greengrass 核心裝置。若要快速設定裝置,安裝程式可以佈建核心裝置操作所需的 AWS IoT 物件、物件群組、 AWS IoT 角色和角色別名。 AWS IoT IAM安裝程式也可以將本機開發工具部署到核心裝置,以便您可以使用該裝置來開發和測試自訂軟體元件。安裝程式需要 AWS 認證,才能佈建這些資源並建立部署。
如果您無法提供 AWS 認證給設備,則可以佈建核心設備操作所需的 AWS 資源。您也可以將開發工具部署到核心裝置,做為開發裝置使用。這可讓您在執行安裝程式時提供較少的裝置權限。如需詳細資訊,請參閱透過手動佈建資源安裝 AWS IoT Greengrass 核心軟體。
重要
在您下載 AWS IoT Greengrass Core 軟體之前,請檢查您的核心裝置是否符合安裝和執行 AWS IoT Greengrass Core 軟體 2.0 的需求。
設定裝置環境
請依照本節中的步驟設定 Linux 或 Windows 裝置作為 AWS IoT Greengrass 核心裝置使用。
設定裝置
若要設定下列項目的 Linux 設備 AWS IoT Greengrass V2
-
安裝 Java 執行階段, AWS IoT Greengrass 核心軟體需要執行。我們建議您使用 Amazon Corretto
或開放JDK 長期支援版本。需要版本 8 或更高版本。下列指令會示範如何在裝置JDK上安裝 Open。 -
針對 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)
-
-
(選擇性) 建立在裝置上執行元件的預設系統使用者和群組。您也可以選擇讓 AWS IoT Greengrass Core 軟體安裝程式在安裝期間使用安裝程式引數建立此使用者和群組。
--component-default-user
如需詳細資訊,請參閱安裝器引數。sudo useradd --system --create-home ggc_user sudo groupadd --system ggc_group
-
確認執行 AWS IoT Greengrass Core 軟體的使用者 (通常
root
) 具有sudo
與任何使用者和任何群組一起執行的權限。-
執行下列命令以開啟
/etc/sudoers
檔案。sudo visudo
-
確認使用者的權限看起來像下列範例。
root ALL=(ALL:ALL) ALL
-
-
(選擇性) 若要執行容器化 Lambda 函數,您必須啟用 cgroup
v1,並且必須啟用並掛接記憶體和裝置 cgroup。如果您不打算執行容器化 Lambda 函數,則可以略過此步驟。 若要啟用這些 cgroups 選項,請使用下列 Linux 核心參數來啟動裝置。
cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
如需有關檢視和設定裝置核心參數的資訊,請參閱作業系統和開機載入程式的說明文件。依照指示永久設定核心參數。
-
依照中的需求清單所指示,在您的裝置上安裝所有其他必要的相依性裝置要求。
設定視窗裝置
注意
此功能適用於 v2.5.0 及更高版 Greeng rass 核組件。
若要設定下列項目的視窗裝置 AWS IoT Greengrass V2
-
安裝 Java 執行階段, AWS IoT Greengrass 核心軟體需要執行。我們建議您使用 Amazon Corretto
或開放JDK 長期支援版本。需要版本 8 或更高版本。 -
檢查 Java 是否可用於PATH
系統變數,如果沒有,則加入它。此 LocalSystem 帳戶會執行 AWS IoT Greengrass Core 軟體,因此您必須將 Java 新增至PATH系統變數,而非PATH使用者的使用者變數。請執行下列操作: -
按視窗鍵開啟開始功能表。
-
鍵入
environment variables
以從開始功能表搜尋系統選項。 -
在開始功能表搜尋結果中,選擇 [編輯系統環境變數] 以開啟 [系統屬性] 視窗。
-
選擇環境變數... 以開啟 [環境變數] 視窗。
-
在 [系統變數] 下,選取 [路徑],然後選擇 [編輯]。在 「編輯」環境變數視窗中,您可以在不同的行上檢視每個路徑。
-
檢查 Java 安裝
bin
資料夾的路徑是否存在。路徑看起來可能類似下列範例。C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
-
如果路徑中缺少 Java 安裝的
bin
資料夾,請選擇 [新增] 加入,然後選擇 [確定]。
-
-
以系統管理員身分開啟 Windows 命令提示字元 (
cmd.exe
)。 -
在 Windows 裝置上的 LocalSystem 帳戶中建立預設使用者。Replace (取代)
password
使用安全密碼。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"}
-
-
在設備上從 Microsoft 下載並安裝該PsExec實用程序
。 -
使用此 PsExec 公用程式將預設使用者的使用者名稱和密碼儲存在 LocalSystem 帳戶的認證管理員執行個體中。Replace (取代)
password
使用您之前設置的用戶密碼。psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:
password
如果打PsExec License Agreement開,請選Accept擇同意許可證並運行命令。
注意
在 Windows 裝置上, LocalSystem 帳戶會執行 Greengrass 核心,而且您必須使用公用 PsExec 程式將預設使用者資訊儲存在帳戶中。 LocalSystem 使用認證管理員應用程式會將此資訊儲存在目前登入使用者的 Windows 帳戶中,而非 LocalSystem 帳戶中。
提供 AWS 認證給設備
將您的 AWS 認證提供給您的裝置,以便安裝程式可以佈建所需的 AWS 資源。如需所需許可的詳細資訊,請參閱安裝程式佈建資源的最低 IAM 政策。
提供 AWS 認證給設備
-
提供您的 AWS 認證給設備,以便安裝程序可以為您的核心設備佈建 AWS IoT 和IAM資源。若要提高安全性,建議您取得僅允許佈建所需的最低權限之IAM角色的臨時登入資料。如需詳細資訊,請參閱安裝程式佈建資源的最低 IAM 政策。
注意
安裝程式不會儲存或儲存您的認證。
在您的裝置上,執行下列其中一項動作以擷取認證,並將其提供給 AWS IoT Greengrass Core 軟體安裝程式:
-
(建議) 使用來源的暫時認證 AWS IAM Identity Center
-
提供IAM身分識別中心的存取金鑰 ID、秘密存取金鑰和工作階段權杖。如需詳細資訊,請參閱 IAM Identity Center 使用者指南中的取得和重新整理暫時認證中的手動認證重新整理。
-
執行下列命令,將認證提供給 AWS IoT Greengrass Core 軟體。
-
-
使用IAM角色的臨時安全登入資料:
-
從您承擔的IAM角色中提供存取金鑰 ID、秘密存取金鑰和工作階段 Token。如需如何擷取這些認證的詳細資訊,請參閱IAM使用者指南中的要求臨時安全登入資料。
-
執行下列命令,將認證提供給 AWS IoT Greengrass Core 軟體。
-
-
使用使用IAM者的長期認證:
-
為您的IAM使用者提供存取金鑰 ID 和秘密存取金鑰。您可以建立稍後刪除的啟動設定IAM使用者。如需提供給使用者的IAM策略,請參閱安裝程式佈建資源的最低 IAM 政策。如需如何擷取長期認證的詳細資訊,請參閱《使IAM用者指南》中的〈管理使用IAM者的存取金鑰〉。
-
執行下列命令,將認證提供給 AWS IoT Greengrass Core 軟體。
-
(選擇性) 如果您建立IAM使用者來佈建 Greengrass 裝置,請刪除該使用者。
-
(選擇性) 如果您使用現有使用IAM者的存取金鑰 ID 和秘密存取金鑰,請更新使用者的金鑰,使其不再有效。如需詳細資訊,請參閱AWS Identity and Access Management 使用指南中的更新存取金鑰。
-
-
下載 AWS IoT Greengrass 核心軟體
您可以從下列位置下載最新版本的 AWS IoT Greengrass Core 軟體:
注意
您可以從下列位置下載特定版本的 AWS IoT Greengrass Core 軟體。Replace (取代) version
與要下載的版本。
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-
version
.zip
若要下載 AWS IoT Greengrass 核心軟體
-
在您的核心裝置上,將 AWS IoT Greengrass Core 軟體下載至名為
greengrass-nucleus-latest.zip
.下載此軟體,即表示您同意 Greengrass 核心軟體授權合約
之規定。 -
(選擇性) 驗證 Greengrass 核軟體簽章
注意
此功能適用於 Greengrass 核 2.9.5 及更高版本。
-
使用以下命令來驗證 Greengrass 核工件的簽名:
-
jarsigner
調用產生指示驗證結果的輸出。-
如果 Greengrass 核 zip 文件簽名,則輸出包含以下語句:
jar verified.
-
如果 Greengrass 核壓縮檔未簽署,則輸出會包含下列陳述式:
jar is unsigned.
-
-
如果您提供了 Jarsigner
-certs
-verbose
選項-verify
和選項,則輸出也會包含詳細的簽署者憑證資訊。
-
-
將 AWS IoT Greengrass Core 軟件解壓縮到設備上的文件夾。Replace (取代)
GreengrassInstaller
與您要使用的文件夾。 -
(選擇性) 執行下列命令以查看 AWS IoT Greengrass Core 軟體的版本。
java -jar ./
GreengrassInstaller
/lib/Greengrass.jar --version
重要
如果您安裝的 Greengrass 核心版本早於 v2.4.0,請不要在安裝核心軟體之後移除此資料夾。 AWS IoT Greengrass AWS IoT Greengrass 核心軟件使用此文件夾中的文件運行。
如果您下載了最新版本的軟體,請安裝 v2.4.0 或更新版本,而且您可以在安裝 AWS IoT Greengrass Core 軟體之後移除此資料夾。
安裝 AWS IoT Greengrass 核心軟體
使用指定執行下列動作的引數來執行安裝程式:
-
建立核心裝置運作所需的 AWS 資源。
-
指定使用
ggc_user
系統使用者在核心裝置上執行軟體元件。在 Linux 裝置上,此指令也會指定使用ggc_group
系統群組,而安裝程式會為您建立系統使用者和群組。 -
將 AWS IoT Greengrass Core 軟體設定為在開機時執行的系統服務。在 Linux 設備上,這需要系統初始化
系統。 重要
在 Windows 核心裝置上,您必須將 AWS IoT Greengrass 核心軟體設定為系統服務。
若要使用本機開發工具設定開發裝置,請指定--deploy-dev-tools true
引數。安裝完成後,本機開發工具最多可能需要一分鐘的時間來部署。
如需可指定之引數的詳細資訊,請參閱安裝器引數。
注意
如果您在記憶體有限的裝置 AWS IoT Greengrass 上執行,您可以控制 AWS IoT Greengrass Core 軟體使用的記憶體數量。若要控制記憶體配置,您可以在核心元件的jvmOptions
組態參數中設定JVM堆積大小選項。如需詳細資訊,請參閱使用選項控制內存分JVM配。
若要安裝 AWS IoT Greengrass 核心軟體
-
執行 AWS IoT Greengrass 核心安裝程式。取代指令中的引數值,如下所示。
注意
Windows 的路徑長度限制為 260 個字元。如果您使用的是 Windows,請使用類似的根文件夾
C:\greengrass\v2
或D:\greengrass\v2
將 Greengrass 組件路徑保持在 260 個字符限制以下。-
或/greengrass/v2
C:\greengrass\v2
:用於安裝 AWS IoT Greengrass Core 軟體的根資料夾路徑。 -
GreengrassInstaller
。 解壓縮 AWS IoT Greengrass Core 軟體安裝程式的資料夾路徑。 -
region
。 要 AWS 區域 在其中尋找或建立資源。 -
MyGreengrassCore
。 您 Greengrass 核心裝置 AWS IoT 的項目名稱。如果該物件不存在,安裝程序將創建它。安裝程式會下載要驗證為 AWS IoT 物件的憑證。如需詳細資訊,請參閱AWS IoT Greengrass 的裝置身分驗證和授權。注意
物件名稱不能包含冒號 (
:
) 字元。 -
MyGreengrassCoreGroup
。 您 Greengrass 核心裝置的 AWS IoT 物件群組名稱。如果物件群組不存在,安裝程式會建立該物件並將該物件新增至其中。如果物群組存在且具有使用中部署,則核心裝置會下載並執行部署指定的軟體。注意
物件群組名稱不能包含冒號 (
:
) 字元。 -
GreengrassV2IoTThingPolicy
。 允許 Greengrass 核心裝置與和通訊的 AWS IoT 原則名稱。 AWS IoT AWS IoT Greengrass如果原 AWS IoT 則不存在,安裝程式會以此名稱建立寬鬆 AWS IoT 原則。您可以針對您的使用案例限制此原則的權限。如需詳細資訊,請參閱AWS IoT Greengrass V2核心裝置的最低AWS IoT原則。 -
GreengrassV2TokenExchangeRole
。 允許 Greengrass 核心裝置取得暫時認證的IAM角色名稱。 AWS 如果角色不存在,安裝程式會建立該角色,並建立並附加名為的策略
。如需詳細資訊,請參閱授權核心裝置與 AWS 服務互動。GreengrassV2TokenExchangeRole
Access -
GreengrassCoreTokenExchangeRoleAlias
。 允許 Greengrass 核心裝置稍後取得暫時認證的IAM角色別名。如果角色別名不存在,安裝程式會建立它,並將其指向您指定的IAM角色。如需詳細資訊,請參閱授權核心裝置與 AWS 服務互動。
重要
在 Windows 核心裝置上,您必須指
--setup-system-service true
定將 AWS IoT Greengrass 核心軟體設定為系統服務。如果成功,安裝程式會列印下列訊息:
-
如果您指定
--provision
,安裝程式會列印是Successfully configured Nucleus with provisioned resource details
否已成功設定資源。 -
如果您指定
--deploy-dev-tools
,安裝程式會列印是Configured Nucleus to deploy aws.greengrass.Cli component
否成功建立部署。 -
如果您指定
--setup-system-service true
,安裝程式會列印它是Successfully set up Nucleus as a system service
否設定並以服務形式執行軟體。 -
如果未指定
--setup-system-service true
,安裝程式會列印是Launched Nucleus successfully
否成功並執行軟體。
-
-
如果您已安裝 Greengrass 核 v2.0.4 或更新版本,請略過此步驟。如果您下載了最新版本的軟件,則安裝了 v2.0.4 或更高版本。
執行下列命令,為您的 AWS IoT Greengrass Core 軟體根資料夾設定所需的檔案權限。取代
為您在安裝指令中指定的根資料夾,然後取代/greengrass/v2
/greengrass
與您的根文件夾的父文件夾。sudo chmod 755
&& sudo chmod 755/greengrass/v2
/greengrass
如果您將 AWS IoT Greengrass Core 軟體安裝為系統服務,安裝程式會為您執行該軟體。否則,您必須手動運行該軟件。如需詳細資訊,請參閱執行AWS IoT Greengrass核心軟體。
注意
根據預設,安裝程式建立的IAM角色不允許存取 S3 儲存貯體中的元件成品。若要在 Amazon S3 中部署定義成品的自訂元件,您必須向角色新增許可,以允許核心裝置擷取元件成品。如需詳細資訊,請參閱允許存取元件成品的 S3 儲存貯體。
如果您還沒有適用於元件成品的 S3 儲存貯體,您可以在稍後建立儲存貯體後新增這些許可。
如需有關如何設定及使用軟體的詳細資訊 AWS IoT Greengrass,請參閱下列內容: