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 群組,該函數會將MQTT訊息 AWS IoT 從核心傳送至。 AWS IoT Greengrass 這將設置如下圖所示的 Greengrass 環境。
要求
Greengrass 裝置安裝具有下列需求:
-
您的核心裝置必須使用支援的平台。裝置必須安裝適當的套件管理員:
apt
、yum
或opkg
。 -
執行指令碼的 Linux 使用者必須具備以
sudo
執行的許可。 -
您必須提供您的 AWS 帳戶 憑據。如需詳細資訊,請參閱提供 AWS 帳戶 認證。
注意
Greengrass 裝置安裝程式會在裝置上安裝最新版本的 AWS IoT Greengrass Core 軟體。安裝 AWS IoT Greengrass 核心軟體即表示您同意 Greengrass 核心軟體
授權合約。
執行 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 後將其移至正確的目錄中:
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 Re: POST 上的AWS IoT Greengrass 標籤
Greengrass 裝置安裝組態選項
您可以配置 Greengrass 設備設置來訪問您的 AWS 資源並設置您的 Greengrass 環境。
提供 AWS 帳戶 認證
Greengrass 裝置設定會使用您的 AWS 帳戶 認證來存取您的資源。 AWS 它支援IAM使用者的長期認證或來自IAM角色的臨時安全登入資料。
首先,請取得您的登入資料。
若要使用長期認證,請為您的使用IAM者提供存取金鑰 ID 和秘密存取金鑰。如需為長期認證建立存取金鑰的相關資訊,請參閱《使IAM用者指南》中的〈管理使用IAM者存取金鑰〉。
若要使用臨時安全登入資料 (建議),請提供來自假定IAM角色的存取金鑰 ID、秘密存取金鑰和工作階段 Token。如需有關從 AWS STS
assume-role
命令擷取暫時安全登入資料的資訊,請參閱《使用指南》 AWS CLI中的〈使用臨時安全性認證〉。IAM
注意
基於本教學課程的目的,我們假設使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 區域
-
您想要建立綠色群組的 AWS 區域 位置。如需支援 AWS 區域的清單,請參閱AWS IoT Greengrass中的Amazon Web Services 一般參考。
預設值:
us-west-2
無提示模式的選項名稱:
--region
- Group name (群組名稱)
-
Greengrass 群組名稱。
預設值:
GreengrassDeviceSetup_Group_
guid
無提示模式的選項名稱:
--group-name
- 核心名稱
-
Greengrass 核心的名稱。核心是執行 AWS IoT Greengrass 核心軟體的 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 世界 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 容器部署到您的核心裝置。