

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

# 嘗試 AWS IoT Core 快速連線教學課程
<a name="iot-quick-start"></a>

在本教學課程中，您將建立第一個物件、將裝置連接至其中，並觀看它傳送 MQTT 訊息。

您可以預期在本教學課程上花費 15-20 分鐘。

本教學課程最適合想要快速開始使用 的人 AWS IoT ，以了解它在有限情況下的運作方式。如果您正在尋找讓您入門的範例，以便可以探索更多功能和服務，請嘗試 [在實作教學 AWS IoT Core 中探索](iot-gs-first-thing.md)。

在本教學課程中，您將在連線至 中*物件資源*的裝置上下載並執行軟體， AWS IoT Core 做為極小型 IoT 解決方案的一部分。裝置可以是 IoT 裝置 (例如 Raspberry Pi)，也可以是正在執行 Linux、OS 和 OSX，或 Windows 的電腦。如果您想要將長距離 WAN (LoRaWAN) 裝置連接到 AWS IoT，請參閱教學 [>將裝置和閘道連接到 AWS IoT Core for LoRaWAN](https://docs.aws.amazon.com/iot-wireless/latest/developerguide/lorawan-getting-started.html)。

如果您的裝置支援可以執行 [AWS IoT 主控台](https://console.aws.amazon.com//iot/home)的瀏覽器，我們建議您在該裝置上完成本教學課程。

**注意**  
如果您的裝置沒有相容的瀏覽器，請在電腦上遵循本教學課程。當程序要求您下載檔案時，請將它下載到您的電腦，然後使用安全複製 (SCP) 或類似程序，將下載的檔案傳輸到您的裝置。

本教學課程需要您的 IoT 裝置，才能在 AWS 帳戶裝置的資料端點上與 8443 埠通訊。若要測試其是否可以存取該連接，請嘗試 [測試與裝置資料端點的連線](iot-quick-start-test-connection.md) 中的操作程序。

## 步驟 1. 開始教學課程
<a name="iot-quick-start-connect"></a>

如果可能，請在您的裝置上完成此程序；否則，請準備好稍後在此程序中將檔案傳輸到您的裝置。

若要開始進行教學課程，請登入 [AWS IoT  主控台](https://console.aws.amazon.com//iot/home)。在 AWS IoT 主控台首頁的左側，選擇**連線**，然後選擇**連線一個裝置**。

![\[此 AWS IoT 主控台首頁說明如何連接一個裝置。\]](http://docs.aws.amazon.com/zh_tw/iot/latest/developerguide/images/aws-iot-quick-connect.PNG)


## 步驟 2. 建立物件
<a name="iot-quick-start-configure"></a>

1. 在 **Prepare your device** (準備您的裝置) 區段中，依照畫面上的指示，準備您的裝置以連線至 AWS IoT。  
![\[如何在 AWS IoT 主控台中準備裝置。\]](http://docs.aws.amazon.com/zh_tw/iot/latest/developerguide/images/aws-iot-learn-prepare-device.png)

1. 在 **Register and secure your device** (註冊並保護您的裝置) 區段中，選擇 **Create a new thing** (建立新的物件) 或者 **Choose an existing thing** (選擇現有物件)。在 **Thing name** (物件名稱) 欄位中，為您的物件輸入名稱。在這個範例中使用的物件名稱為 **TutorialTestThing**。
**重要**  
繼續之前，請仔細檢查您的物件名稱。  
建立物件之後，無法變更物件名稱。如果想要變更物件名稱，您必須建立物件名稱正確的新物件，然後刪除名稱不正確的物件。

   在 **Additional configurations** (其他組態) 區段中，使用列出的選用組態進一步自訂物件資源。

   為物件提供名稱並選取任何其他組態後，請選擇 **Next** (下一步)。  
![\[使用 AWS IoT 主控台註冊並保護您的裝置。\]](http://docs.aws.amazon.com/zh_tw/iot/latest/developerguide/images/aws-iot-learn-register-and-secure-your-device.png)

1. 在**選擇平台和軟體開發套件**區段中，選擇您要使用的平台和 AWS IoT 裝置軟體開發套件語言。這個範例會使用 Linux/OSX 平台和 Python SDK。請確保在目標裝置上安裝了 python3 和 pip3，再繼續下一步。
**注意**  
請務必在主控台頁面底部檢查所選 SDK 所需的必要軟體清單。  
您必須在目標電腦上安裝必要的軟體，然後才能繼續下一個步驟。

   在您選擇平台和裝置 SDK 語言之後，請選擇 **Next** (下一步)。  
![\[使用 AWS IoT 主控台選擇平台和 SDK。\]](http://docs.aws.amazon.com/zh_tw/iot/latest/developerguide/images/aws-iot-learn-choose-platform-and-SDK.png)

## 步驟 3。將檔案下載到您的裝置
<a name="iot-quick-start-name"></a>

此頁面會在 AWS IoT 建立連線套件後出現，其中包含您的裝置所需的下列檔案和資源：
+ 物件的憑證檔案，用來驗證裝置
+ 政策資源，用來授權您的物件可與 AWS IoT互動
+ 下載 AWS 裝置 SDK 並在裝置上執行範例程式的指令碼

1. 當您準備好繼續時，請選擇 **Download connection kit for** (下載連線套件) 按鈕，為您先前選擇的平台下載適用的連線套件。  
![\[這是 AWS IoT 主控台下載憑證檔案的頁面。\]](http://docs.aws.amazon.com/zh_tw/iot/latest/developerguide/images/aws-iot-learn-download-connection-kit_1.png)

1. 如果您是在裝置上執行此程序，請將連線套件檔案儲存到可以從中執行命令列命令的目錄。

   如果您不是在裝置上執行此程序，請將連線套件檔案儲存至本機目錄，然後將檔案傳輸至您的裝置。

1. 在 **Unzip connection kit on your device** (解壓縮裝置上的連線套件) 區段中，輸入連線套件檔案所在目錄中的 **unzip connect\$1device\$1package.zip**。

   如果您是使用 Windows PowerShell 視窗，而且 **unzip** 命令無法運作，請將 **unzip** 取代為 **expand-archive**，然後再次嘗試命令列。

1. 在裝置上具有連線套件檔案之後，請選擇 **Next** (下一步) 來繼續教學課程。  
![\[AWS IoT 連線套件下載後的主控台憑證檔案下載頁面。\]](http://docs.aws.amazon.com/zh_tw/iot/latest/developerguide/images/aws-iot-learn-download-connection-kit_2.png)

## 步驟 4. 執行範例
<a name="iot-quick-start-install-run"></a>

您可以在裝置上的終端機或命令視窗中執行此程序，同時遵循主控台中顯示的指示。您在主控台中看見的命令是適用於 [步驟 2. 建立物件](#iot-quick-start-configure) 中所選作業系統的命令。這裡顯示的命令適用於 Linux/OSX 作業系統。

1. 在您裝置上的終端機或命令視窗中，在具有連線套件檔案的 目錄中，執行 AWS IoT 主控台中顯示的步驟。  
![\[AWS IoT 主控台快速入門安裝和執行頁面。\]](http://docs.aws.amazon.com/zh_tw/iot/latest/developerguide/images/aws-iot-learn-run-connection-kit.png)

1. 在裝置的終端機或命令視窗中，於您輸入來自主控台中 **Step 2** (步驟 2) 的命令之後，您應該會看到如下的輸出。此輸出來自程式傳送到 AWS IoT Core，然後從中收回的訊息。  
![\[AWS IoT 主控台快速入門範例程式輸出。\]](http://docs.aws.amazon.com/zh_tw/iot/latest/developerguide/images/aws-iot-learn-connect-console-output-python_updated.png)

   當範例程式正在執行時，也會出現測試訊息 `Hello World!`。測試訊息會顯示在終端機或裝置上的命令視窗中。
**注意**  
如需有關主題訂閱和發佈的詳細資訊，請參閱所選 SDK 的範例程式碼。

1. 您可以在此程序的主控台中重複來自 **Step 2** (步驟 2) 的命令，以再次執行範例程式。

1. （選用） 如果您想要在[AWS IoT 主控台](https://console.aws.amazon.com//iot/home)中查看來自 IoT 用戶端的訊息，請在 AWS IoT 主控台的測試頁面上開啟 [MQTT 測試用戶端](https://console.aws.amazon.com//iot/home#/test)。 ****如果您選擇 Python SDK，則在 **MQTT test client** (MQTT 測試用戶端) 的 **Topic filter** (主題篩選條件) 中，輸入主題，例如 **sdk/test/*python*** 以訂閱裝置上的訊息。主題篩選條件區分大小寫，且取決於 **Step 1** (步驟 1) 中所選 SDK 的程式設計語言。如需有關主題訂閱和發佈的詳細資訊，請參閱所選 SDK 的程式碼範例。

1. 訂閱測試主題後，請在您的裝置上執行 **./start.sh**。如需詳細資訊，請參閱[使用 MQTT 用戶端檢視 AWS IoT MQTT 訊息](view-mqtt-messages.md)。

   執行 **./start.sh** 之後，訊息會顯示在 MQTT 用戶端中，內容與下列相似：

   ```
   {
     "message": "Hello World!" [1]
   }
   ```

   每次收到新的 `Hello World!` 訊息，以 `[]` 括住的 `sequence` 號碼就會增加 1，並在您結束程式時停止。

1. 若要完成教學課程並查看摘要，請在 AWS IoT 主控台中選擇**繼續**。  
![\[AWS IoT 主控台快速入門完成頁面。\]](http://docs.aws.amazon.com/zh_tw/iot/latest/developerguide/images/aws-iot-learn-connect-complete_updated1.png)

1. 現在會顯示 AWS IoT 快速連線教學課程的摘要。  
![\[AWS IoT 主控台快速入門摘要頁面。\]](http://docs.aws.amazon.com/zh_tw/iot/latest/developerguide/images/aws-iot-learn-device-is-connected.png)

## 步驟 5. 深入探索
<a name="iot-quick-start-test"></a>

以下是在您完成快速入門後要 AWS IoT 進一步探索的一些想法。
+ 

**[在 MQTT 測試用戶端中檢視 MQTT 訊息](https://console.aws.amazon.com/iot/home#/test)**  
從 [AWS IoT 主控台中](https://console.aws.amazon.com//iot/home)，您可以在 AWS IoT 主控台的 **Test (測試)** 頁面上開啟 [MQTT 用戶端](https://console.aws.amazon.com//iot/home#/test)。在 **MQTT test client** (MQTT 測試用戶端) 中，訂閱 **\$1**，然後在裝置上執行程式 **./start.sh**，如前一個步驟所述。如需詳細資訊，請參閱[使用 MQTT 用戶端檢視 AWS IoT MQTT 訊息](view-mqtt-messages.md)。
+ 

**在您的裝置上，透過 [Device Advisor](https://docs.aws.amazon.com//iot/latest/developerguide/device-advisor.html) 執行測試**  
使用 Device Advisor 測試您的裝置是否可以安全可靠地連線至 並與之互動 AWS IoT。
+ 

**[互動式教學課程](interactive-demo.md)**  
若要開始互動式教學課程，請從 AWS IoT 主控台的**學習**頁面，在**查看運作方式 AWS IoT **圖磚中，選擇**開始教學課程**。
+ 

**[準備好探索其他教學課程](iot-gs-first-thing.md)**  
此快速入門僅提供 的範例 AWS IoT。如果您想要 AWS IoT 進一步探索並了解讓它成為強大 IoT 解決方案平台的功能，請透過 開始準備您的開發平台[在實作教學 AWS IoT Core 中探索](iot-gs-first-thing.md)。

# 測試與裝置資料端點的連線
<a name="iot-quick-start-test-connection"></a>

本主題會描述如何測試裝置與您帳戶的*裝置資料端點*連線，也就是您的 IoT 裝置用於連接到 AWS IoT的端點。

在要測試的裝置上執行這些程序，或使用連結到要測試裝置的 SSH 終端階段作業。

**Topics**
+ [尋找您的裝置資料端點](#iot-quick-start-test-connection-endpoint)
+ [快速測試連線](#iot-quick-start-test-connection-ping)
+ [取得應用程式，以測試與裝置資料端點和通訊埠的連線](#iot-quick-start-test-connection-app)
+ [若要測試與裝置資料端點和通訊埠的連線](#iot-quick-start-test-connection-test)

## 尋找您的裝置資料端點
<a name="iot-quick-start-test-connection-endpoint"></a>

此程序說明如何在 [AWS IoT 主控台](https://console.aws.amazon.com//iot/home)中尋找您的裝置資料端點，以測試 IoT 裝置的連線。

**若要尋找您的裝置資料端點**

1. 在 [AWS IoT 主控台](https://console.aws.amazon.com//iot/home)的 **Connect** 區段中，前往**網域組態**。

1. 在**網域組態**頁面中，前往**網域組態**容器，然後複製**網域名稱**。您的端點值對 是唯一的 AWS 帳戶 ，類似於此範例：`a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com`。

1. 

   儲存您的裝置資料端點，以便在下列程序中使用。

## 快速測試連線
<a name="iot-quick-start-test-connection-ping"></a>

此程序會測試與裝置資料端點的一般連線，但不測試您的裝置會使用的特定通訊埠。此測試會使用一般程式，通常足以知道您的裝置是否可以連線到 AWS IoT。

如果要測試與裝置將使用的特定通訊埠連線，請跳過此程序並繼續 [取得應用程式，以測試與裝置資料端點和通訊埠的連線](#iot-quick-start-test-connection-app)。

**若要快速測試裝置資料端點**

1. 在裝置上的終端或命令列視窗中，將範例裝置資料端點 (`a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com`) 替換為帳戶的裝置資料端點，然後輸入此命令。

------
#### [ Linux ]

   ```
   ping -c 5 a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com
   ```

------
#### [ Windows ]

   ```
   ping -n 5 a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com
   ```

------

1. 如果 `ping` 顯示類似於以下內容的輸出，則其已成功連結到您的裝置資料端點。雖然它不 AWS IoT 直接與 通訊，但它確實找到 伺服器，並且可能可以透過此端點 AWS IoT 使用 。

   ```
   PING a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com (xx.xx.xxx.xxx) 56(84) bytes of data.
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=1 ttl=231 time=127 ms
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=2 ttl=231 time=127 ms
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=3 ttl=231 time=127 ms
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=4 ttl=231 time=127 ms
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=5 ttl=231 time=127 ms
   ```

   如果您對此結果滿意，可以在此處停止測試。

   如果要測試與 AWS IoT所使用之特定通訊埠的連線，請繼續進行 [取得應用程式，以測試與裝置資料端點和通訊埠的連線](#iot-quick-start-test-connection-app)。

1. 如果 `ping` 沒有傳回成功的輸出，請檢查終端值，以確保您具有正確的端點，並檢查裝置與網際網路的連線。

## 取得應用程式，以測試與裝置資料端點和通訊埠的連線
<a name="iot-quick-start-test-connection-app"></a>

更徹底的連線測試可以通過使用 `nmap` 來執行。此程序會進行測試，以檢查 `nmap` 是否已安裝在您的裝置上。

**若要檢查裝置上的 `nmap`**

1. 在要測試的裝置上的終端或命令行列視窗中，輸入此命令列，以查看 `nmap` 是否已安裝。

   ```
   nmap --version
   ```

1. 如果您看到類似下列的輸出，代表 `nmap` 已安裝，且您可以繼續 [若要測試與裝置資料端點和通訊埠的連線](#iot-quick-start-test-connection-test)。

   ```
   Nmap version 6.40 ( http://nmap.org )
   Platform: x86_64-koji-linux-gnu
   Compiled with: nmap-liblua-5.2.2 openssl-1.0.2k libpcre-8.32 libpcap-1.5.3 nmap-libdnet-1.12 ipv6
   Compiled without:
   Available nsock engines: epoll poll select
   ```

1. 如果您沒有看到類似上述步驟中顯示的回覆，您必須在裝置上安裝 `nmap`。選擇適用於裝置作業系統的程序。

------
#### [ Linux ]

此程序需要您在電腦上安裝軟體的權限。

**若要在 Linux 電腦上安裝 nmap**

1. 在裝置上的終端或命令列視窗中，輸入與其執行的 Linux 版本相對應的命令。

   1. Debian 或 Ubunt：

      ```
      sudo apt install nmap
      ```

   1. CentOS 或 RHEL：

      ```
      sudo yum install nmap
      ```

1. 使用以下命令測試安裝：

   ```
   nmap --version
   ```

1. 如果您看到類似下列的輸出，代表已安裝 `nmap`，且您可以繼續 [若要測試與裝置資料端點和通訊埠的連線](#iot-quick-start-test-connection-test)。

   ```
   Nmap version 6.40 ( http://nmap.org )
   Platform: x86_64-koji-linux-gnu
   Compiled with: nmap-liblua-5.2.2 openssl-1.0.2k libpcre-8.32 libpcap-1.5.3 nmap-libdnet-1.12 ipv6
   Compiled without:
   Available nsock engines: epoll poll select
   ```

------
#### [ macOS ]

此程序需要您在電腦上安裝軟體的權限。

**在 macOS 電腦上安裝 nmap**

1. 在瀏覽器中，開啟 [https://nmap.org/download\$1macosx](https://nmap.org/download#macosx)，並下載**最新穩定的**安裝程式。

   出現提示時，請選取 **Open with DiskImageInstaller** (透過 DiskImageInstaller 開啟)。

1. 在安裝視窗中，將套件移動到 **Applications** (應用程式) 資料夾。

1. 在 **Finder** 中尋找 `nmap-xxxx-mpkg` 套件在 **Applications (應用程式)** 資料夾中的位置。在套件上 **Ctrl-click**，並選取 **Open (開啟)** 以開啟套件。

1. 檢閱安全對話方塊。如果您已準備好安裝 **nmap**，請選擇 **Open** (開啟) 以安裝 **nmap**。

1. 在 **Terminal** 中，使用此命令測試安裝。

   ```
   nmap --version
   ```

1. 如果您看到類似下列的輸出，代表已安裝 `nmap`，且您可以繼續 [若要測試與裝置資料端點和通訊埠的連線](#iot-quick-start-test-connection-test)。

   ```
   Nmap version 7.92 ( https://nmap.org )
   Platform: x86_64-apple-darwin17.7.0
   Compiled with: nmap-liblua-5.3.5 openssl-1.1.1k nmap-libssh2-1.9.0 libz-1.2.11 nmap-libpcre-7.6 nmap-libpcap-1.9.1 nmap-libdnet-1.12 ipv6 Compiled without:
   Available nsock engines: kqueue poll select
   ```

------
#### [ Windows ]

此程序需要您在電腦上安裝軟體的權限。

**若要在 Windows 電腦上安裝 nmap**

1. 在瀏覽器中，開啟[https://nmap.org/download\$1windows](https://nmap.org/download#windows)並下載安裝程式的**最新穩定**版本。

   出現提示時，選擇 **Save file** (儲存檔案)。下載檔案後，從下載文件夾中將其打開。

1.  安裝檔案下載完成後，打開下載的 **nmap-xxxx-setup.exe** 以安裝應用程式。

1.  程式安裝時，接受預設設定。

   您不需要 Npcap 應用程式即可進行此測試。如果您不想安裝，可以取消選擇此選項。

1. 在 **Command** 中，使用此命令測試安裝。

   ```
   nmap --version
   ```

1. 如果您看到類似下列的輸出，代表已安裝 `nmap`，且您可以繼續 [若要測試與裝置資料端點和通訊埠的連線](#iot-quick-start-test-connection-test)。

   ```
   Nmap version 7.92 ( https://nmap.org )
   Platform: i686-pc-windows-windows
   Compiled with: nmap-liblua-5.3.5 openssl-1.1.1k nmap-libssh2-1.9.0 nmap-libz-1.2.11 nmap-libpcre-7.6 Npcap-1.50 nmap-libdnet-1.12 ipv6
   Compiled without:
   Available nsock engines: iocp poll select
   ```

------

## 若要測試與裝置資料端點和通訊埠的連線
<a name="iot-quick-start-test-connection-test"></a>

此程序會使用您選取的連接埠，測試 IoT 裝置與裝置資料端點的連線。

**若要測試裝置資料端點和通訊埠**

1. 在裝置上的終端或命令列視窗中，將範例裝置資料端點 (`a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com`) 替換為帳戶的裝置資料端點，然後輸入此命令。

   ```
   nmap -p 8443 a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com
   ```

1. 如果 `nmap` 會顯示類似下列內容的輸出，`nmap` 能夠在選定的通訊埠成功連結到您的裝置資料端點。

   ```
   Starting Nmap 7.92 ( https://nmap.org ) at 2022-02-18 16:23 Pacific Standard Time
   Nmap scan report for a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com (xx.xxx.147.160)
   Host is up (0.036s latency).
   Other addresses for a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com (not scanned): xx.xxx.134.144 xx.xxx.55.139 xx.xxx.110.235 xx.xxx.174.233 xx.xxx.74.65 xx.xxx.122.179 xx.xxx.127.126
   rDNS record for xx.xxx.147.160: ec2-EXAMPLE-160.eu-west-1.compute.amazonaws.com
   
   PORT     STATE SERVICE
   8443/tcp open  https-alt
   MAC Address: 00:11:22:33:44:55 (Cimsys)
   
   Nmap done: 1 IP address (1 host up) scanned in 0.91 seconds
   ```

1. 如果 `nmap` 沒有傳回成功的輸出，請檢查端點值，以確保您的端點正確，並檢查裝置與網際網路的連線。

您可以測試裝置資料端點上的其他通訊埠，例如 443 通訊埠 (主要的 HTTPS 通訊埠)，只要將步驟 1 (`8443`) 中使用的通訊埠替換為您要測試的通訊埠即可。