

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

# 首要步驟
<a name="freertos-prereqs"></a>

**重要**  <a name="deprecation-message-general"></a>
此頁面是指已棄用的 Amazon-FreeRTOS 儲存庫。我們建議您在建立新專案時從[這裡開始](freertos-getting-started-modular.md)。如果您已經有以現在已棄用的 Amazon-FreeRTOS 儲存庫為基礎的現有 FreeRTOS 專案，請參閱 [Amazon-FreeRTOS Github 儲存庫遷移指南](github-repo-migration.md)。 FreeRTOS 

若要開始使用 FreeRTOS AWS IoT，您必須擁有 AWS 帳戶、具有存取許可的使用者， AWS IoT 以及 FreeRTOS 雲端服務。您還必須下載 FreeRTOS 並設定主機板的 FreeRTOS 示範專案來使用 AWS IoT。以下章節將逐步引導您完成這些要求。

**注意**  
如果您使用的是 Espressif ESP32-DevKitC、ESP-WROVER-KIT 或 ESP32-WROOM-32SE，請略過這些步驟並前往[Espressif ESP32-DevKitC 和 ESP-WROVER-KIT 入門](getting_started_espressif.md)。
如果您使用的是 Nordic nRF52840-DK，請略過這些步驟並前往[Nordic nRF52840-DK 入門](getting_started_nordic.md)。

