

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

# 首要步驟
<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 

若要開始使用 FreeRTOSAWS 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 "YourAWS IoTendpoint";`
   + `#define clientcredentialIOT_THING_NAME "TheAWS IoTthing 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\$1clientcredential\$1keys.h (產生並儲存 aws\$1clientcredential\$1keys.h)**，並將檔案儲存到 `demos/include` 中。這會覆寫目錄中現有的檔案。
**注意**  
將憑證和私有金鑰硬式編碼，僅作示範用途。生產層級應用程式必須將這些檔案存放在安全的位置。

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