

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 第 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. 在**名称**框中，输入 **Deployment for MyGreengrassCore**。

   1. 对于**部署目标**，选择**核心设备**，以及核心设备的 AWS IoT 事物的名称。本教程中的默认值是 *MyGreengrassCore*。

   1. 选择**下一步**。

1. 在**选择组件**页面的**我的组件**下，确认已选择 **com.example.HelloWorld** 组件，然后选择**下一步**。

1. 在**配置组件**页面上，选择 **com.example.HelloWorld**，然后执行以下操作：

   1. 选择**配置组件**。

   1. 在**配置更新**下的**要合并的配置**中，输入以下配置。

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

      此配置更新将此部署中设备的 Hello World `Message` 参数设置为 `universe`。

   1. 选择**确认**。

   1. 选择**下一步**。

1. 在**配置高级设置**页面上，保留默认配置设置，然后选择**下一步**。

1. 在 **检查** 页上，选择 **部署**。

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 Core 软件日志文件。此文件包含来自 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\"}"
         }
       }
     }
   }
   ```

   此配置文件指定部署您在之前的过程中开发和发布的 Hello World 组件的版本 `1.0.0`。`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 Core 软件日志文件。此文件包含来自 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)。