

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

# 步驟 6：部署您的元件
<a name="deploy-first-component"></a>

使用 AWS IoT Greengrass，您可以將元件部署到個別裝置或裝置群組。當您部署元件時， 會在每個目標裝置上 AWS IoT Greengrass 安裝並執行該元件的軟體。您可以指定要部署的元件，以及要為每個元件部署的組態更新。您也可以控制部署如何推展到部署目標的裝置。如需詳細資訊，請參閱[將 AWS IoT Greengrass 元件部署至裝置](manage-deployments.md)。

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

## 部署您的元件 （主控台）
<a name="deploy-first-component-console"></a>

1. 在[AWS IoT Greengrass 主控台](https://console.aws.amazon.com/greengrass)導覽功能表中，選擇**元件**。

1. 在**元件**頁面上的**我的元件**索引標籤上，選擇 **com.example.HelloWorld**。

1. 在 **com.example.HelloWorld** 頁面中，選擇**部署**。

1. 從**新增至部署**，選擇**建立新部署**，然後選擇**下一步**。

1. 在**指定目標**頁面上，執行下列作業：

   1. 在 **Name** (名稱) 方塊中，輸入 **Deployment for MyGreengrassCore**。

   1. 針對**部署目標**，選擇**核心裝置**，以及核心裝置的 AWS IoT 物件名稱。本教學課程中的預設值為 *MyGreengrassCore*。

   1. 選擇 **Next (下一步)**。

1. 在**選取元件**頁面的**我的元件**下，確認已選取**com.example.HelloWorld**元件，然後選擇**下一步**。

1. 在**設定元件**頁面上，選擇 **com.example.HelloWorld**，然後執行下列動作：

   1. 選擇**設定元件**。

   1. 在**組態更新**下的**要合併的組態**中，輸入下列組態。

      ```
      {
        "Message": "universe"
      }
      ```

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

   1. 選擇**確認**。

   1. 選擇 **Next (下一步)**。

1. 在**設定進階設定**頁面上，保留預設組態設定，然後選擇 **下一步**。

1. 在 **Review (檢閱)** 頁面，選擇 **Deploy (部署)**。

1. <a name="getting-started-verify-cloud-deployment-step"></a>確認部署已成功完成。可能需要幾分鐘才能完成部署。檢查 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 核心軟體日誌檔案。此檔案包含 Greengrass 核心裝置的部署服務日誌。  

   ```
   sudo tail -f /greengrass/v2/logs/greengrass.log
   ```

   ```
   type C:\greengrass\v2\\logs\\greengrass.log
   ```
<a name="windows-cmd-type-observe-logs"></a>`type` 命令會將檔案的內容寫入終端機。執行此命令多次，以觀察 檔案中的變更。

   ```
   gc C:\greengrass\v2\\logs\\greengrass.log -Tail 10 -Wait
   ```
如需詳細資訊，請參閱[故障診斷 AWS IoT Greengrass V2](troubleshooting.md)。

## 部署您的元件 (AWS CLI)
<a name="deploy-first-component-cli"></a>

**部署 Hello World 元件**

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

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

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

1. 執行下列命令，將元件部署到您的 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"
   }
   ```

1. <a name="getting-started-verify-cloud-deployment-step"></a>確認部署已成功完成。可能需要幾分鐘才能完成部署。檢查 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 核心軟體日誌檔案。此檔案包含 Greengrass 核心裝置的部署服務日誌。  

   ```
   sudo tail -f /greengrass/v2/logs/greengrass.log
   ```

   ```
   type C:\greengrass\v2\\logs\\greengrass.log
   ```
<a name="windows-cmd-type-observe-logs"></a>`type` 命令會將檔案的內容寫入終端機。執行此命令多次，以觀察 檔案中的變更。

   ```
   gc C:\greengrass\v2\\logs\\greengrass.log -Tail 10 -Wait
   ```
如需詳細資訊，請參閱[故障診斷 AWS IoT Greengrass V2](troubleshooting.md)。