從碼頭文件構建AWS IoT Greengrass容器映像 - AWS IoT Greengrass

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

從碼頭文件構建AWS IoT Greengrass容器映像

AWS提供了一個 Docker 文件,您可以下載並使用它在 Docker 容器中運行AWS IoT Greengrass核心軟件。碼頭文件包含用於構建AWS IoT Greengrass容器映像的源代碼。

在建置AWS IoT Greengrass容器映像檔之前,您必須設定 Docker 檔案,以選取您要安裝的 AWS IoT Greengrass Core 軟體版本。您也可以設定環境變數,以選擇在安裝期間佈建資源的方式,以及自訂其他安裝選項。本節介紹如何從 Docker 文件配置和構建 AWS IoT Greengrass Docker 映像。

下載碼頭文件包

您可以從以下位置下載AWS IoT Greengrass碼頭文件包: GitHub

AWS Greengrass 泊塢工人存儲庫

下載套件之後,請將內容解壓縮至電腦上的download-directory/aws-greengrass-docker-nucleus-version資料夾。碼頭文件使用舊版本的 Greengrass。您應該更新該文件以使用所需的 Greengrass 版本。

指定AWS IoT Greengrass核心軟體版本

使用 Docker 檔案中的下列建置引數來指定您要在 Doc AWS IoT Greengrass ker 映像檔中使用的AWS IoT Greengrass核心軟體版本。默認情況下,碼頭文件使用的AWS IoT Greengrass核心軟件的最新版本。

GREENGRASS_RELEASE_VERSION

AWS IoT Greengrass核心軟體的版本。默認情況下,碼頭文件下載 Greengrass 核的最新可用版本。將值設定為您要下載的原子核的版本。

設定環境變數

環境變數可讓您自訂AWS IoT Greengrass核心軟體在 Docker 容器中的安裝方式。您可以通過各種方式為 D AWS IoT Greengrass ocker 映像設置環境變量。

  • 若要使用相同的環境變數建立多個影像,請直接在 Docker 檔案中設定環境變數。

  • 如果您使docker run用啟動容器,請在命令中傳遞環境變數做為引數,或在環境變數檔案中設定環境變數,然後將檔案當作引數傳遞。如需有關在 Docker 中設定環境變數的詳細資訊,請參閱 Docker 文件中的環境變數

  • 如果您使docker-compose up用啟動容器,請在環境變量文件中設置環境變量,然後將該文件作為參數傳遞。如需有關在撰寫中設定環境變數的詳細資訊,請參閱 Docker 文件

您可以為 AWS IoT Greengrass Docker 映像檔設定下列環境變數。

注意

請勿修改 Docker 檔案中的TINI_KILL_PROCESS_GROUP變數。此變數允許轉送SIGTERM至 PID 群組中的所有 PID,以便在 Docker 容器停止時,AWS IoT Greengrass核心軟體可以正確關閉。

GGC_ROOT_PATH

(選擇性) 容器內用作AWS IoT Greengrass核心軟體根目錄的資料夾路徑。

預設:/greengrass/v2

PROVISION

(選擇性) 決定AWS IoT Greengrass核心是否佈建AWS資源。

預設:false

AWS_REGION

(選擇性) AWS IoT Greengrass Core 軟體用來擷取或建立必要AWS資源的。AWS 區域

預設:us-east-1

THING_NAME

(選擇性) 您註冊為此核心裝置的AWS IoT物件名稱。如果您的內容不存在具有此名稱的內容AWS 帳戶,則 AWS IoT Greengrass Core 軟件將創建它。

您必須指PROVISION=true定套用此引數。

預設值:GreengrassV2IotThing_加上一個隨機的 UUID。

THING_GROUP_NAME

(選擇性) 您新增此核心裝置的AWS IoT物群組名稱AWS IoT如果部署以此物件群組為目標,則該群組中的這個核心裝置和其他核心裝置會在連線時收到該部署AWS IoT Greengrass。如果具有此名稱的物件群組不存在於您的中AWS 帳戶,則 AWS IoT Greengrass Core 軟體會建立該物件群組。

您必須指PROVISION=true定套用此引數。

TES_ROLE_NAME

(選擇性) 要用來取得AWS認證的 IAM 角色名稱,讓 Greengrass 核心裝置與服務互動。AWS如果您的中不存在具有此名稱的角色AWS 帳戶,則 AWS IoT Greengrass Core 軟體會使用GreengrassV2TokenExchangeRoleAccess原則建立該角色。此角色無法存取託管元件成品的 S3 儲存貯體。因此,您必須在建立元件時,將權限新增至人工因素的 S3 儲存貯體和物件。如需詳細資訊,請參閱 授權核心裝置與 AWS 服務互動

