AWS IoT Greengrass Version 1 於 2023 年 6 月 30 日進入延長使用壽命階段。如需詳細資訊,請參閱AWS IoT Greengrass V1 維護政策。在此日期之後, AWS IoT Greengrass V1 將不會發行提供功能、增強功能、錯誤修正或安全性修補程式的更新。在上運行的設備 AWS IoT Greengrass V1 不會中斷,並將繼續運行並連接到雲。我們強烈建議您移轉至 AWS IoT Greengrass Version 2,這會增加重要的新功能,並支援其他平台。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
測試通訊
-
確保您的計算機和 AWS IoT Greengrass 核心設備使用相同的網絡連接到互聯網。
-
在 AWS IoT Greengrass 核心裝置上,執行下列命令以尋找其 IP 位址。
hostname -I
-
在您的電腦,使用核心的 IP 地址執行以下命令。您可以使用 Ctrl + C 來停止 ping 命令。
ping
IP-address
類似下面的輸出表示計算機和 AWS IoT Greengrass 核心設備之間的通信成功(0% 的數據包丟失):
注意
如果您無法 ping 執行中的 EC2 執行個體 AWS IoT Greengrass,請確定執行個體的輸入安全群組規則允許 Echo 要求訊息的 ICMP 流量。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的將規則新增至安全群組。
在 Windows 主機電腦的 Windows 防火牆和進階安全應用程式中,您也可能需要啟用允許傳入回聲請求的內送規則 (例如,File and Printer Sharing (Echo Request - ICMPv4-In) (檔案和印表機共用 (回聲請求 - ICMPv4-In)) 或建立規則。
-
-
取得您的 AWS IoT 端點。
-
在AWS IoT 主控台
瀏覽窗格中,選擇 [設定]。 -
在 [裝置資料端點] 下,記下 [端點] 的值。您可以使用這個值,在以下步驟的命令中取代
AWS_IOT_ENDPOINT
預留位置。注意
請確定您的端點對應於您的憑證類型。
-
-
在您的電腦 (不是 AWS IoT Greengrass 核心裝置) 上,開啟兩個命令列
(終端機或命令提示字元) 視窗。其中一個視窗代表 HelloWorld _Publisher 用戶端裝置,另一個視窗代表 HelloWorld _Sublisher 用戶端裝置。 執行時,會
basicDiscovery.py
嘗試收集核心端點上 AWS IoT Greengrass 核心位置的相關資訊。此資訊會在發現用戶端裝置並成功連線至核心之後儲存。這讓未來的簡訊和操作可在本機執行 (而不需要網際網路連線)。注意
用於 MQTT 連線的用戶端 ID 必須與用戶端裝置的物件名稱相符。指
basicDiscovery.py
令碼會將 MQTT 連線的用戶端識別碼設定為您在執行指令碼時指定的物件名稱。從包含檔案的資料夾執行下列命令,以取得
basicDiscovery.py
詳細的指令碼使用資訊:python basicDiscovery.py --help
-
從 HelloWorld _Publisher 用戶端裝置視窗中,執行下列命令。
-
將
path-to-certs-folder
替換為包含憑證、金鑰和basicDiscovery.py
的資料夾路徑。 -
將
AWS_IOT_ENDPOINT
取代為您的端點。 -
將兩個
發CertId行者執行個體取代為 HelloWorld _Publisher
用戶端裝置檔案名稱中的憑證 ID。
cd
path-to-certs-folder
python basicDiscovery.py --endpointAWS_IOT_ENDPOINT
--rootCA AmazonRootCA1.pem --certpublisherCertId
-certificate.pem.crt --keypublisherCertId
-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 偵測。
-
-
從 HelloWorld _Sublisher 用戶端裝置視窗中,執行下列命令。
-
將
path-to-certs-folder
替換為包含憑證、金鑰和basicDiscovery.py
的資料夾路徑。 -
將
AWS_IOT_ENDPOINT
取代為您的端點。 -
將兩個
訂閱者CertId
執行個體取代為 HelloWorld _Subitor 用戶端裝置檔案名稱中的憑證識別碼。
cd
path-to-certs-folder
python basicDiscovery.py --endpointAWS_IOT_ENDPOINT
--rootCA AmazonRootCA1.pem --certsubscriberCertId
-certificate.pem.crt --keysubscriberCertId
-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}
的項目。 -
關閉視HelloWorld_Publisher窗,停止在視HelloWorld_Subscriber窗中累積訊息。
在企業網路上測試可能會影響對核心的連線。若要解決這項問題,您可以手動輸入端點。這可確保指basicDiscovery.py
令碼連線至 AWS IoT Greengrass 核心裝置的正確 IP 位址。
手動輸入端點
在 AWS IoT 主控台瀏覽窗格的 [管理] 下,展開 [Greengrass 裝置],然後選擇 [群組 (V1)]。
-
在綠色群組下,選擇您的群組。
-
設定核心以手動管理 MQTT 代理程式端點。請執行下列操作:
-
在群組設定頁面上,選擇 Lambda 函數索引標籤。
-
在系統 Lambda 函數下,選擇 IP 偵測器,然後選擇編輯。
-
在 [編輯 IP 偵測器設定] 中,選擇 [手動管理 MQTT 代理程式端點],然後選擇 [儲存]。
-
-
輸入核心的 MQTT 代理程式端點。請執行下列操作:
-
在「概觀」下,選擇 Greengr ass 心」。
-
在「MQTT 代理程式端點」下,選擇「管理端點」。
-
選擇 [新增端點],並確定您只有一個端點值。此值必須是 AWS IoT Greengrass 核心裝置連接埠 8883 的 IP 位址端點 (例如
192.168.1.4
)。 -
選擇更新。
-