選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

步驟 3:將元件發佈至AWS IoT Greengrass服務

焦點模式
步驟 3:將元件發佈至AWS IoT Greengrass服務 - AWS IoT Greengrass

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

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

在本節中,您將 Hello World 元件發佈到AWS IoT Greengrass雲端服務。在AWS IoT Greengrass雲端服務中可用元件之後,您可以將其部署到核心裝置。您可以使用 GDK CLI 將元件從開發電腦發佈到AWS IoT Greengrass雲端服務。GDK CLI 會為您上傳元件的配方和成品。

若要將 Hello World 元件發佈至AWS IoT Greengrass服務
  1. 執行下列命令,以使用 GDK CLI 建置元件。組件構建命令會根據 GDK CLI 配置文件創建方案和成品。在此程序中,GDK CLI 會建立包含元件原始程式碼的 ZIP 檔案。

    gdk component build

    您應該會看到類似下列範例的訊息。

    [2022-04-28 11:20:16] INFO - Getting project configuration from gdk-config.json [2022-04-28 11:20:16] INFO - Found component recipe file 'recipe.yaml' in the project directory. [2022-04-28 11:20:16] INFO - Building the component 'com.example.BatteryAwareHelloWorld' with the given project configuration. [2022-04-28 11:20:16] INFO - Using 'zip' build system to build the component. [2022-04-28 11:20:16] WARNING - This component is identified as using 'zip' build system. If this is incorrect, please exit and specify custom build command in the 'gdk-config.json'. [2022-04-28 11:20:16] INFO - Zipping source code files of the component. [2022-04-28 11:20:16] INFO - Copying over the build artifacts to the greengrass component artifacts build folder. [2022-04-28 11:20:16] INFO - Updating artifact URIs in the recipe. [2022-04-28 11:20:16] INFO - Creating component recipe in 'C:\Users\finthomp\greengrassv2\com.example.BatteryAwareHelloWorld\greengrass-build\recipes'.
  2. 執行下列命令,將元件發佈至AWS IoT Greengrass雲端服務。元件發佈命令會將元件的 ZIP 檔案成品上傳至 S3 儲存貯體。然後,它會更新元件方案中的 ZIP 檔案的 S3 URI,並將配方上傳至AWS IoT Greengrass服務。在此過程中,GDK CLI 會檢查AWS IoT Greengrass雲端服務中已經可用的 Hello World 元件版本,因此它可以選擇該版本之後的下一個修補程式版本。如果元件尚不存在,GDK CLI 會使用版本1.0.0

    gdk component publish

    您應該會看到類似下列範例的訊息。輸出會告訴您 GDK CLI 建立的元件版本。

    [2022-04-28 11:20:29] INFO - Getting project configuration from gdk-config.json [2022-04-28 11:20:29] INFO - Found component recipe file 'recipe.yaml' in the project directory. [2022-04-28 11:20:29] INFO - Found credentials in shared credentials file: ~/.aws/credentials [2022-04-28 11:20:30] INFO - No private version of the component 'com.example.BatteryAwareHelloWorld' exist in the account. Using '1.0.0' as the next version to create. [2022-04-28 11:20:30] INFO - Publishing the component 'com.example.BatteryAwareHelloWorld' with the given project configuration. [2022-04-28 11:20:30] INFO - Uploading the component built artifacts to s3 bucket. [2022-04-28 11:20:30] INFO - Uploading component artifacts to S3 bucket: greengrass-component-artifacts-us-west-2-123456789012. If this is your first time using this bucket, add the 's3:GetObject' permission to each core device's token exchange role to allow it to download the component artifacts. For more information, see https://docs.aws.amazon.com/greengrass/v2/developerguide/device-service-role.html. [2022-04-28 11:20:30] INFO - Not creating an artifacts bucket as it already exists. [2022-04-28 11:20:30] INFO - Updating the component recipe com.example.BatteryAwareHelloWorld-1.0.0. [2022-04-28 11:20:31] INFO - Creating a new greengrass component com.example.BatteryAwareHelloWorld-1.0.0 [2022-04-28 11:20:31] INFO - Created private version '1.0.0' of the component in the account.'com.example.BatteryAwareHelloWorld'.
  3. 從輸出複製 S3 儲存貯體名稱。稍後您可以使用值區名稱,以允許核心裝置從此值區下載元件成品。

  4. (選擇性) 在AWS IoT Greengrass主控台中檢視元件,以確認該元件已成功上傳。請執行下列操作:

    1. AWS IoT Greengrass主控台瀏覽功能表中,選擇 [元件]。

    2. 在 [件] 頁面上,選擇 [我的元件] 索引標籤,然後選擇com.example.BatteryAwareHelloWorld

      在此頁面上,您可以查看元件的配方以及元件的其他相關資訊。

  5. 允許核心裝置存取 S3 儲存貯體中的元件成品。

    每個核心裝置都有一個核心裝置 IAM 角色,可讓其與雲端互動AWS IoT並將記錄檔傳送到AWS雲端。依預設,此裝置角色不允許存取 S3 儲存貯體,因此您必須建立並附加政策,以允許核心裝置從 S3 儲存貯體擷取元件成品。

    如果您的裝置角色已允許存取 S3 儲存貯體,則可以略過此步驟。否則,請建立允許存取的 IAM 政策,並將其附加到角色,如下所示:

    1. IAM 主控台導覽功能表中,選擇 [政],然後選擇 [建立政策]。

    2. JSON 標籤上,用以下政策取代預留位置內容。將 greengrass-component-artifacts-us-WEST 2-123456789012 取代為 GDK CLI 上傳元件成品的 S3 儲存貯體的名稱。

      例如,如果您在 GDK CLI 組態檔us-west-2中指定了 greengrass-component-artifacts AND,而您的AWS 帳戶識別碼是123456789012,GDK CLI 會使用名為的 S3 儲存貯體。greengrass-component-artifacts-us-west-2-123456789012

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::greengrass-component-artifacts-us-west-2-123456789012/*" } ] }
    3. 選擇下一步

    4. 在「策略詳細資料」區段中,輸入做為「名稱MyGreengrassV2ComponentArtifactPolicy

    5. 選擇建立政策

    6. IAM 主控台導覽功能表中,選擇 [角色],然後選擇核心裝置的角色名稱。您在安裝 AWS IoT Greengrass Core 軟體時指定了這個角色名稱。如果您未指定名稱,則預設值為GreengrassV2TokenExchangeRole

    7. 在「權限」下,選擇「新增權限」,然後選擇「附加策略

    8. 在 [新增權限] 頁面上,選取您建立之MyGreengrassV2ComponentArtifactPolicy原則旁邊的核取方塊,然後選擇 [新增權限]。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。