步驟 6:部署元件 - AWS IoT Greengrass

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

步驟 6:部署元件

使用AWS IoT Greengrass,您可以將元件部署到個別裝置或裝置群組。部署元件時,請在每個目標AWS IoT Greengrass裝置上安裝並執行該元件的軟體。您可以指定要部署的元件,以及要為每個元件部署的組態更新。您也可以控制部署如何向部署作為目標的設備進行部署。如需詳細資訊,請參閱 將AWS IoT Greengrass元件部署到裝置

在本節中,您將您的 Hello World 元件部署回 Greengrass 核心裝置。

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

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

  3. com.example.HelloWorld頁面中,選擇部署

  4. 從新增至部署中,選擇建立新部署,然後選擇下一步

  5. 指定目標頁面上,執行下列作業:

    1. Name (名稱) 方塊中,輸入 Deployment for MyGreengrassCore

    2. 針對部署目標,選擇核心裝置,以及核心裝置的項AWS IoT目名稱。此自學課程中的預設值為MyGreengrassCore

    3. 選擇下一步

  6. 在 [選取元件] 頁面的 [我的元件] 下,確認已選取com.example.HelloWorld元件,然後選擇 [下步]。

  7. 在 [設定元件] 頁面上 com.example.HelloWorld,選擇並執行下列動作:

    1. 選擇 設定元件

    2. 組態更新下的要合併的組態中,輸入下列組態。

      { "Message": "universe" }

      此組態更新會將此部署中裝置universe的 Hello World Message 參數設定為。

    3. 選擇確認

    4. 選擇下一步

  8. 設定進階設定頁面上,保留預設組態設定,然後選擇 下一步

  9. Review (檢閱) 頁面,選擇 Deploy (部署)

  10. 確認部署已成功完成。可能需要幾分鐘才能完成部署。檢查 Hello World 日誌以驗證更改。在您的 Greengrass 核心設備上運行以下命令。

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/com.example.HelloWorld.log
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\\logs\\com.example.HelloWorld.log
    PowerShell
    gc C:\greengrass\v2\\logs\\com.example.HelloWorld.log -Tail 10 -Wait

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

    Hello, universe! Greetings from your first Greengrass component.
    注意

    如果記錄訊息未變更,表示部署失敗或無法到達核心裝置。如果您的核心裝置未連線到網際網路,或者沒有從 S3 儲存貯體擷取成品的權限,就會發生這種情況。在核心裝置上執行下列命令,以檢視 AWS IoT Greengrass Core 軟體記錄檔。此檔案包含來自 Greengrass 核心裝置部署服務的記錄檔。

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\\logs\\greengrass.log

    type命令將文件的內容寫入終端。多次執行此命令以觀察檔案中的變更。

    PowerShell
    gc C:\greengrass\v2\\logs\\greengrass.log -Tail 10 -Wait

    如需詳細資訊,請參閱 疑難排 AWS IoT Greengrass V2

若要部署您的 Hello World 元件
  1. 在您的開發電腦上,建立名為的檔案,hello-world-deployment.json並將下列 JSON 複製到檔案中。此檔案定義要部署的元件和組態。

    { "components": { "com.example.HelloWorld": { "componentVersion": "1.0.0", "configurationUpdate": { "merge": "{\"Message\":\"universe\"}" } } } }

    此組態檔案會指定部署您在先前程序中開發並發佈之 Hello World 元件1.0.0的版本。configurationUpdate指定要合併 JSON 編碼字串中的組件組態。此組態更新會將此部署中裝置universe的 Hello World Message 參數設定為。

  2. 執行下列命令,將元件部署到 Greengrass 核心裝置。您可以部署至個別裝置或物群組 (裝置群組) 的物件。MyGreengrassCore替換為核心設備的AWS IoT物件的名稱。

    Linux or Unix
    aws greengrassv2 create-deployment \ --target-arn "arn:aws:iot:region:account-id:thing/MyGreengrassCore" \ --cli-input-json file://hello-world-deployment.json
    Windows Command Prompt (CMD)
    aws greengrassv2 create-deployment ^ --target-arn "arn:aws:iot:region:account-id:thing/MyGreengrassCore" ^ --cli-input-json file://hello-world-deployment.json
    PowerShell
    aws greengrassv2 create-deployment ` --target-arn "arn:aws:iot:region:account-id:thing/MyGreengrassCore" ` --cli-input-json file://hello-world-deployment.json

    指令會輸出類似下列範例的回應。

    { "deploymentId": "deb69c37-314a-4369-a6a1-3dff9fce73a9", "iotJobId": "b5d92151-6348-4941-8603-bdbfb3e02b75", "iotJobArn": "arn:aws:iot:region:account-id:job/b5d92151-6348-4941-8603-bdbfb3e02b75" }
  3. 確認部署已成功完成。可能需要幾分鐘才能完成部署。檢查 Hello World 日誌以驗證更改。在您的 Greengrass 核心設備上運行以下命令。

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/com.example.HelloWorld.log
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\\logs\\com.example.HelloWorld.log
    PowerShell
    gc C:\greengrass\v2\\logs\\com.example.HelloWorld.log -Tail 10 -Wait

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

    Hello, universe! Greetings from your first Greengrass component.
    注意

    如果記錄訊息未變更,表示部署失敗或無法到達核心裝置。如果您的核心裝置未連線到網際網路,或者沒有從 S3 儲存貯體擷取成品的權限,就會發生這種情況。在核心裝置上執行下列命令,以檢視 AWS IoT Greengrass Core 軟體記錄檔。此檔案包含來自 Greengrass 核心裝置部署服務的記錄檔。

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\\logs\\greengrass.log

    type命令將文件的內容寫入終端。多次執行此命令以觀察檔案中的變更。

    PowerShell
    gc C:\greengrass\v2\\logs\\greengrass.log -Tail 10 -Wait

    如需更多詳細資訊,請參閱 疑難排 AWS IoT Greengrass V2