安裝 AWS IoT Greengrass 核心軟體 - AWS IoT Greengrass

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

安裝 AWS IoT Greengrass 核心軟體

TheThethe AWS IoT Greengrass 核心軟件將AWS功能擴展到 AWS IoT Greengrass 核心 設備,使本地設備可以在其生成的數據上當地採取行動。

AWS IoT Greengrass 提供幾個安裝 AWS IoT Greengrass 核心軟體的選項:

AWS IoT Greengrass 也提供執行 AWS IoT Greengrass 核心軟體的容器化環境。

 

下載並解壓縮 AWS IoT Greengrass 核心軟體套件

為您的平台選擇 AWS IoT Greengrass 核心軟體,以下載為 tar.gz 檔案,並在您的裝置上解壓縮。您可以下載最新版本的軟體。如需詳細資訊,請參閱 AWS IoT Greengrass 核心軟體

 

執行 Greengrass 裝置設定指定碼

執行 Greengrass 裝置設定,以快速設定您的裝置、安裝最新的 AWS IoT Greengrass 核心軟體版本,以及部署 Hello World Lambda 功能。如需詳細資訊,請參閱快速入門 Greengrass設備設置

 

從 APT 儲存庫安裝 AWS IoT Greengrass 核心軟體

您可以使用進階套件工具 (APT) 套件管理系統,在您的核心裝置上安裝最新版本的 AWS IoT Greengrass 核心軟體。AWS IoT Greengrass 提供的 APT 儲存庫包括以下套件:

  • aws-iot-greengrass-core。安裝 AWS IoT Greengrass 核心軟體。

  • aws-iot-greengrass-keyring。安裝用來簽署 AWS IoT Greengrass 套件儲存庫的 GnuPG (GPG) 金鑰。

    下載此軟體,即表示您同意 Greengrass 核心軟體授權合約之規定。

當您使用 apt 命令來安裝 AWS IoT Greengrass 核心軟體時,應該注意下列注意事項:

AWS IoT Greengrass 核心軟體已安裝在根目錄中。

apt 命令會將 AWS IoT Greengrass 核心軟體安裝在根檔案系統的 greengrass 目錄中。如果 /greengrass 已存在,此命令會安裝新的軟體版本,但不會覆寫任何群組資訊或核心組態。

不支援無線 (OTA) 更新。

您可以使用 apt 安裝選項以升級核心裝置上的 AWS IoT Greengrass 核心軟體,但該選項不支援 AWS IoT Greengrass OTA 更新代理程式 提供的安全更新路徑。OTA 更新代理程式 軟體元件隨附於使用 下載並擷取 tar.gz 檔案執行 Greengrass 裝置設定指定碼 安裝選項安裝的 AWS IoT Greengrass 核心軟體套件。OTA 更新代理程式 有助於在更新失敗時藉由復原進行更新之後,保證該核心繼續運作。如需詳細資訊,請參閱 AWS IoT Greengrass 核心軟體的 OTA 更新

我們建議您隨時更新 keyring 套件。

隨時 aws-iot-greengrass-keyring 套件更新可讓您接收用來驗證 AWS IoT Greengrass APT 儲存庫的 GPG 金鑰更新。它還可讓您更輕鬆地升級 AWS IoT Greengrass 核心軟體。這些可信任的金鑰安裝在 /etc/apt/trusted.gpg.d/。公有金鑰有效期為兩年。如果金鑰過期,您必須重新設定 keyring 套件:

wget -O aws-iot-greengrass-keyring.deb https://d1onfpft10uf5o.cloudfront.net/greengrass-apt/downloads/aws-iot-greengrass-keyring.deb sudo dpkg -i aws-iot-greengrass-keyring.deb
重要

當 AWS IoT Greengrass 管理的金鑰遭受洩漏時,您必須更新 aws-iot-greengrass-keyring 套件,將遭受洩漏的金鑰替換成新的金鑰。如需詳細資訊,請聯絡 AWS 客戶支援

需求

以下需求適用於使用 apt 來安裝 AWS IoT Greengrass 核心軟體:

  • 您的裝置必須執行以下其中一個平台:

    架構

    作業系統

    發佈

    Armv8 (AArch64)

    Linux

    Arch Linux

    Armv7l

    Linux

    Raspbian Buster, 2019-07-10

    x86_64

    Linux

    Ubuntu 18.04

  • 您必須擁有裝置的根存取權。

  • 若要完成以下程序的步驟,必須在裝置上安裝下列 shell 命令:sudowgetcurldpkgechounzip,以及 tar

使用 apt 安裝 AWS IoT Greengrass 核心軟體

