

支援終止通知：2026 年 10 月 7 日 AWS 將停止 的支援 AWS IoT Greengrass Version 1。2026 年 10 月 7 日之後，您將無法再存取 AWS IoT Greengrass V1 資源。如需詳細資訊，請造訪[從 遷移 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)。

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

# 測試通訊
<a name="test-comms"></a>

1. <a name="ping-device"></a>請確定您的電腦和 AWS IoT Greengrass 核心裝置已使用相同的網路連線至網際網路。

   1. 在 AWS IoT Greengrass 核心裝置上，執行下列命令來尋找其 IP 地址。

      ```
      hostname -I
      ```

   1. 在您的電腦，使用核心的 IP 地址執行以下命令。您可以使用 Ctrl \$1 C 來停止 **ping** 命令。

      ```
      ping IP-address
      ```

      類似以下的輸出表示電腦與 AWS IoT Greengrass 核心裝置之間的通訊成功 （封包遺失 0%)：  
![\[ping 命令成功輸出。\]](http://docs.aws.amazon.com/zh_tw/greengrass/v1/developerguide/images/gg-get-started-075.5.png)
**注意**  
如果您無法 ping 執行中的 EC2 執行個體 AWS IoT Greengrass，請確定執行個體的傳入安全群組規則允許 [Echo 請求](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-ping)訊息的 ICMP 流量。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[將規則新增至安全群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#adding-security-group-rule)。  
在 Windows 主機電腦的 Windows 防火牆和進階安全應用程式中，您也可能需要啟用允許傳入回聲請求的內送規則 (例如，**File and Printer Sharing (Echo Request - ICMPv4-In) (檔案和印表機共用 (回聲請求 - ICMPv4-In)**) 或建立規則。

1. 取得您的 AWS IoT 端點。

   1. <a name="iot-settings"></a>從[AWS IoT 主控台](https://console.aws.amazon.com/iot/)導覽窗格中，選擇**設定**。

   1. <a name="iot-settings-endpoint"></a>在**裝置資料端點**下，記下**端點**的值。您可以使用這個值，在以下步驟的命令中取代 *AWS\$1IOT\$1ENDPOINT* 預留位置。
**注意**  
請確定您的[端點對應至您的憑證類型](gg-core.md#certificate-endpoints)。

1. 在您的電腦 （而非 AWS IoT Greengrass 核心裝置） 上，開啟兩個[命令列 ](https://en.wikipedia.org/wiki/Command-line_interface)（終端或命令提示） 視窗。一個視窗代表 HelloWorld\$1Publisher 用戶端裝置，另一個視窗代表 HelloWorld\$1Subscriber 用戶端裝置。

   執行時， 會`basicDiscovery.py`嘗試收集 AWS IoT Greengrass 核心端點位置的相關資訊。此資訊會在用戶端裝置發現並成功連接到核心後儲存。這讓未來的簡訊和操作可在本機執行 (而不需要網際網路連線)。
**注意**  
用於 MQTT 連線的用戶端 IDs 必須符合用戶端裝置的物件名稱。`basicDiscovery.py` 指令碼會將 MQTT 連線的用戶端 ID 設定為您在執行指令碼時指定的物件名稱。  
從包含 `basicDiscovery.py` 檔案的資料夾執行下列命令，以取得詳細的指令碼使用資訊：  

   ```
   python basicDiscovery.py --help
   ```

1. 從 HelloWorld\$1Publisher 用戶端裝置視窗中，執行下列命令。
   + 將 *path-to-certs-folder* 替換為包含憑證、金鑰和 `basicDiscovery.py` 的資料夾路徑。
   + 將 *AWS\$1IOT\$1ENDPOINT* 取代為您的端點。
   + 將兩個 *publisherCertId* 執行個體取代為 HelloWorld\$1Publisher 用戶端裝置檔案名稱中的憑證 ID。

   ```
   cd path-to-certs-folder
   python basicDiscovery.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert publisherCertId-certificate.pem.crt --key publisherCertId-private.pem.key --thingName HelloWorld_Publisher --topic 'hello/world/pubsub' --mode publish --message 'Hello, World! Sent from HelloWorld_Publisher'
   ```

   您應該會看到類似以下的輸出，其中包含像是 `Published topic 'hello/world/pubsub': {"message": "Hello, World! Sent from HelloWorld_Publisher", "sequence": 1}` 的項目。
**注意**  
如果指令碼傳回 `error: unrecognized arguments` 訊息，會將 `--topic` 和 `--message` 參數的單引號變更為雙引號並再次執行命令。  
若要排除連線問題，您可以嘗試使用[手動 IP 偵測](#corp-network-manual-detection)。  
![\[發佈者輸出的螢幕擷取畫面。\]](http://docs.aws.amazon.com/zh_tw/greengrass/v1/developerguide/images/gg-get-started-076.png)

1. 從 HelloWorld\$1Subscriber 用戶端裝置視窗中，執行下列命令。
   + 將 *path-to-certs-folder* 替換為包含憑證、金鑰和 `basicDiscovery.py` 的資料夾路徑。
   + 將 *AWS\$1IOT\$1ENDPOINT* 取代為您的端點。
   + 將兩個 *subscriberCertId* 執行個體取代為 HelloWorld\$1Subscriber 用戶端裝置檔案名稱中的憑證 ID。

   ```
   cd path-to-certs-folder
   python basicDiscovery.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert subscriberCertId-certificate.pem.crt --key subscriberCertId-private.pem.key --thingName HelloWorld_Subscriber --topic 'hello/world/pubsub' --mode subscribe
   ```

   您應該會看到類似以下的輸出，其中包含像是 `Received message on topic hello/world/pubsub: {"message": "Hello, World! Sent from HelloWorld_Publisher", "sequence": 1}` 的項目。  
![\[訂閱者輸出的螢幕擷取畫面。\]](http://docs.aws.amazon.com/zh_tw/greengrass/v1/developerguide/images/gg-get-started-077.png)

關閉HelloWorld\$1Publisher視窗以停止訊息在HelloWorld\$1Subscriber視窗中累積。

在企業網路上測試可能會影響對核心的連線。若要解決這項問題，您可以手動輸入端點。這可確保`basicDiscovery.py`指令碼連接到 AWS IoT Greengrass 核心裝置的正確 IP 地址。

**手動輸入端點**

1. <a name="console-gg-groups"></a>在 AWS IoT 主控台導覽窗格的**管理**下，展開 **Greengrass 裝置**，然後選擇**群組 (V1)**。

1. 在 **Greengrass 群組**下，選擇您的群組。

1. 設定核心以手動管理 MQTT 代理程式端點。請執行下列操作：

   1. 在群組組態頁面上，選擇 **Lambda 函數**索引標籤。

   1. 在 **System Lambda 函數**下，選擇 **IP 偵測器**，然後選擇**編輯**。

   1. 在**編輯 IP 偵測器設定**中，選擇**手動管理 MQTT 代理程式端點**，然後選擇**儲存**。

1. 輸入核心的 MQTT 代理程式端點。請執行下列操作：

   1. 在**概觀**下，選擇 **Greengrass 核心**。

   1. 在 **MQTT 代理程式端點**下，選擇**管理端點**。

   1. 選擇**新增端點**，並確定您只有一個端點值。此值必須是 AWS IoT Greengrass 核心裝置連接埠 8883 的 IP 地址端點 （例如 `192.168.1.4`)。

   1. 選擇**更新**。