快速入門:Greengrass 裝置安裝 - AWS IoT Greengrass

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. 使用此指令碼可以:

  1. 設定您的裝置並安裝AWS IoT Greengrass Core 軟體。

  2. 設定您的雲端資源。

  3. 選擇性地部署具有 Hello World Lambda 函數的 Greengrass 群組,該函數會將 MQTT 訊息AWS IoT從AWS IoT Greengrass核心傳送至該函數。這會建立下圖中所顯示的 Greengrass 色環境。

    
                    你好世界 Lambda 函數AWS IoT從AWS IoT Greengrass核心發送 MQTT 消息。

請求

Greengrass 裝置安裝具有下列需求:

  • 您的核心裝置必須使用支援的平台。裝置必須安裝適當的套件管理員:aptyumopkg

     

  • 執行指令碼的 Linux 使用者必須具備以 sudo 執行的許可。

     

  • 您必須提供您的AWS 帳戶憑據。如需詳細資訊,請參閱提供AWS 帳戶認證

    注意

    Greengrass 裝置安裝程式會在裝置上安裝最新版本的AWS IoT Greengrass核心軟體。安裝 AWS IoT Greengrass 核心軟體,即表示您同意 Greengrass 核心軟體授權合約

執行 Greengrass 裝置安裝

您只需要幾個步驟,便能執行 Greengrass 裝置安裝。在您提供AWS 帳戶認證之後,指令碼會佈建您的 Greengrass 核心裝置,並在幾分鐘內部署 Greengrass 群組。請在目標裝置的終端機視窗中執行下列命令。

注意

下列步驟說明如何在互動模式下執行指令碼,這會提示您輸入或接受每個輸入值。如需如何以無提示的方式執行指令碼的資訊,請參閱在無提示模式下執行 Greengrass 裝置設定

 

  1. 提供您的登入資料。在此程序中,我們會假設您已提供暫時安全憑證做為環境變數。

    export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
    注意

    如果您要在 Raspbian 或 OpenWrt 平台上執行 Greengrass 裝置設定,請複製這些命令。將裝置重新開機後,您必須再次提供這些命令。

  2. 下載及啟動指令碼。您可以使用 wgetcurl 下載指令碼。

    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
  3. 繼續完成輸入值的命令提示。您可以按 Enter 鍵來使用預設值,或是輸入自訂值並按 Enter

    指令碼會將狀態訊息寫入與以下相似的終端機。

    
                    終端機中的輸出訊息。
  4. 如果您的核心裝置正在執行 Raspbian OpenWrt,或者在出現提示時重新開機裝置,提供您的認證,然後重新啟動指令碼。

    1. 當出現提示要求重新開機裝置時,執行以下其中一個命令。

      針對 Raspbian 平台:

      sudo reboot

      對於 OpenWrt 平台:

      reboot
    2. 在裝置重新開機後,請開啟終端機並提供您的登入資料做為環境變數。

      export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
    3. 重新啟動指令碼。

      sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass-interactive
    4. 當出現提示,詢問您是要使用先前工作階段的輸入值,還是啟動新的安裝時,請輸入 yes 來重新使用您的輸入值。

      注意

      在需要重新開機的平台上,您先前工作階段的輸入值 (登入資料除外) 會暫時存放在 GreengrassDeviceSetup.config.info 檔案中。

    安裝完成後,終端機會顯示予以下相似的成功狀態訊息。

    
                    終端機輸出中的成功訊息。
  5. 檢閱指令碼使用您提供的輸入值設定的新 Greengrass 群組。

    1. 在電腦AWS Management Console上登入並開啟主AWS IoT控台。

      注意

      請確定在主控台中AWS 區域選取的項目與您用來設定 Greengrass 環境的相同。依預設,區域為美國西部 (奧勒岡)。

    2. 在瀏覽窗格中,展開 Greengrass 裝置,然後選擇 [群組 (V1)] 以尋找新建立的群組。

  6. 如果您包含了 Hello World Lambda 函數,Greengrass 裝置安裝程式會將 Greengrass 群組部署到您的核心裝置。若要測試 Lambda 函數,或如需如何從群組驗證 Lambda 函數正在核心裝置上執行中移除 Lambda 函數的相關資訊,請繼續閱讀入門教學課程的單元 3-1。

    注意

    請確定在主控台中AWS 區域選取的項目與您用來設定 Greengrass 環境的相同。依預設,區域為美國西部 (奧勒岡)。

    如果您沒有包含 Hello World Lambda 函數,您可以建立自己的 Lambda 函數或嘗試其他 Greengrass 功能。例如,您可以將 Docker 應用程式部署連接器新增至您的群組,並用該連接器來將 Docker 容器部署到您的核心裝置。

     

疑難排解 問題

您可以使用下列資訊疑難排解AWS IoT Greengrass裝置設定的問題。