您可以使用 APT 套件管理系統,在裝置上安裝 AWS IoT Greengrass 核心軟體。安裝軟體之前,可能需要一些核心組態步驟。

在下列程序中,在裝置的終端機視窗中執行命令。

設定您的核心

  1. 如果您是第一次設定 AWS IoT Greengrass,則必須設定您的核心。如果無法使用 adduseraddgroup 命令,請改用 useraddgroupadd

    1. 建立 ggc_userggc_group 系統帳戶。

      sudo adduser --system ggc_user sudo addgroup --system ggc_group
    2. 設定您的核心裝置憑證和金鑰,以及核心組態檔案。

      1. 依照 在 AWS IoT 設定 AWS IoT Greengrass 中的步驟,建立 Greengrass 群組並註冊您的核心。這個處理程序也會產生您下載的安全資源套件。此套件是 tar.gz 檔案,其中包含核心裝置憑證、公有-私有金鑰,以及核心組態檔案。開頭為 10 位數雜湊的檔案名稱 (例如,c6973960cc-setup.tar.gz),也會用於憑證和金鑰檔案名稱。

        略過下載 AWS IoT Greengrass 核心軟體的步驟 11。

      2. 將套件傳輸到您的核心裝置,然後執行下列命令以安裝安全資源。使用 tar.gz 檔案中的 10 位數雜湊取代 hash

        sudo mkdir -p /greengrass sudo tar -xzvf hash-setup.tar.gz -C /greengrass
      3. 下載根憑證授權機構憑證。如需選擇適合的根憑證授權機構憑證的詳細資訊,請參閱 AWS IoT Core 開發人員指南中的伺服器驗證

        以下範例會下載 AmazonRootCA1.pem。若要使用 curl,請使用 curl 取代命令中的 wget -O

        cd /greengrass/certs/ sudo wget -O root.ca.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem

      這些步驟會將憑證和金鑰安裝到 /greengrass/certs,並將組態檔案安裝到 /greengrass/config。如需詳細資訊,請參閱 AWS IoT Greengrass 核心組態檔案

  2. 下載並執行 AWS IoT Greengrass 的相依性檢查程式。相依性檢查程式可確保您具備 AWS IoT Greengrass 核心軟體所需的所有依存項目。如果您要將某個修補程式版本升級至另一個修補程式版本 (例如,v1.9.3 升級到 v1.9.4),則可以略過這個步驟。

    1. 在您要下載指令碼的目錄中,執行下列命令。若要使用 curl,請使用 curl 取代命令中的 wget

      mkdir greengrass-dependency-checker-GGCv1.10.x cd greengrass-dependency-checker-GGCv1.10.x wget https://github.com/aws-samples/aws-greengrass-samples/raw/master/greengrass-dependency-checker-GGCv1.10.x.zip unzip greengrass-dependency-checker-GGCv1.10.x.zip cd greengrass-dependency-checker-GGCv1.10.x sudo ./check_ggc_dependencies | more
    2. 在出現 more 的地方,按下空格鍵以翻頁瀏覽輸出。

      • 如果 Greengrass 群組中已啟用串流管理員,您必須先安裝 Java 8 執行時間,才能部署群組。當您在 AWS IoT Greengrass 主控台使用 Default Group creation (預設群組建立) 工作流程時,依預設啟用此功能。

      • 您可以安裝目標 Lambda 執行時間 (例如,Python 3.7),並忽略有關其他缺少可選執行時間先決條件的警告。

      • 您可以忽略有關缺少 shell 命令的警告。這些是 OTA 更新代理程式所需的,其未包含在此安裝中。

       

安裝 AWS IoT Greengrass 核心軟體

  1. 安裝 AWS IoT Greengrass keyring 套件並新增儲存庫。若要使用 curl,請使用 curl 取代命令中的 wget -O

    wget -O aws-iot-greengrass-keyring.deb https://d1onfpft10uf5o.cloudfront.net/greengrass-apt/downloads/aws-iot-greengrass-keyring.deb sudo dpkg -i aws-iot-greengrass-keyring.deb echo "deb https://dnw9lb6lzp2d8.cloudfront.net stable main" | sudo tee /etc/apt/sources.list.d/greengrass.list
    注意

    如果您在裝置上保持更新 keyring 套件,則只有在您第一次從 APT 儲存庫安裝 AWS IoT Greengrass 核心軟體時,才需要執行此步驟。

  2. 更新您的套件清單。

    sudo apt update
  3. 安裝 AWS IoT Greengrass 核心軟體。

    sudo apt install aws-iot-greengrass-core
  4. 啟動 Greengrass 協助程式。以下命令使用隨附 aws-iot-greengrass-core 套件安裝的 systemd 指令碼

    systemctl start greengrass.service systemctl status greengrass.service

    如果輸出顯示 Active 狀態為 active (running),則表示已成功啟動協助程式。

 