預設:GreengrassV2TokenExchangeRole

TES_ROLE_ALIAS_NAME

(選擇性) 指向提供 Greengrass 核心裝置AWS登入資料的 IAM 角色的角色別名名稱。AWS IoT如果您的中不存在具有此名稱的角色別名AWS 帳戶,則 AWS IoT Greengrass Core 軟體會建立該別名,並將其指向您指定的 IAM 角色。

預設:GreengrassV2TokenExchangeRoleAlias

COMPONENT_DEFAULT_USER

(選擇性) AWS IoT Greengrass Core 軟體用來執行元件之系統使用者和群組的名稱或識別碼。指定使用者和群組,以冒號分隔。群組為選用項目。例如,您可以指定 ggc_user:ggc_groupggc_user

  • 如果您以 root 身份執行,則預設為組態檔定義的使用者和群組。如果設定檔未定義使用者和群組,則預設值為ggc_user:ggc_group。如果ggc_userggc_group不存在,軟件將創建它們。

  • 如果您以非 root 使用者身分執行,AWS IoT GreengrassCore 軟體會使用該使用者來執行元件。

  • 如果您未指定群組,AWS IoT GreengrassCore 軟體會使用系統使用者的主要群組。

如需詳細資訊,請參閱 設定執行元件的使用者

DEPLOY_DEV_TOOLS

定義是否要在容器映像檔中下載和部署 Greengrass CLI 元件。您可以使用 Greengrass CLI 在本地開發和調試組件。

重要

我們建議您僅在開發環境中使用此元件,而不是在生產環境中使用。此元件可讓您存取通常在生產環境中不需要的資訊和作業。只將此元件部署到您需要的核心裝置,以遵循最低權限原則。

預設:false

INIT_CONFIG

(選擇性) 用來安裝 AWS IoT Greengrass Core 軟體的組態檔案路徑。您可以使用此選項來設定具有特定核心組態的新 Greengrass 核心裝置,或指定手動佈建的資源,例如。您必須將組態檔掛載到您在此引數中指定的路徑。

TRUSTED_PLUGIN

此功能適用於 v2.4.0 和更高版 Greeng rass 核組件。

(選擇性) 要載入為受信任外掛程式之 JAR 檔案的路徑。使用此選項可提供佈建外掛程式 JAR 檔案,例如透過叢集佈建或自訂佈建進行安裝。

THING_POLICY_NAME

此功能適用於 v2.4.0 和更高版 Greeng rass 核組件。

(選擇性) 要附加至此核心裝置AWS IoT物件憑證的AWS IoT原則名稱。如果具有此名稱的AWS IoT策略不存在於您的 AWS IoT Greengrass Core 軟件AWS 帳戶中,則會創建它。

您必須指PROVISION=true定套用此引數。

注意

根據預設,AWS IoT GreengrassCore 軟體會建立寬容AWS IoT原則。您可以縮小此原則的範圍,或建立自訂原則,以限制使用案例的權限。如需詳細資訊,請參閱 AWS IoT Greengrass V2核心裝置的最低AWS IoT原則

指定要安裝的相依性

AWS IoT GreengrassDockerfile 中的 RUN 指令會準備容器環境以執行AWS IoT Greengrass核心軟體安裝程式。您可以自訂AWS IoT Greengrass核心軟體安裝程式在 Docker 容器中執行之前所安裝的相依性。

建立映AWS IoT Greengrass像

使用AWS IoT Greengrass碼頭文件來構建AWS IoT Greengrass容器映像。您可以使用碼頭 CLI 或碼頭構成 CLI 來構建映像並啟動容器。您也可以使用 Docker CLI 來構建映像,然後使用 Docker 撰寫從該映像啟動容器。

Docker
  1. 在主機上,執行下列命令以切換至包含已設定 Docker 檔案的目錄。

    cd download-directory/aws-greengrass-docker-nucleus-version
  2. 運行以下命令從碼頭文件構建AWS IoT Greengrass容器映像。

    sudo docker build -t "platform/aws-iot-greengrass:nucleus-version" ./
Docker Compose
  1. 在主機上,執行下列命令以切換至包含 Docker 檔案和撰寫檔案的目錄。

    cd download-directory/aws-greengrass-docker-nucleus-version
  2. 執行下列命令,以使用撰寫檔案來建置AWS IoT Greengrass容器映像。

    docker-compose -f docker-compose.yml build

您已成功建立AWS IoT Greengrass容器映像檔。碼頭映像已安裝AWS IoT Greengrass核心軟件。您現在可以在 Docker 容器中執行AWS IoT Greengrass核心軟體。