快速入門 Greengrass設備設置 - AWS IoT Greengrass

若我們提供該指南英語版本的翻譯,在有任何牴觸的狀況下請以英文版本的指南為主。其透過機器翻譯提供翻譯。

快速入門 Greengrass設備設置

Greengrass 裝置安裝程式是一個指令碼,可在幾分鐘之內設定您的核心裝置,讓您可以快速地開始使用 AWS IoT Greengrass。指令碼:

  1. 設定您的裝置及安裝 AWS IoT Greengrass 核心軟體。

  2. 設定您的雲端資源。

  3. 部署 Greengrass 群組,其中附帶一個將 MQTT 訊息傳送至 AWS IoT 的 Hello World Lambda 函數。這個選用步驟會設定下圖所示的 Greengrass 環境。

    
                    你好世界 Lambda 功能發送MQTT消息至 AWS IoT 來自 AWS IoT Greengrass 核心.

Requirements

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

  • 您的核心裝置必須使用支援的平台。該設備必須安裝適當的包裝經理: apt, yum,或 opkg.

     

  • 執行指令碼的 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. 如果您加入了 Hello World Lambda 函數,Greengrass 裝置設定會將 Greengrass 群組部署至您的核心裝置。如要測試 Lambda 函數,或是了解如何從群組中移除 Lambda 函數,請繼續前往入門教學單元 3-1 中的 驗證 Lambda 函數正在核心裝置上執行

    注意

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

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

     

疑難排解 問題

您可以使用以下信息來排除 AWS IoT Greengrass 設備設置。

錯誤 未發現Python(python3.7)。正在嘗試安裝...

解決方案: 使用azonderEC2實例時,您可能會看到此錯誤。當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 IoT Greengrass 論壇

Greengrass 裝置安裝組態選項

您可以設定 Greengrass 裝置安裝來存取您的 AWS 資源,以及設定您的 Greengrass 環境。

提供 AWS 帳戶登入資料

Greengrass 裝置安裝會使用您的 AWS 帳戶登入資料來存取您的 AWS 資源。其支援 IAM 使用者的長期登入資料,或是 IAM 角色的暫時安全憑證。

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

  • 如要使用長期登入資料,請提供您 IAM 使用者的存取金鑰 ID 和私密存取金鑰。有關爲長期憑證創建訪問密鑰的信息,請參閱 管理IAM用戶的訪問密鑰IAM 使用者指南.

     

  • 如要使用暫時安全憑證 (建議),請提供所取得 IAM 角色的存取金鑰 ID、私密存取金鑰和工作階段字符。有關從提取臨時安全憑證的信息 AWS STS assume-role 命令,請參閱 使用臨時安全憑證 AWS CLIIAM 使用者指南.

注意

針對本教學的目的,我們會假設 IAM 使用者或 IAM 角色具備管理員存取許可。

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

  • 環境變數。 在您啟動指令碼前設定 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_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 區域。有關受支持的AW區域列表,請參閱 AWS IoT GreengrassAmazon 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 World Lambda 函數。函數每五秒會向 hello/world 主題發佈 MQTT 訊息。

指令碼會在 AWS Lambda 中建立及發佈這個使用者定義的 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 函數,請繼續前往入門教學單元 3-1 中的 驗證 Lambda 函數正在核心裝置上執行

    注意

    請確認主控台中選取的 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 函數,請繼續前往入門教學單元 3-1 中的 驗證 Lambda 函數正在核心裝置上執行

    注意

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

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