停止使用 APT 儲存庫

如果您要為 AWS IoT Greengrass 停止使用 APT 儲存庫,請移除套件並更新您的來源清單。

注意

remove 命令會移除套件,但無法移除您的組態資訊。如果您也想要永久移除所有組態資訊 (包括裝置憑證、群組資訊,以及日誌檔),請使用 purge 來取代下列命令中的 remove

sudo apt remove aws-iot-greengrass-core aws-iot-greengrass-keyring sudo rm /etc/apt/sources.list.d/greengrass.list sudo apt update

使用 systemd 指令碼以管理 Greengrass 協助程式生命週期

aws-iot-greengrass-core 套件也會安裝 systemd 指令碼,您可以使用該指令碼來管理 AWS IoT Greengrass 核心軟體 (協助程式) 生命週期。

  • 在開機期間啟動 Greengrass 協助程式:

    systemctl enable greengrass.service
  • 啟動 Greengrass 協助程式:

    systemctl start greengrass.service
  • 停止 Greengrass 協助程式:

    systemctl stop greengrass.service
  • 檢查 Greengrass 協助程式的狀態:

    systemctl status greengrass.service

 

在 Docker 容器中執行 AWS IoT Greengrass

AWS IoT Greengrass 提供 Dockerfile 和 Docker 映像檔,讓您更輕鬆執行 Docker 容器中的 AWS IoT Greengrass 核心軟體。如需詳細資訊,請參閱 AWS IoT Greengrass Docker 軟體

注意

您也可以在 Greengrass 核心裝置上執行 Docker 應用程式。為此,使用 Greengrass Docker 應用程式部署連接器

 

在 Snap 中執行 AWS IoT Greengrass

目前, AWS IoT Greengrass SNAP軟件可用於 AWS IoT Greengrass 核心 僅限1.8版。

TheThethe AWS IoT Greengrass Snap軟件下載讓您可以運行版本的 AWS IoT Greengrass 通過便捷的容器化軟件包,LinuxCloud、Desktop和Iot環境中的功能有限。這些套件或 Snap 包含 AWS IoT Greengrass 核心軟體及其相依性。您可以在 Linux 環境下載這些套件並依現狀使用。

TheThethe AWS IoT Greengrass Snap允許您運行版本的 AWS IoT Greengrass Linux環境中的功能有限。目前不支援 Java、Node.js 和原生 Lambda 函數。也不支援機器學習推論、連接器和非容器化 Lambda 函數。

AWS IoT Greengrass Snap 入門

由於預先包裝的 AWS IoT Greengrass Snap 旨在使用系統預設值,所以您可能需要執行下列其他步驟:

  • AWS IoT Greengrass Snap 會設定為使用預設 Greengrass 使用者和群組組態。這讓您能夠輕鬆地使用以 root 身分執行的 Greengrass 群組或 Lambda 函數。如果您需要使用未以 root 身分執行的 Greengrass 群組或 Lambda 函數,請更新這些組態,並將其新增到您的系統。

  • AWS IoT Greengrass Snap 會使用多個必須先連線的界面,否則 Snap 將無法正常運作。這些界面會在設定期間自動連線。如果您在設定 Snap 時使用其他選項,則可能需要手動連線這些界面。