1. [設定 AWS 您的帳戶和許可](#freertos-account-and-permissions) 

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

1. [下載 FreeRTOS](#freertos-download)

1. [設定 FreeRTOS 示範](#freertos-configure)

## 設定 AWS 您的帳戶和許可
<a name="freertos-account-and-permissions"></a>

### 註冊 AWS 帳戶
<a name="sign-up-for-aws"></a>

如果您沒有 AWS 帳戶，請完成下列步驟來建立一個。

**註冊 AWS 帳戶**

1. 開啟 [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup)。

1. 請遵循線上指示進行。

   部分註冊程序需接收來電或簡訊，並在電話鍵盤輸入驗證碼。

   當您註冊 時 AWS 帳戶，*AWS 帳戶根使用者*會建立 。根使用者有權存取該帳戶中的所有 AWS 服務 和資源。作為安全最佳實務，請將管理存取權指派給使用者，並且僅使用根使用者來執行[需要根使用者存取權的任務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

AWS 會在註冊程序完成後傳送確認電子郵件給您。您可以隨時登錄 [https://aws.amazon.com/](https://aws.amazon.com/) 並選擇**我的帳戶**，以檢視您目前的帳戶活動並管理帳戶。

### 建立具有管理存取權的使用者
<a name="create-an-admin"></a>

註冊 後 AWS 帳戶，請保護 AWS 帳戶根使用者、啟用 AWS IAM Identity Center和建立管理使用者，以免將根使用者用於日常任務。

**保護您的 AWS 帳戶根使用者**

1.  選擇**根使用者**並輸入 AWS 帳戶 您的電子郵件地址，以帳戶擁有者[AWS 管理主控台](https://console.aws.amazon.com/)身分登入 。在下一頁中，輸入您的密碼。

   如需使用根使用者登入的說明，請參閱 *AWS 登入 使用者指南*中的[以根使用者身分登入](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)。

1. 若要在您的根使用者帳戶上啟用多重要素驗證 (MFA)。

   如需說明，請參閱《*IAM 使用者指南*》中的[為您的 AWS 帳戶 根使用者 （主控台） 啟用虛擬 MFA 裝置](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)。

**建立具有管理存取權的使用者**

1. 啟用 IAM Identity Center。

   如需指示，請參閱《AWS IAM Identity Center 使用者指南》**中的[啟用 AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)。

1. 在 IAM Identity Center 中，將管理存取權授予使用者。

   如需使用 IAM Identity Center 目錄 做為身分來源的教學課程，請參閱*AWS IAM Identity Center 《 使用者指南*》中的[使用預設值設定使用者存取 IAM Identity Center 目錄](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)。

**以具有管理存取權的使用者身分登入**
+ 若要使用您的 IAM Identity Center 使用者簽署，請使用建立 IAM Identity Center 使用者時傳送至您電子郵件地址的簽署 URL。

  如需使用 IAM Identity Center 使用者登入的說明，請參閱*AWS 登入 《 使用者指南*》中的[登入 AWS 存取入口網站](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)。

**指派存取權給其他使用者**

1. 在 IAM Identity Center 中，建立一個許可集來遵循套用最低權限的最佳實務。

   如需指示，請參閱《AWS IAM Identity Center 使用者指南》**中的[建立許可集](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)。

1. 將使用者指派至群組，然後對該群組指派單一登入存取權。

   如需指示，請參閱《AWS IAM Identity Center 使用者指南》**中的[新增群組](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)。

若要提供存取權，請新增權限至您的使用者、群組或角色：
+ 中的使用者和群組 AWS IAM Identity Center：

  建立權限合集。請按照《*AWS IAM Identity Center 使用者指南*》中的[建立權限合集](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)說明進行操作。
+ 透過身分提供者在 IAM 中管理的使用者：

  建立聯合身分的角色。遵循《*IAM 使用者指南*》的[為第三方身分提供者 (聯合) 建立角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)中的指示。
+ IAM 使用者：
  + 建立您的使用者可擔任的角色。請按照《*IAM 使用者指南*》的[為 IAM 使用者建立角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)中的指示。
  + (不建議) 將政策直接附加至使用者，或將使用者新增至使用者群組。請遵循《*IAM 使用者指南*》的[新增許可到使用者 (主控台)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) 中的指示。

## 向 註冊您的 MCU 電路板 AWS IoT
<a name="get-started-freertos-thing"></a>

您的電路板必須向 註冊 AWS IoT ，才能與 AWS 雲端通訊。若要向 註冊您的電路板 AWS IoT，您必須擁有：

** AWS IoT 政策**  
 AWS IoT 政策會授予您的裝置存取 AWS IoT 資源的許可。它存放在 AWS 雲端。

** AWS IoT 實物**  
物件 AWS IoT 可讓您在 中管理裝置 AWS IoT。它存放在 AWS 雲端。

**私密金鑰和 X.509 憑證**  
私有金鑰和憑證可讓您的裝置進行身分驗證 AWS IoT。

若要註冊您的電路板，請遵循下列程序。

**建立 AWS IoT 政策**

1. 若要建立 IAM 政策，您必須知道您 AWS 的區域和 AWS 帳戶號碼。

   若要尋找 AWS 您的帳戶號碼，請開啟 [AWS 管理主控台](https://console.aws.amazon.com/)，找到並展開右上角您帳戶名稱下方的選單，然後選擇**我的帳戶**。您的帳戶 ID 會顯示在 **Account Settings (帳戶設定)** 下方。

   若要尋找 AWS 帳戶的 AWS 區域，請使用 AWS Command Line Interface。若要安裝 AWS CLI，請遵循 [AWS Command Line Interface 使用者指南](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)中的指示。安裝 之後 AWS CLI，請開啟命令提示視窗，然後輸入下列命令：

   ```
   aws iot describe-endpoint --endpoint-type=iot:Data-ATS
   ```

   輸出應如下所示：

   ```
   {
       "endpointAddress": "xxxxxxxxxxxxxx-ats.iot.us-west-2.amazonaws.com"
   }
   ```

   在此範例中，區域為 `us-west-2`。
**注意**  
我們建議使用 ATS 端點，如範例所示。

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

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

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

1. 在 **Add statements (新增陳述式)** 區段中，選擇 **Advanced mode (進階模式)**。將下列 JSON 複製並貼入政策編輯器視窗。將 `{{aws-region}}` 和 取代`{{aws-account}}`為您的 AWS 區域和帳戶 ID。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "iot:Connect",
               "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:*"
           },
           {
               "Effect": "Allow",
               "Action": "iot:Publish",
               "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:*"
           },
           {
               "Effect": "Allow",
               "Action": "iot:Subscribe",
               "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:*"
           },
           {
               "Effect": "Allow",
               "Action": "iot:Receive",
               "Resource": "arn:aws:iot:{{us-east-1}}:{{123456789012}}:*"
           }
       ]
   }
   ```

------

   此政策可授予下列許可：  
**`iot:Connect`**  
授予您的裝置許可，以使用任何用戶端 ID 連線至 AWS IoT 訊息中介裝置。  
**`iot:Publish`**  
授予裝置能發佈任何 MQTT 主題之 MQTT 訊息的許可。  
**`iot:Subscribe`**  
授予裝置能訂閱任何 MQTT 主題篩選條件的許可。  
**`iot:Receive`**  
授予裝置能接收 AWS IoT 訊息中介裝置中任何 MQTT 主題訊息的許可。

1. 選擇**建立**。

**為裝置建立 IoT 實物、私有金鑰和憑證**

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

1. 在導覽窗格中，選擇 **Manage (管理)**，然後選擇 **Things (實物)**。

1. 如果您的帳戶中尚未註冊任何 IoT 實物，則會顯示 **You don't have any things yet (尚無任何實物)** 頁面。如果您看到此頁面，請選擇 **Register a thing (註冊實物)**。否則，請選擇 **Create** (建立)。

1. 在**建立 AWS IoT 物件**頁面上，選擇**建立單一物件**。

1. 在 **Add your device to the thing registry (將您的裝置新增至物件登錄檔)** 頁面中，輸入物件的名稱，然後選擇 **Next (下一步)**。

1. 在 **Add a certificate for your thing (新增物件的憑證)** 頁面中，選擇 **One-click certificate creation (按一下建立憑證)** 下方的 **Create certificate (建立憑證)**。

1. 選擇各個項目的 **Download (下載)** 連結，下載您的私有金鑰和憑證。

1. 選擇 **Activate (啟用)** 以啟用您的憑證。需先啟用憑證才可開始使用。

1. 選擇**連接政策**，將政策連接至您的憑證，以授予裝置對 AWS IoT 操作的存取權。

1. 選擇您剛建立的政策，然後選擇 **Register thing (註冊實物)**。

向 註冊電路板後 AWS IoT，您可以繼續 [下載 FreeRTOS](#freertos-download)。

## 下載 FreeRTOS
<a name="freertos-download"></a>

您可以從 FreeRTOS [ GitHub 儲存庫下載 FreeRTOS](https://github.com/freertos/freertos)。

下載 FreeRTOS 之後，您可以繼續 [設定 FreeRTOS 示範](#freertos-configure)。

## 設定 FreeRTOS 示範
<a name="freertos-configure"></a>

您必須先編輯 FreeRTOS 目錄中的一些組態檔案，才能在電路板上編譯和執行任何示範。

**設定您的 AWS IoT 端點**

您必須將 AWS IoT 端點提供給 FreeRTOS，以便在電路板上執行的應用程式才能將請求傳送至正確的端點。

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

1. 在左側的導覽窗格中，選擇**設定**。

   您的 AWS IoT 端點會顯示在 **裝置資料端點**中。它看起來應該會像這樣：`{{1234567890123}}-ats.iot.{{us-east-1}}.amazonaws.com`。記下此端點。

1. 在導覽窗格中，選擇 **Manage (管理)**，然後選擇 **Things (實物)**。

   您的裝置應該有 AWS IoT 物件名稱。記下此名稱。

1. 打開 `demos/include/aws_clientcredential.h`。

1. 指定以下常數的值：
   + `#define clientcredentialMQTT_BROKER_ENDPOINT "{{Your AWS IoT endpoint}}";`
   + `#define clientcredentialIOT_THING_NAME "{{The AWS IoT thing name of your board}}"`

**設定您的 Wi-Fi**

如果您的電路板透過 Wi-Fi 連線連線至網際網路，您必須向 FreeRTOS 提供 Wi-Fi 登入資料，才能連線至網路。如果您的主機板不支援 Wi-Fi，您可以略過這些步驟。

1. `demos/include/aws_clientcredential.h`.

1. 指定以下 `#define` 常數的值：
   + `#define clientcredentialWIFI_SSID "{{The SSID for your Wi-Fi network}}"`
   + `#define clientcredentialWIFI_PASSWORD "{{The password for your Wi-Fi network}}"`
   + `#define clientcredentialWIFI_SECURITY`{{Wi-Fi 網路的安全類型}}

     有效安全類型為：
     + `eWiFiSecurityOpen` (開放，不具安全性)
     + `eWiFiSecurityWEP` (WEP 安全性)
     + `eWiFiSecurityWPA` (WPA 安全性)
     + `eWiFiSecurityWPA2` (WPA2 安全性)

**格式化您的 AWS IoT 登入資料**

FreeRTOS 必須擁有與您的已註冊物件相關聯的 AWS IoT 憑證和私有金鑰及其許可政策，才能 AWS IoT 代表您的裝置成功與 通訊。
**注意**  
若要設定登入 AWS IoT 資料，您必須擁有註冊裝置時從 AWS IoT 主控台下載的私有金鑰和憑證。將裝置註冊為 AWS IoT 物件後，您可以從 AWS IoT 主控台擷取裝置憑證，但無法擷取私有金鑰。

FreeRTOS 是 C 語言專案，憑證和私有金鑰必須經過特殊格式，才能新增至專案。

1. 在瀏覽器視窗中，開啟 `tools/certificate_configuration/CertificateConfigurator.html`。

1. 在 **Certificate PEM file (憑證 PEM 檔案)** 下方，選擇您從 AWS IoT 主控台下載的 `{{ID}}-certificate.pem.crt`。

1. 在 **Private Key PEM file (私有金鑰 PEM 檔案)** 下方，選擇您從 AWS IoT 主控台下載的 `{{ID}}-private.pem.key`。

1. 選擇 **Generate and save aws\_clientcredential\_keys.h (產生並儲存 aws\_clientcredential\_keys.h)**，並將檔案儲存到 `demos/include` 中。這會覆寫目錄中現有的檔案。
**注意**  
將憑證和私有金鑰硬式編碼，僅作示範用途。生產層級應用程式必須將這些檔案存放在安全的位置。

設定 FreeRTOS 之後，您可以繼續參閱主機板入門指南，以設定平台的硬體及其軟體開發環境，然後在主機板上編譯並執行示範。如需主機板特定的指示，請參閱[主機板特定的入門指南](getting-started-guides.md)。入門教學中使用的示範應用程式是 coreMQTT 相互身分驗證示範，位於 `demos/coreMQTT/mqtt_demo_mutual_auth.c`。