

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

# Amazon IoT Greengrass V1 发现演示应用程序
<a name="gg-demov1"></a>

**重要**  <a name="deprecation-message-demo"></a>
该演示托管在已弃用的 Amazon-FreeRTOS 存储库中。当您创建新项目时，我们建议[从此处开始](freertos-getting-started-modular.md)。如果您已经有一个基于现已弃用的 Amazon-FreeRTOS 存储库的 FreeRTOS 项目，请参阅 [Amazon-FreeRTOS Github 存储库迁移指南](github-repo-migration.md)。

为 FreeRTOS 运行 Amazon IoT Greengrass Discovery 演示之前，您需要设置 Amazon、Amazon IoT Greengrass 和 Amazon IoT。要设置 Amazon，请遵循 [设置您的Amazon账户和权限](freertos-prereqs.md#freertos-account-and-permissions) 中的说明。要设置 Amazon IoT Greengrass，您需要创建一个 Greengrass 组，然后添加一个 Greengrass 核心。有关设置 Amazon IoT Greengrass 的更多信息，请参阅 [Amazon IoT Greengrass 入门](https://docs.amazonaws.cn/greengrass/latest/developerguide/gg-gs.html)。

设置 Amazon 和 Amazon IoT Greengrass 之后，您需要为 Amazon IoT Greengrass 配置一些其他权限。

**设置 Amazon IoT Greengrass 权限**

1. 转到 [IAM 控制台](https://console.amazonaws.cn/iam/home)。

1. 从导航窗格中，选择 **Roles (角色)**，然后查找并选择 **Greengrass\$1ServiceRole**。

1. 选择 **Attach policies (附加策略)**，选择 **AmazonS3FullAccess** 和 **AWSIoTFullAccess**，然后选择 **Attach policy (附加策略)**。

1. 浏览至 [Amazon IoT 控制台](https://console.amazonaws.cn/iotv2/)。

1. 在导航窗格中，选择 **Greengrass**，选择 **Groups (组)**，然后选择之前创建的 Greengrass 组。

1. 选择 **Settings (设置)**，然后选择 **Add role (添加角色)**。

1. 选择 **Greengrass\$1ServiceRole**，然后选择 **Save (保存)**。

将主板连接到 Amazon IoT 并配置 FreeRTOS 演示。

1. [注册您的 MCU 主板 Amazon IoT](freertos-prereqs.md#get-started-freertos-thing)

   注册主板后，您需要创建新的 Greengrass 策略并将其附加到设备证书。

**创建新的 Amazon IoT Greengrass 策略**

   1. 浏览至 [Amazon IoT 控制台](https://console.amazonaws.cn/iotv2/)。

   1. 在导航窗格中依次选择**安全**、**策略**和**创建**。

   1. 输入用于标识您的策略的名称。

   1. 在**添加语句**部分中，选择**高级模式**。将以下 JSON 复制并粘贴到策略编辑器窗口中：

      ```
      {
            "Effect": "Allow",
            "Action": [
              "greengrass:*"
            ],
            "Resource": "*"
      }
      ```

      此策略向所有资源授予 Amazon IoT Greengrass 权限。

   1. 选择**创建**。

**将 Amazon IoT Greengrass 策略附加到设备证书**

   1. 浏览至 [Amazon IoT 控制台](https://console.amazonaws.cn/iotv2/)。

   1. 在导航窗格中，选择 **Manage (管理)**，选择 **Things (事物)**，然后选择之前创建的事物。

   1. 选择 **Security (安全性)**，然后选择附加到设备的证书。

   1. 选择 **Policies (策略)**，选择 **Actions (操作)**，然后选择 **Attach Policy (附加策略)**。

   1. 查找并选择之前创建的 Greengrass 策略，然后选择 **Attach (附加)**。

1. [下载 FreeRTOS](freertos-prereqs.md#freertos-download)
**注意**  
如果要从 FreeRTOS 控制台下载 FreeRTOS，请选择**连接到 Amazon IoT Greengrass- *平台***，而不是**连接到 Amazon IoT- *平台***。

1. [配置 FreeRTOS 演示](freertos-prereqs.md#freertos-configure).

   打开 `freertos/vendors/vendor/boards/board/aws_demos/config_files/aws_demo_config.h`，注释掉 `#define CONFIG_CORE_MQTT_MUTUAL_AUTH_DEMO_ENABLED` 并定义 `CONFIG_GREENGRASS_DISCOVERY_DEMO_ENABLED`。

设置 Amazon IoT 和 Amazon IoT Greengrass 以及下载和配置 FreeRTOS 后，您可以在设备上构建、刷写并运行 Greengrass 演示。要设置主板的硬件和软件开发环境，请遵循[主板特定的入门指南](getting-started-guides.md)中的说明。

该 Greengrass 演示向 Greengrass 核心和 Amazon IoT MQTT 客户端发布一系列消息。要查看 Amazon IoT MQTT 客户端中的消息，请打开 [Amazon IoT 控制台](https://console.amazonaws.cn/iotv2/)，选择**测试**，选择 **MQTT 测试客户端**，然后向 `freertos/demos/ggd` 添加订阅。

在 MQTT 客户端中，您应看到下列字符串：

```
Message from Thing to Greengrass Core: Hello world msg #1!
Message from Thing to Greengrass Core: Hello world msg #0!
Message from Thing to Greengrass Core: Address of Greengrass Core found! 123456789012.us-west-2.compute.amazonaws.com
```

## 使用 Amazon EC2 实例
<a name="gg-demo-ec2"></a>

**在使用 Amazon EC2 实例的情况下**

1. 查找与您的 Amazon EC2 实例关联的公有 DNS (IPv4) — 转至 Amazon EC2 控制台，然后在左侧导航面板中选择**实例**。选择您的 Amazon EC2 实例，然后选择**描述**面板。查找并记下**公有 DNS (IPv4)** 的条目。

1. 查找**安全组**的条目，然后选择附加到您的 Amazon EC2 实例的安全组。

1. 选择**入站规则**选项卡，然后选择**编辑入站规则**并添加以下规则。  
**入站规则**    
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/freertos/latest/userguide/gg-demov1.html)

1. 在 Amazon IoT 控制台中，选择 **Greengrass**，选择 **组**，然后选择先前创建的 Greengrass 组。选择**设置**。将**本地连接检测**更改为**手动管理连接信息**。

1. 在导航窗格中，选择**核心**，然后选择您的组核心。

1. 选择**连接**，并确保您只有一个核心终端节点（删除其余所有终端节点），并且它不是 IP 地址（因为它可能会发生更改）。最佳选择是使用您在第一步中记下的公有 DNS (IPv4)。

1. 将您创建的 FreeRTOS IoT 物品添加到 GG 组。

   1. 选择返回箭头以返回 Amazon IoT Greengrass 组页面。在导航窗格中，选择**设备**，然后选择**添加设备**。

   1. 选择**选择 IoT 物品**。选择您的设备，然后选择**完成**。

1. 添加必要的订阅 — 在 **Greengrass 组**页面上，选择**订阅**，然后选择**添加订阅**并输入信息，如下所示。  
**订阅**    
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/freertos/latest/userguide/gg-demov1.html)

   其中“来源”是在注册主板时为 Amazon IoT 控制台中创建的 Amazon IoT 事务提供的名称，在本示例中为“TIGG1”。

1. 启动 Amazon IoT Greengrass 组的部署，并确保该部署成功。现在，您应能够成功运行 Amazon IoT Greengrass 发现演示。