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 ,這會新增重要的新功能,並支援其他平台。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
快速入門:Greengrass 裝置安裝
Greengrass 裝置設定是一種指令碼,可在幾分鐘內設定核心裝置,讓您可以開始使用 AWS IoT Greengrass。使用此指令碼來:
設定您的裝置並安裝 AWS IoT Greengrass Core 軟體。
設定雲端型資源。
選擇性地部署具有 Hello World Lambda 函數的 Greengrass 群組,該函數 AWS IoT 會從 AWS IoT Greengrass 核心傳送 MQTT 訊息至 。這會設定下圖所示的 Greengrass 環境。
要求
Greengrass 裝置安裝具有下列需求:
-
您的核心裝置必須使用支援的平台。裝置必須安裝適當的套件管理員:
apt
、yum
或opkg
。 -
執行指令碼的 Linux 使用者必須具備以
sudo
執行的許可。 -
您必須提供您的 AWS 帳戶 登入資料。如需詳細資訊,請參閱提供 AWS 帳戶 登入資料。
注意
Greengrass 裝置設定會在裝置上安裝最新版本的 AWS IoT Greengrass Core 軟體。安裝 AWS IoT Greengrass Core 軟體,即表示您同意 Greengrass Core 軟體授權合約
。
執行 Greengrass 裝置安裝
您只需要幾個步驟,便能執行 Greengrass 裝置安裝。在您提供 AWS 帳戶 登入資料後,指令碼會佈建您的 Greengrass 核心裝置,並在幾分鐘內部署 Greengrass 群組。請在目標裝置的終端機視窗中執行下列命令。
注意
下列步驟說明如何在互動模式下執行指令碼,這會提示您輸入或接受每個輸入值。如需如何以無提示的方式執行指令碼的資訊,請參閱在無提示模式下執行 Greengrass 裝置設定。
-
提供您的登入資料。在此程序中,我們會假設您已提供暫時安全憑證做為環境變數。
export AWS_ACCESS_KEY_ID=
AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
注意
如果您正在 Raspbian 或 OpenWrt 平台上執行 Greengrass 裝置安裝,請記下這些命令。將裝置重新開機後,您必須再次提供這些命令。
-
下載及啟動指令碼。您可以使用
wget
或curl
下載指令碼。-
wget
:wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass-interactive
-
curl
:curl https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh > gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass-interactive
-
繼續完成輸入值的命令提示。您可以按 Enter 鍵來使用預設值,或是輸入自訂值並按 Enter。
指令碼會將狀態訊息寫入與以下相似的終端機。
-
如果您的核心裝置正在 Raspbian 或 OpenWrt 上執行,請在出現提示時重新開機裝置,提供您的登入資料,然後重新啟動指令碼。
-
當出現提示要求重新開機裝置時,執行以下其中一個命令。
-
針對 Raspbian 平台:
sudo reboot
-
針對 OpenWrt 平台:
reboot
-
在裝置重新開機後,請開啟終端機並提供您的登入資料做為環境變數。
export AWS_ACCESS_KEY_ID=
AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
-
重新啟動指令碼。
sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass-interactive
-
當出現提示,詢問您是要使用先前工作階段的輸入值,還是啟動新的安裝時,請輸入
yes
來重新使用您的輸入值。注意
在需要重新開機的平台上,您先前工作階段的輸入值 (登入資料除外) 會暫時存放在
GreengrassDeviceSetup.config.info
檔案中。
安裝完成後,終端機會顯示予以下相似的成功狀態訊息。
-
-
檢閱指令碼使用您提供的輸入值設定的新 Greengrass 群組。
-
在AWS Management Console
電腦上登入 並開啟 AWS IoT 主控台。 注意
請確定在主控台 AWS 區域 中選取的 與您用來設定 Greengrass 環境的 相同。根據預設,區域為美國西部 (奧勒岡)。
-
在導覽窗格中,展開 Greengrass 裝置,然後選擇群組 (V1) 來尋找新建立的群組。
-
-
如果您包含 Hello World Lambda 函數,Greengrass 裝置設定會將 Greengrass 群組部署到您的核心裝置。若要測試 Lambda 函數,或取得如何從群組中移除 Lambda 函數的相關資訊,請繼續前往入門教學驗證 Lambda 函數正在核心裝置上執行課程的單元 3-1。
注意
請確定在主控台 AWS 區域 中選取的 與您用來設定 Greengrass 環境的 相同。根據預設,區域為美國西部 (奧勒岡)。
如果您沒有包含 Hello World Lambda 函數,您可以建立自己的 Lambda 函數,或嘗試其他 Greengrass 功能。例如,您可以將 Docker 應用程式部署連接器新增至您的群組,並用該連接器來將 Docker 容器部署到您的核心裝置。
疑難排解 問題
您可以使用下列資訊來疑難排解 AWS IoT Greengrass 裝置設定的問題。
錯誤:找不到 Python (python3.7)。正在嘗試安裝...
解決方案:使用 Amazon EC2 執行個體時,您可能會看到此錯誤。資料夾中未安裝 Python 時,會發生此錯誤/usr/bin/python3.7
。若要解決此錯誤,請在安裝 Python 之後,在正確的目錄中移動 Python:
sudo ln -s /usr/local/bin/python3.7 /usr/bin/python3.7
其他疑難排解
若要針對 AWS IoT Greengrass 裝置設定的其他問題進行故障診斷,您可以在日誌檔案中尋找偵錯資訊:
針對 Greengrass 裝置安裝組態的問題,請檢查
/tmp/greengrass-device-setup-bootstrap-
檔案。epoch-timestamp
.log針對 Greengrass 群組或核心環境安裝的問題,請檢查與
gg-device-setup-latest.sh
相同目錄,或是在您指定位置的GreengrassDeviceSetup-
檔案。date
-time
.log
如需更多故障診斷說明,請參閱AWS IoT Greengrass 疑難排解或檢查 AWS IoT GreengrassAWS re:Post 上的標籤
Greengrass 裝置安裝組態選項
您可以設定 Greengrass 裝置設定,以存取您的 AWS 資源並設定您的 Greengrass 環境。
提供 AWS 帳戶 登入資料
Greengrass 裝置設定使用您的 AWS 帳戶 登入資料來存取您的 AWS 資源。它支援 IAM 使用者的長期登入資料或來自 IAM 角色的臨時安全登入資料。
首先,請取得您的登入資料。
若要使用長期憑證,請提供 IAM 使用者的存取金鑰 ID 和私密存取金鑰。如需為長期憑證建立存取金鑰的相關資訊,請參閱《IAM 使用者指南》中的管理 IAM 使用者的存取金鑰。
若要使用臨時安全登入資料 (建議),請提供來自擔任 IAM 角色的存取金鑰 ID、私密存取金鑰和工作階段權杖。如需從 AWS STS
assume-role
命令擷取臨時安全憑證的資訊,請參閱《IAM 使用者指南》中的使用臨時安全憑證搭配 AWS CLI 。
注意
在本教學課程中,我們假設 IAM 使用者或 IAM 角色具有管理員存取許可。
接著,透過下列兩種方式的其中一種,向 Greengrass 裝置設定提供您的登入資料:
環境變數。在您啟動指令碼前設定
AWS_ACCESS_KEY_ID
、AWS_SECRET_ACCESS_KEY
和AWS_SESSION_TOKEN
(如需要的話) 環境變數,如 執行 Greengrass 裝置安裝 的步驟 1 所示。輸入值。啟動指令碼後,直接在終端機中輸入您的存取金鑰 ID、私密存取金鑰和工作階段字符 (如需要) 值。
Greengrass 裝置安裝不會儲存或存放您的登入資料。
提供輸入值
在互動模式下,Greengrass 裝置設定會提示您提供輸入值。您可以按 Enter 鍵來使用預設值,或是輸入自訂值並按 Enter。在無提示模式下,您需要在啟動指令碼後提供輸入值。
- AWS 存取金鑰 ID
-
長期或暫時安全憑證的存取金鑰 ID。只有在您沒有提供登入資料做為環境變數時,才指定此選項做為輸入值。如需詳細資訊,請參閱提供 AWS 帳戶 登入資料。
無提示模式的選項名稱:
--aws-access-key-id
- AWS 私密存取金鑰
-
長期或暫時安全憑證的私密存取金鑰。只有在您沒有提供登入資料做為環境變數時,才指定此選項做為輸入值。如需詳細資訊,請參閱提供 AWS 帳戶 登入資料。
無提示模式的選項名稱:
--aws-secret-access-key
- AWS 工作階段字符
-
暫時安全憑證的工作階段字符。只有在您沒有提供登入資料做為環境變數時,才指定此選項做為輸入值。如需詳細資訊,請參閱提供 AWS 帳戶 登入資料。
無提示模式的選項名稱:
--aws-session-token
- AWS 區域
-
您要建立 Greengrass 群組的 AWS 區域 。如需支援的 清單 AWS 區域,請參閱 AWS IoT Greengrass中的 Amazon Web Services 一般參考。
預設值:
us-west-2
無提示模式的選項名稱:
--region
- Group name (群組名稱)
-
Greengrass 群組名稱。
預設值:
GreengrassDeviceSetup_Group_
guid
無提示模式的選項名稱:
--group-name
- 核心名稱
-
Greengrass 核心的名稱。核心是執行 AWS IoT Greengrass Core 軟體 AWS IoT 的裝置 (物件)。核心會新增至 AWS IoT 登錄檔和 Greengrass 群組。如果您提供名稱,它在 AWS 帳戶 和 中必須是唯一的 AWS 區域。
預設值:
GreengrassDeviceSetup_Core_
guid
無提示模式的選項名稱:
--core-name
- AWS IoT Greengrass 核心軟體安裝路徑
-
您要安裝 AWS IoT Greengrass Core 軟體的裝置檔案系統中的位置。
預設值:
/
無提示模式的選項名稱:
--ggc-root-path
- Hello World Lambda 函數
-
指出是否要在 Greengrass 群組中包含 Hello World Lambda 函數。函數每五秒會向
hello/world
主題發佈 MQTT 訊息。指令碼會在 中建立並發佈此使用者定義的 Lambda 函數, AWS Lambda 並將其新增至 Greengrass 群組。指令碼也會在群組中建立訂閱,允許函數傳送 MQTT 訊息至 AWS IoT。
注意
這是 Python 3.7 Lambda 函數。如果並未在裝置上安裝 Python 3.7,且指令碼無法進行安裝,指令碼便會在終端機中印出錯誤訊息。若要在群組中包含 Lambda 函數,您必須手動安裝 Python 3.7 並重新啟動指令碼。若要建立不含 Lambda 函數的 Greengrass 群組,請重新啟動指令碼,並在提示包含函數
no
時輸入 。預設值:
no
無提示模式的選項名稱:
--hello-world-lambda
- 此選項不採用數值。若要建立函數,請將它加入您的命令中。 - 部署逾時
-
Greengrass 裝置安裝停止檢查 Greengrass 群組部署狀態前的秒數。這只會在群組包含 Hello World Lambda 函數時使用。否則便不會部署群組。
部署時間取決於您的網路速度。針對緩慢的網路速度,您可以增加這個值。
預設值:
180
無提示模式的選項名稱:
--deployment-timeout
- 日誌路徑
-
日誌檔案的位置,其中包含 Greengrass 群組和核心安裝操作的相關資訊。請使用此日誌來針對 Greengrass 群組和核心安裝的部署及其他問題進行故障診斷。
預設值:
./
無提示模式的選項名稱:
--log-path
- Verbosity (詳細資訊)
-
指出指令碼執行時,是否在終端機中列印詳細日誌資訊。您可以使用此資訊來對裝置設定進行故障診斷。
預設值:
no
無提示模式的選項名稱:
--verbose
- 此選項不採用數值。若要列印詳細日誌資訊,請將它加入您的命令中。
在無提示模式下執行 Greengrass 裝置設定
您可以在無提示模式下執行 Greengrass 裝置設定,這樣指令碼就不會提示您輸入任何值。若要在無提示模式下執行,請在啟動指令碼後指定 bootstrap-greengrass
模式和輸入值。若要使用其預設值,則可以忽略輸入值。
此程序取決於您在啟動指令碼之前是將 AWS 帳戶 登入資料做為環境變數提供,還是在啟動指令碼之後做為輸入值提供。
-
提供登入資料做為環境變數 下列範例會匯出臨時登入資料,其中包括工作階段字符。
export AWS_ACCESS_KEY_ID=
AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
注意
如果您正在 Raspbian 或 OpenWrt 平台上執行 Greengrass 裝置安裝,請記下這些命令。將裝置重新開機後,您必須再次提供這些命令。
-
下載及啟動指令碼。視需要提供輸入值。例如:
-
若要使用所有預設值:
wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass
-
若要指定自訂值:
wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass --region us-east-1 --group-name Custom_Group_Name --core-name Custom_Core_Name --ggc-root-path /custom/ggc/root/path --deployment-timeout 300 --log-path /customized/log/path --hello-world-lambda --verbose
注意
若要使用
curl
下載指令碼,請將命令中的wget -q -O
換為curl
。 -
-
如果您的核心裝置正在 Raspbian 或 OpenWrt 上執行,請在出現提示時重新開機裝置,提供您的登入資料,然後重新啟動指令碼。
-
當出現提示要求重新開機裝置時,執行以下其中一個命令。
-
針對 Raspbian 平台:
sudo reboot
-
針對 OpenWrt 平台:
reboot
-
在裝置重新開機後,請開啟終端機並提供您的登入資料做為環境變數。
export AWS_ACCESS_KEY_ID=
AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
-
重新啟動指令碼。
sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass
-
當出現提示,詢問您是要使用先前工作階段的輸入值,還是啟動新的安裝時,請輸入
yes
來重新使用您的輸入值。注意
在需要重新開機的平台上,您先前工作階段的輸入值 (登入資料除外) 會暫時存放在
GreengrassDeviceSetup.config.info
檔案中。
安裝完成後,終端機會顯示予以下相似的成功狀態訊息。
-
-
如果您包含 Hello World Lambda 函數,Greengrass 裝置設定會將 Greengrass 群組部署到您的核心裝置。若要測試 Lambda 函數,或取得如何從群組中移除 Lambda 函數的相關資訊,請繼續前往入門教學驗證 Lambda 函數正在核心裝置上執行課程的單元 3-1。
注意
請確定在主控台 AWS 區域 中選取的 與您用來設定 Greengrass 環境的 相同。根據預設,區域為美國西部 (奧勒岡)。
如果您沒有包含 Hello World Lambda 函數,您可以建立自己的 Lambda 函數,或嘗試其他 Greengrass 功能。例如,您可以將 Docker 應用程式部署連接器新增至您的群組,並用該連接器來將 Docker 容器部署到您的核心裝置。
-
下載及啟動指令碼。提供您的登入資料和您要指定的任何其他輸入值。下列範例說明如何提供臨時登入資料,其中包括工作階段字符。
-
若要使用所有預設值:
wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass --aws-access-key-id AKIAIOSFODNN7EXAMPLE --aws-secret-access-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY --aws-session-token AQoDYXdzEJr1K...o5OytwEXAMPLE=
-
若要指定自訂值:
wget -q -O ./gg-device-setup-latest.sh https://d1onfpft10uf5o.cloudfront.net/greengrass-device-setup/downloads/gg-device-setup-latest.sh && chmod +x ./gg-device-setup-latest.sh && sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass --aws-access-key-id AKIAIOSFODNN7EXAMPLE --aws-secret-access-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY --aws-session-token AQoDYXdzEJr1K...o5OytwEXAMPLE= --region us-east-1 --group-name Custom_Group_Name --core-name Custom_Core_Name --ggc-root-path /custom/ggc/root/path --deployment-timeout 300 --log-path /customized/log/path --hello-world-lambda --verbose
注意
如果您正在 Raspbian 或 OpenWrt 平台上執行 Greengrass 裝置安裝,請記下您的登入資料。將裝置重新開機後,您必須再次提供這些命令。
若要使用
curl
下載指令碼,請將命令中的wget -q -O
換為curl
。 -
-
如果您的核心裝置正在 Raspbian 或 OpenWrt 上執行,請在出現提示時重新開機裝置,提供您的登入資料,然後重新啟動指令碼。
-
當出現提示要求重新開機裝置時,執行以下其中一個命令。
-
針對 Raspbian 平台:
sudo reboot
-
針對 OpenWrt 平台:
reboot
-
重新啟動指令碼。您必須在命令中加入您的登入資料,而不是其他輸入值。例如:
sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass --aws-access-key-id AKIAIOSFODNN7EXAMPLE --aws-secret-access-key wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY --aws-session-token AQoDYXdzEJr1K...o5OytwEXAMPLE=
-
當出現提示,詢問您是要使用先前工作階段的輸入值,還是啟動新的安裝時,請輸入
yes
來重新使用您的輸入值。注意
在需要重新開機的平台上,您先前工作階段的輸入值 (登入資料除外) 會暫時存放在
GreengrassDeviceSetup.config.info
檔案中。
安裝完成後,終端機會顯示予以下相似的成功狀態訊息。
-
-
如果您包含 Hello World Lambda 函數,Greengrass 裝置設定會將 Greengrass 群組部署到您的核心裝置。若要測試 Lambda 函數,或取得如何從群組中移除 Lambda 函數的相關資訊,請繼續前往入門教學驗證 Lambda 函數正在核心裝置上執行課程的單元 3-1。
注意
請確定在主控台 AWS 區域 中選取的 與您用來設定 Greengrass 環境的 相同。根據預設,區域為美國西部 (奧勒岡)。
如果您沒有包含 Hello World Lambda 函數,您可以建立自己的 Lambda 函數或嘗試其他 Greengrass 功能。例如,您可以將 Docker 應用程式部署連接器新增至您的群組,並用該連接器來將 Docker 容器部署到您的核心裝置。