本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 Dockerfile 建置 AWS IoT Greengrass 容器映像
AWS 提供 Dockerfile,您可以下載並使用它在 Docker 容器中執行 AWS IoT Greengrass Core 軟體。Dockerfiles 包含用於建置 AWS IoT Greengrass 容器映像的原始碼。
在建置 AWS IoT Greengrass 容器映像之前,您必須設定 Dockerfile 以選取您要安裝 AWS IoT Greengrass 的核心軟體版本。您也可以設定環境變數,以選擇如何在安裝期間佈建資源,並自訂其他安裝選項。本節說明如何從 AWS IoT Greengrass Dockerfile 設定和建置 Docker 映像。
下載 Dockerfile 套件
您可以從 GitHub 下載 AWS IoT Greengrass Dockerfile 套件:
下載套件之後,請將內容解壓縮到電腦上的 資料夾。Dockerfile 使用較舊版本的 Greengrass。您應該更新 檔案,以使用您想要的 Greengrass 版本。download-directory/aws-greengrass-docker-nucleus-version
指定 AWS IoT Greengrass 核心軟體版本
在 Dockerfile 中使用下列建置引數,指定您要在 Docker AWS IoT Greengrass 映像中使用的 AWS IoT Greengrass Core 軟體版本。根據預設,Dockerfile 會使用最新版本的 AWS IoT Greengrass Core 軟體。
GREENGRASS_RELEASE_VERSION-
Core AWS IoT Greengrass 軟體的版本。根據預設,Dockerfile 會下載 Greengrass 核的最新可用版本。將 值設定為您要下載的 nucleus 版本。
設定環境變數
環境變數可讓您自訂 AWS IoT Greengrass Core 軟體在 Docker 容器中的安裝方式。您可以透過各種方式設定 Docker AWS IoT Greengrass 映像的環境變數。
您可以為 Docker AWS IoT Greengrass 映像設定下列環境變數。
注意
請勿修改 Dockerfile 中的TINI_KILL_PROCESS_GROUP變數。此變數允許轉送SIGTERM至 PIDs 群組中的所有 PID,以便在 Docker 容器停止時 AWS IoT Greengrass ,核心軟體可以正確關閉。
GGC_ROOT_PATH-
(選用) 容器內資料夾的路徑,做為 AWS IoT Greengrass Core 軟體的根目錄。
預設:
/greengrass/v2 PROVISION-
(選用) 判斷 AWS IoT Greengrass 核心是否佈建 AWS 資源。
-
如果您指定
true, AWS IoT Greengrass Core 軟體會將容器映像註冊為 AWS IoT 物件,並佈建 Greengrass 核心裝置所需的 AWS 資源。Core AWS IoT Greengrass 軟體會佈建 AWS IoT 物件、 (選用) AWS IoT 物件群組、IAM 角色和 AWS IoT 角色別名。如需詳細資訊,請參閱AWS IoT Greengrass 在具有自動資源佈建的 Docker 容器中執行。 -
如果您指定
false,則必須建立組態檔案,以提供給 AWS IoT Greengrass 核心安裝程式,指定 使用您手動建立 AWS 的資源和憑證。如需詳細資訊,請參閱AWS IoT Greengrass 在具有手動資源佈建的 Docker 容器中執行。
預設:
false -
AWS_REGION-
(選用) AWS IoT Greengrass 核心軟體用來擷取或建立必要 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-
(選用) IAM 角色的名稱,用來取得可讓 Greengrass 核心裝置與 AWS 服務互動的 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 核心軟體用來執行元件之系統使用者和群組的名稱或 ID。指定使用者和群組,以冒號分隔。群組為選用項目。例如,您可以指定
ggc_user:ggc_group或ggc_user。-
如果您以根身分執行,這會預設為組態檔案定義的使用者和群組。如果組態檔案未定義使用者和群組,則預設為
ggc_user:ggc_group。如果ggc_user或ggc_group不存在,軟體會建立它們。 -
如果您以非根使用者身分執行 , AWS IoT Greengrass Core 軟體會使用該使用者來執行元件。
-
如果您未指定群組,則 AWS IoT Greengrass Core 軟體會使用系統使用者的主要群組。
如需詳細資訊,請參閱設定執行元件的使用者。
-
DEPLOY_DEV_TOOLS-
定義是否要在容器映像中下載和部署 Greengrass CLI 元件。您可以使用 Greengrass CLI 在本機開發和偵錯元件。
重要
建議您僅在開發環境中使用此元件,而非生產環境中。此元件可讓您存取生產環境中通常不需要的資訊和操作。僅將此元件部署到您需要的核心裝置,以遵循最低權限原則。
預設:
false INIT_CONFIG-
(選用) 用於安裝 AWS IoT Greengrass Core 軟體的組態檔案路徑。您可以使用此選項來設定具有特定核心組態的新 Greengrass 核心裝置,或指定手動佈建的資源,例如 。您必須將組態檔案掛載至您在此引數中指定的路徑。
TRUSTED_PLUGIN-
此功能適用於 Greengrass 核元件的 v2.4.0 和更新版本。
(選用) 要載入為信任外掛程式的 JAR 檔案路徑。使用此選項提供佈建外掛程式 JAR 檔案,例如使用機群佈建或自訂佈建安裝 。
THING_POLICY_NAME-
此功能適用於 Greengrass 核元件的 v2.4.0 和更新版本。
(選用) 要連接到此核心裝置 AWS IoT 物件憑證 AWS IoT 的政策名稱。如果具有此名稱 AWS IoT 的政策不存在 AWS 帳戶 於您的 AWS IoT Greengrass Core 軟體中。
您必須指定
PROVISION=true才能套用此引數。注意
Core AWS IoT Greengrass 軟體預設會建立寬鬆 AWS IoT 政策。您可以縮小此政策的範圍,或建立自訂政策,以限制使用案例的許可。如需詳細資訊,請參閱AWS IoT Greengrass V2 核心裝置的最低 AWS IoT 政策。
指定要安裝的相依性
Dockerfile 中的 RUN AWS IoT Greengrass 指令會準備容器環境來執行 AWS IoT Greengrass Core 軟體安裝程式。您可以自訂 AWS IoT Greengrass Core 軟體安裝程式在 Docker 容器中執行之前安裝的相依性。
建置 AWS IoT Greengrass 映像
使用 AWS IoT Greengrass Dockerfile 建置 AWS IoT Greengrass 容器映像。您可以使用 Docker CLI 或 Docker Compose CLI 來建置映像並啟動容器。您也可以使用 Docker CLI 建置映像,然後使用 Docker Compose 從該映像啟動容器。
您已成功建立 AWS IoT Greengrass 容器映像。Docker 映像檔已安裝 AWS IoT Greengrass 核心軟體。您現在可以在 Docker 容器中執行 AWS IoT Greengrass Core 軟體。