如需 AWS IoT Greengrass Snap 和這些修改的詳細資訊,請參閱 Greengrass Snap 版本備註

  1. 在您裝置的終端機中,執行以下命令來安裝和升級 snapd:

    sudo apt-get update && sudo apt-get upgrade snapd
  2. 如果您需要使用並非以 root 身分執行的 Greengrass 群組或 Lambda 函數,請更新您的預設 Greengrass 使用者和群組組態,並將其新增到您的系統。如需使用 AWS IoT Greengrass 更新使用者和群組組態的詳細資訊,請參閱在群組中設定 Lambda 函數的預設存取身分。​

    • 用於 Ubuntu Core 系統時:

      • 若要新增 ggc_user 使用者,請使用:

        sudo adduser --extrausers --system ggc_user
      • 若要新增 ggc_group 群組,請使用:

        sudo addgroup --extrausers --system ggc_group
    • 用於 Ubuntu 傳統系統時:

      • 若要將 ggc_user 使用者新增到 Ubuntu 傳統系統,請省略 --extrausers 旗標,並使用:

        sudo adduser --system ggc_user
      • 若要將 ggc_group 新增到 Ubuntu 傳統系統,請省略 --extrausers 旗標,並使用:

        sudo addgroup --system ggc_group
  3. 在您的終端機中,執行以下命令來安裝 Greengrass Snap:

    sudo snap install aws-iot-greengrass
    注意

    您也可以使用 AWS IoT Greengrass Snap 下載連結,在本機安裝 Greengrass Snap。如果您是從此檔案安裝在本機上,而且沒有相關聯的聲明,請使用 --dangerous 旗標:

    sudo snap install --dangerous aws-iot-greengrass*.snap

    --dangerous 旗標會干擾 AWS IoT Greengrass Snap 連線其所需界面的能力。如果使用此旗標,您必須使用 snap connect 命令,手動連線所需的界面。 如需詳細資訊,請參閱 Greengrass Snap 版本備註

  4. 在安裝 Snap 之後,請執行以下命令來新增您的 Greengrass 憑證和組態檔:

    sudo snap set aws-iot-greengrass gg-certs=/path-to-the-certs/22e592db.tgz
    注意

    如有需要,您可以透過檢視 AWS IoT Greengrass 核心日誌來針對問題進行故障診斷,特別是 runtime.log。您可以執行下列命令,以將 runtime.log 的內容列印到終端機:

    sudo cat /var/snap/aws-iot-greengrass/current/ggc-writable/var/log/system/runtime.log
  5. 執行以下命令,驗證您的設定是否正常運作:

    $ snap services aws-iot-greengrass

    您應該會看到下列回應:

    Service Startup Current Notes aws-iot-greengrass.greengrassd enabled active -

您的 Greengrass 設定現在已完成。您現在可以使用 AWS IoT Greengrass 主控台、AWS REST API 或 AWS CLI,來部署與此 Snap 相關聯的 Greengrass 群組。如需使用主控台部署 Greengrass 群組的詳細資訊,請參閱將雲端組態部署到 AWS IoT Greengrass 核心裝置。如需使用 CLI 或 REST API 部署 Greengrass 群組的詳細資訊,請參閱 AWS IoT Greengrass API 參考中的 CreateDeployment

如需設定本機資源存取與 Snap AppArmor 限制、使用 Snap REST API 和設定 Snap 界面的詳細資訊,請參閱 Greengrass Snap 版本備註

封存 AWS IoT Greengrass 核心軟體安裝

升級到新版本的 AWS IoT Greengrass Core 軟體時,您可以封存目前安裝的版本。這會保留您目前的安裝環境,讓您可以在相同硬體上測試新的軟體版本。這也可讓您隨時輕鬆轉返至封存版本。

封存目前安裝並安裝新版本

  1. 下載您想要升級至的 AWS IoT Greengrass 核心軟體安裝套件。

  2. 將套件複製到目的地核心裝置。如需示範傳輸檔案的說明,請參閱此步驟

    注意

    稍後請將您目前的憑證、金鑰和組態檔案複製到新的安裝。

    在您的核心裝置終端機以下列步驟執行命令。

  3. 請確認 Greengrass 協助程式在核心裝置上已停止。

    1. 檢查精靈是否有在運作:

      ps aux | grep -E 'greengrass.*daemon'

      若輸出的 root 含有 /greengrass/ggc/packages/ggc-version/bin/daemon 項目,則精靈有在運作。

      注意

      此程序假設 AWS IoT Greengrass Core 軟體安裝於 /greengrass 目錄。

    2. 停止協助程式:

      cd /greengrass/ggc/core/ sudo ./greengrassd stop
  4. 將目前的 Greengrass 根目錄移到不同的目錄。

    sudo mv /greengrass /greengrass_backup
  5. 在核心裝置上將新的軟體解壓縮。取代命令中的 os-architectureversion 預留位置。

    sudo tar –zxvf greengrass-os-architecture-version.tar.gz –C /
  6. 將封存的憑證、金鑰和組態檔案複製到新的安裝。

    sudo cp /greengrass_backup/certs/* /greengrass/certs sudo cp /greengrass_backup/config/* /greengrass/config
  7. 啟動協助程式:

    cd /greengrass/ggc/core/ sudo ./greengrassd start

現在,您可以執行群組部署以測試新的安裝。如果發生故障,您可以還原封存的安裝。

還原封存的安裝

  1. 停止協助程式。

  2. 刪除新的 /greengrass 目錄。

  3. /greengrass_backup 目錄移回 /greengrass

  4. 啟動協助程式。