

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

# AWS 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 

執行 FreeRTOS 的 AWS IoT Greengrass 探索示範之前，您需要設定 AWS AWS IoT Greengrass和 AWS IoT。若要設定 AWS，請遵循 中的指示[設定AWS您的帳戶和許可](freertos-prereqs.md#freertos-account-and-permissions)。若要設定 AWS IoT Greengrass，您需要建立 Greengrass 群組，然後新增 Greengrass 核心。如需設定的詳細資訊 AWS IoT Greengrass，請參閱 [入門 AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/latest/developerguide/gg-gs.html)。

設定 AWS 和 之後 AWS IoT Greengrass，您需要為 設定一些額外的許可 AWS IoT Greengrass。

**設定 AWS IoT Greengrass 許可**

1. 瀏覽至 [IAM 主控台](https://console.aws.amazon.com/iam/home)。

1. 請選擇導覽窗格上的 **Roles (角色)**，然後尋找並選擇 **Greengrass\$1ServiceRole (Greengrass\$1ServiceRole)**。

1. 選擇 **Attach policies (連接政策)**，選取 **AmazonS3FullAccess (AmazonS3FullAccess)** 和 **AWSIoTFullAccess (AWSIoTFullAccess)**，然後選擇 **Attach policy (連接政策)**。

1. 瀏覽至 [AWS IoT 主控台](https://console.aws.amazon.com/iotv2/)。

1. 在導覽窗格中，依序選擇 **Greengrass (Greengrass)**、**Groups (群組)**，然後選擇您先前建立的 Greengrass 群組。

1. 選擇 **Settings (設定)**，然後選擇 **Add role (新增角色)**。

1. 選擇 **Greengrass\$1ServiceRole (Greengrass\$1ServiceRole)**，然後選擇 **Save (儲存)**。

將電路板連接至 AWS IoT 並設定 FreeRTOS 示範。

1. [向 註冊您的 MCU 電路板AWS IoT](freertos-prereqs.md#get-started-freertos-thing)

   註冊主機板後，您需要建立新的 Greengrass 政策並將其與裝置憑證連接。

**建立新的 AWS IoT Greengrass 政策**

   1. 瀏覽至 [AWS IoT 主控台](https://console.aws.amazon.com/iotv2/)。

   1. 在導覽窗格中，選擇**安全**，選擇**政策**，然後選擇**建立**。

   1. 輸入可識別政策的名稱。

   1. 在 **Add statements (新增陳述式)** 區段中，選擇 **Advanced mode (進階模式)**。將下列 JSON 複製並貼入政策編輯器視窗：

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

      此政策會將 AWS IoT Greengrass 許可授予所有資源。

   1. 選擇 **Create** (建立)。

**將 AWS IoT Greengrass 政策連接至裝置的憑證**

   1. 瀏覽至 [AWS IoT 主控台](https://console.aws.amazon.com/iotv2/)。

   1. 在導覽窗格中，依序選擇 **Manage (管理)**、**Things (實物)**，然後選擇您之前建立的實物。

   1. 選擇 **Security (安全)**，然後選擇您裝置所連接的憑證。

   1. 依序選擇 **Policies (政策)**、**Actions (動作)**，然後選擇 **Attach Policy (連接政策)**。

   1. 尋找並選擇您之前建立的 Greengrass 政策，然後選擇 **Attach (連接)**。

1. [下載 FreeRTOS](freertos-prereqs.md#freertos-download)
**注意**  
如果您要從 FreeRTOS 主控台下載 FreeRTOS，請選擇**連線至 AWS IoT Greengrass*平台***，而非**連線至 AWS 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`。

設定 AWS IoT 和 之後 AWS IoT Greengrass，以及下載和設定 FreeRTOS 之後，您可以在裝置上建置、刷新和執行 Greengrass 示範。若要設定主機板的硬體和軟體開發環境，請依照[主機板特定的入門指南](getting-started-guides.md)中的指示操作。

Greengrass 示範會將一系列訊息發佈到 Greengrass 核心和 AWS IoT MQTT 用戶端。若要檢視 AWS IoT MQTT 用戶端中的訊息，請開啟[AWS IoT 主控台](https://console.aws.amazon.com/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 執行個體，然後選擇**描述**面板。尋找 **Public DNS (IPv4) (公有 DNS (IPv4))** 的項目，並記下該項目。

1. 尋找**安全群組**的項目，然後選擇連接至 Amazon EC2 執行個體的安全群組。

1. 選擇 **Inbound rules (傳入規則)** 標籤，然後選擇 **Edit inbound rules (編輯傳入規則)** 並新增下列規則。  
**傳入規則**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/gg-demov1.html)

1. 在 AWS IoT 主控台中選擇 **Greengrass**，然後選擇**群組**，然後選擇您先前建立的 Greengrass 群組。選擇**設定**。將 **Local connection detection (區域連線偵測)** 變更為 **Manually manage connection information (手動管理連線資訊)**。

1. 在導覽窗格中，選擇 **Cores (核心)**，然後選取群組核心。

1. 選擇 **Connectivity (連線)**，並確定您只有一個核心端點 (刪除所有其他端點)，而且它不是 IP 地址 (因為它可能會變更)。最好的選擇是使用您在第一個步驟中記下的公有 DNS (IPv4)。

1. 將您建立的 FreeRTOS IoT 實物新增到 GG 群組。

   1. 選擇返回箭頭以返回 AWS IoT Greengrass 群組頁面。在導覽窗格中，選擇 **Devices (裝置)**，然後選擇 **Add Device (新增裝置)**。

   1. 選擇 **Select an IoT Thing (選取 IoT 實物)**。選擇您的裝置，然後選擇 **Finish (完成)**。

1. 新增必要的訂閱 - 在 **Greengrass 群組**頁面中，選擇**訂閱**，然後選擇**新增訂閱**，然後輸入資訊，如下所示。  
**訂閱**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/freertos/latest/userguide/gg-demov1.html)

   其中「來源」是您在此處範例註冊電路板時，在 AWS IoT 主控台中建立之 AWS IoT 物件的名稱 -「TIGG1」。

1. 啟動 AWS IoT Greengrass 群組的部署，並確保部署成功。您現在應該能夠成功執行 AWS IoT Greengrass 探索示範。