錯誤:找不到蟒蛇(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 疑難排解或查看 AWSRe: POST 上的AWS IoT Greengrass標籤

Greengrass 裝置安裝組態選項

您可以配置 Greengrass 設備設置來訪問您的AWS資源並設置您的 Greengrass 環境。

提供AWS 帳戶認證

Greengrass 裝置設定會使用您的AWS 帳戶認證來存取您的AWS資源。它支援 IAM 使用者的長期憑證或從 IAM 角色的暫時性安全憑證。

首先,請取得您的登入資料。

注意

針對本教學課程的目的,我們假設 IAM 使用者或 IAM 角色具有管理員存取權限。

接著,透過下列兩種方式的其中一種,向 Greengrass 裝置設定提供您的登入資料:

  • 環境變數。在您啟動指令碼前設定 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN (如需要的話) 環境變數,如 執行 Greengrass 裝置安裝 的步驟 1 所示。

     

  • 輸入值。啟動指令碼後,直接在終端機中輸入您的存取金鑰 ID、私密存取金鑰和工作階段字符 (如需要) 值。

Greengrass 裝置安裝不會儲存或存放您的登入資料。

 

提供輸入值

在互動模式下,Greengrass 裝置設定會提示您提供輸入值。您可以按 Enter 鍵來使用預設值,或是輸入自訂值並按 Enter。在無提示模式下,您需要在啟動指令碼後提供輸入值。

AWS存取金鑰識別碼

長期或暫時安全憑證的存取金鑰 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 核心軟體的位置。

預設值:/

無提示模式的選項名稱:--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 帳戶認證當做環境變數提供,還是在啟動指令碼之後作為輸入值提供。

  1. 提供登入資料做為環境變數 下列範例會匯出臨時登入資料,其中包括工作階段字符。

    export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
    注意

    如果您要在 Raspbian 或 OpenWrt 平台上執行 Greengrass 裝置設定,請複製這些命令。將裝置重新開機後,您必須再次提供這些命令。

  2. 下載及啟動指令碼。視需要提供輸入值。例如:

    • 若要使用所有預設值:

      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

  3. 如果您的核心裝置正在執行 Raspbian OpenWrt,或者在出現提示時重新開機裝置,提供您的認證,然後重新啟動指令碼。

    1. 當出現提示要求重新開機裝置時,執行以下其中一個命令。

      針對 Raspbian 平台:

      sudo reboot

      對於 OpenWrt 平台:

      reboot
    2. 在裝置重新開機後,請開啟終端機並提供您的登入資料做為環境變數。

      export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
    3. 重新啟動指令碼。

      sudo -E ./gg-device-setup-latest.sh bootstrap-greengrass
    4. 當出現提示,詢問您是要使用先前工作階段的輸入值,還是啟動新的安裝時,請輸入 yes 來重新使用您的輸入值。

      注意

      在需要重新開機的平台上,您先前工作階段的輸入值 (登入資料除外) 會暫時存放在 GreengrassDeviceSetup.config.info 檔案中。

    安裝完成後,終端機會顯示予以下相似的成功狀態訊息。

    
                                        終端機輸出中的成功訊息。
  4. 如果您包含了 Hello World Lambda 函數,Greengrass 裝置安裝程式會將 Greengrass 群組部署到您的核心裝置。若要測試 Lambda 函數,或如需如何從群組驗證 Lambda 函數正在核心裝置上執行中移除 Lambda 函數的相關資訊,請繼續閱讀入門教學課程的單元 3-1。

    注意

    請確定在主控台中AWS 區域選取的項目與您用來設定 Greengrass 環境的相同。依預設,區域為美國西部 (奧勒岡)。

    如果您沒有包含 Hello World Lambda 函數,您可以建立自己的 Lambda 函數或嘗試其他 Greengrass 功能。例如,您可以將 Docker 應用程式部署連接器新增至您的群組,並用該連接器來將 Docker 容器部署到您的核心裝置。

     

  1. 下載及啟動指令碼。提供您的登入資料和您要指定的任何其他輸入值。下列範例說明如何提供臨時登入資料,其中包括工作階段字符。

    • 若要使用所有預設值:

      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

  2. 如果您的核心裝置正在執行 Raspbian OpenWrt,或者在出現提示時重新開機裝置,提供您的認證,然後重新啟動指令碼。

    1. 當出現提示要求重新開機裝置時,執行以下其中一個命令。

      針對 Raspbian 平台:

      sudo reboot

      對於 OpenWrt 平台:

      reboot
    2. 重新啟動指令碼。您必須在命令中加入您的登入資料,而不是其他輸入值。例如:

      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=
    3. 當出現提示,詢問您是要使用先前工作階段的輸入值,還是啟動新的安裝時,請輸入 yes 來重新使用您的輸入值。

      注意

      在需要重新開機的平台上,您先前工作階段的輸入值 (登入資料除外) 會暫時存放在 GreengrassDeviceSetup.config.info 檔案中。

    安裝完成後,終端機會顯示予以下相似的成功狀態訊息。

    
                                        終端機輸出中的成功訊息。
  3. 如果您包含了 Hello World Lambda 函數,Greengrass 裝置安裝程式會將 Greengrass 群組部署到您的核心裝置。若要測試 Lambda 函數,或如需如何從群組驗證 Lambda 函數正在核心裝置上執行中移除 Lambda 函數的相關資訊,請繼續閱讀入門教學課程的單元 3-1。

    注意

    請確定在主控台中AWS 區域選取的項目與您用來設定 Greengrass 環境的相同。依預設,區域為美國西部 (奧勒岡)。

    如果您沒有包含 Hello World Lambda 函數,您可以建立自己的 Lambda 函數或嘗試其他 Greengrass 功能。例如,您可以將 Docker 應用程式部署連接器新增至您的群組,並用該連接器來將 Docker 容器部署到您的核心裝置。