AWS IoT Core 常見問答集

一般問題

AWS IoT Core 是一個受管的雲端平台,可讓連線裝置輕鬆安全地與雲端應用程式及其他裝置進行互動。AWS IoT Core 能夠支援數十億個裝置和數兆則訊息,並能可靠且安全地處理和路由這些訊息至 AWS 端點。有了 AWS IoT Core,您的應用程式可以隨時追蹤所有裝置並進行通訊,即便是在裝置未連線時。

裝置和 AWS 雲端的連線能力。 首先,使用 AWS IoT Core 可以用低延遲和低開銷的方式與連線裝置進行安全的通訊。您可以無限制地擴展通訊的裝置數量。AWS IoT Core 支援標準通訊協定 (目前支援 HTTP、MQTT、WebSocket 和 LoRaWAN)。而使用 TLS 可以很安全地進行通訊。

處理連線裝置傳送的資料。 其次,使用 AWS IoT Core 可以持續導入、篩選、轉換和路由來自連線裝置的資料串流。您可以根據資料採取動作,並路由該資料以進行進一步的處理和分析。

與連網裝置的應用程式互動。 最後,AWS IoT Core 可加速物聯網應用程式開發。它可為在雲端和行動裝置上執行的應用程式提供簡單易用的界面,以存取連線裝置傳送的資料及將資料和命令傳回裝置。

感應器、傳動器、內嵌裝置、智慧型設備和穿戴式裝置等連線裝置可透過 HTTPS、WebSocket 或安全 MQTT 或 LoRaWAN 連接至 AWS IoT Core。包含在 AWS IoT Core 內的是裝置閘道,可在連線裝置及雲端與行動應用程式之間進行安全、低延遲、低開銷以及雙向的通訊。

AWS IoT Core 還包含規則引擎,可不間斷地處理連線裝置傳來的資料。您可以設定規則來篩選和轉換資料,您也可以設定規則,透過 Lambda 將資料路由至其他 AWS 服務 (像是 DynamoDB、Kinesis、Lambda、SNS、SQS、CloudWatch、Elasticsearch Service 搭配內建 Kibana 整合) 及非 AWS 服務,以進行進一步的處理、儲存或分析。

您還可以使用登錄檔來登錄和追蹤連線到 AWS IoT Core 的裝置,或將來可能連線的裝置。AWS IoT Core 中的裝置影子可使用簡單的 REST API 讓雲端和行動應用程式查詢裝置傳送的資料以及將命令傳送到裝置,同時讓 AWS IoT Core 處理與裝置之間的基礎通訊。裝置陰影透過提供統一的界面給裝置來加速應用程式的開發,即使裝置使用可能與應用程式不相容的其中一種物聯網通訊和安全協定也適用。即使連線裝置受限於不穩定的網路連線、有限的頻寬、運算能力或電力,裝置陰影也能透過提供裝置永遠可用的界面來加速應用程式的開發。

與 AWS IoT Core 之間通訊很安全。服務需要所有用戶端 (連線裝置、伺服器應用程式、行動應用程式或人類使用者) 使用增強式身份驗證 (X.509 憑證、AWS IAM 登入資料或透過 AWS Cognito 進行的第三方身份驗證)。所有通訊都會經過加密。AWS IoT Core 還提供精確的授權來隔離和保護已驗證用戶端的通訊安全。

AWS 於 2015 年收購 2lemetry,其功能提供 MQTT 訊息代理程式和規則引擎等 AWS IoT Core 基礎元素。

如需 AWS IoT Core 目前的區域清單,請參閱 AWS 區域表

只要您擁有上述其中一個 AWS 區域的存取權,無論在哪個地理位置都能使用 AWS IoT Core。

使用 AWS IoT 主控台或參閱開發人員指南的快速啟動章節,在幾分鐘內就能試用 AWS IoT Core。

此外,請參考合作夥伴提供且由 AWS 支援的入門套件

請參閱 AWS IoT Core 文件以取得更進一步的詳細資訊。

​AWS IoT 主控台支援英文、法文、日文、韓文、簡體中文、德文、葡萄牙文、西班牙文、義大利文和繁體中文。

按一下主控台左下方的語言,然後選取語言。語言選項會套用到不同 AWS 服務的主控台。

您可以使用 AWS 管理主控台AWS SDK、AWS CLI 和 AWS IoT Core API。連線裝置則可使用 AWS IoT Device SDK 簡化與 AWS IoT Core 之間的通訊。

AWS IoT Core API 和命令大概可分成兩類:控制平面操作和資料平面操作。控制平面操作可讓您執行例如設定安全性、登錄裝置、設定路由資料規則及設定日誌等任務。資料平面操作則可以讓您用低延遲和高輸送率大規模地將資料從連線裝置導入 AWS IoT Core。

對於控制平面操作,AWS IoT Core 支援 HTTPS。對於資料平面操作,AWS IoT Core 則支援 HTTPS、WebSocket 和安全 MQTT (物聯網案例中常用的協定)。

傳送至 AWS IoT Core 的 HTTPS 和 WebSocket 請求會透過 AWS IAM 或 AWS Cognito 進行身份驗證,這兩者都支援 AWS SigV4 身份驗證。如果您使用 AWS 開發套件或 AWS CLI,則會在幕後自動幫您處理 SigV4 身份驗證。HTTPS 請求還會使用 X.509 憑證進行身份驗證。傳送至 AWS IoT Core 的 MQTT 訊息會使用 X.509 憑證進行身份驗證。

透過 AWS IoT Core,您可以使用 AWS IoT Core 產生的憑證,也可以使用偏好的憑證授權單位 (CA) 所簽署的憑證。

是,可透過實體集線器。連接至私有 IP 網路的裝置和使用非 IP 無線協定 (像是 ZigBee 或 Bluetooth LE) 的裝置都可存取 AWS IoT Core,只要在裝置和 AWS IoT Core 之間使用實體集線器做為媒介以進行通訊和提供安全性即可。

連接至 AWS IoT Core 的應用程式分成兩類:1.配套應用程式以及 2. 伺服器應用程式。配套應用程式是行動或用戶端瀏覽器應用程式,可透過雲端與連線裝置進行互動。讓消費者從遠端解除家裡智慧鎖的行動應用程式就是配套應用程式的其中一個範例。伺服器應用程式旨在同時監視和控制大量連線裝置。伺服器應用程式的其中一個範例就是車隊管理網站,這種網站可以即時在地圖上繪出數千輛貨車的位置。

AWS IoT Core 可讓配套應用程式和伺服器應用程式透過統一的 RESTful API 來存取連線裝置。應用程式還能選擇使用發布/訂閱來和連線裝置進行直接通訊。

配套應用程式通常會使用最終使用者身分進行身份驗證,而這些身分可能由您自己的身分存放區或第三方身分供應商 (例如 Facebook 和 Login with Amazon) 管理。對於使用與多個身分供應商整合的 Amazon Cognito 的配套應用程式。Cognito 身分可獲授權以存取 AWS IoT Core,而且可將他們的存取權限制為只能存取與其相關的資源。例如,若您是一家連線洗衣機製造商,您可以授權消費者只能存取與他們自己的洗衣機有關的 AWS IoT Core 資訊。

伺服器應用程式 (例如在 Amazon EC2 上執行的映射應用程式) 可以使用 IAM 角色來存取 AWS IoT Core。

是,要取得從您的帳戶發出的 AWS IoT Core API 呼叫歷史記錄,您只需在 AWS 管理主控台中開啟 CloudTrail 即可。

要傳送意見反應,按一下主控台註腳列上的 "Feedback" 連結。

功能

裝置閘道形成了連線裝置和雲端功能 (例如規則引擎、裝置陰影和其他 AWS 及第三方服務) 之間的通訊骨幹。

裝置閘道支援發布/訂閱簡訊模式,以支援可擴展、低延遲和低開銷的通訊。這對預計有數十億部裝置,且要經常通訊並將延遲降到最低的物聯網案例而言特別有用。發布/訂閱涉及用戶端在稱為「主題」的邏輯通訊通道上發布訊息,以及用戶端訂閱主題以接收訊息。裝置閘道讓發布者與訂閱者之間可以進行通訊。組織過去需要佈建、操作、擴展和維護自己的伺服器做為裝置閘道,以充分利用發布/訂閱的優點。AWS IoT Core 透過提供裝置閘道消除了這個障礙。

裝置閘道會隨著用量自動擴展,您無須負擔任何營運開銷。AWS IoT Core 支援與裝置閘道間的安全通訊、AWS 帳戶層級隔離,以及 AWS 帳戶內的精確授權。裝置閘道目前支援透過安全 MQTT 和 WebSocket 發佈和訂閱,以及透過 HTTPS 發佈。 

MQTT 是輕量型發布/訂閱網路協定,旨在大幅降低網路頻寬和裝置資源需求。MQTT 還支援使用 TLS 進行安全通訊。MQTT 通常用於物聯網使用案例。MQTT v3.1.1 是一種 OASIS 標準,且 裝置閘道支援大部分的 MQTT 規格。

規則引擎可不間斷地處理連接至 AWS IoT Core 之裝置的傳入資料。您可以使用類似 SQL 的直覺式語法在規則引擎中設定規則,以自動篩選和轉換所傳入的資料。您還可進一步設定規則,將資料從 AWS IoT Core 路由至多個其他 AWS 服務,或是路由到自有的服務或第三方服務。

以下是規則的一些範例使用案例:

  • 篩選和轉換內送訊息並以時間序列資料的形式存放在 DynamoDB。
  • 當來自感應器的資料超過特定閾值時,透過 SNS 傳送推送通知。
  • 將韌體檔案儲存至 S3
  • 使用 Kinesis 同時處理來自大量裝置的訊息
  • 叫用 Lambda 對傳入資料進行自訂處理
  • 傳送命令至一組裝置,其中包含自動重新發布

AWS IoT Core 規則由兩個主要部分組成:

SQL 陳述式可指定要套用規則的發布/訂閱網路主題、要執行的資料轉換 (如果有),以及應執行規則的條件。規則會套用到針對指定主題發布的每則訊息。

動作清單可定義執行規則時要採取的動作,也就是當內送訊息符合規則中指定的條件時。

規則定義會使用 JSON 結構描述。您可以直接編輯 JSON 或使用 AWS 管理主控台中的規則編輯器。

舉例來說,底下的規則指定每當溫度超過 50,就將來自感應器的溫度資料儲存至 DynamoDB:

在這個範例中,感應器在 "iot/tempSensors/" 下的主題進行發布。規則的第一行定義了用來查詢 "iot/tempSensors/#" 主題的 SQL SELECT 陳述式。其中包含一個 WHERE 子句,它會擷取訊息承載中 ‘temp’ 欄位的值,並檢查該值是否符合「大於 50」這個條件。如果符合條件,就會將資料存放至指定的 DynamoDB 表。這個範例使用內建函數來處理周遊訊息承載和取得目前時間等任務。 

您可以在這裡進一步了解規則的相關資訊:Core 規則文件

物聯網案例包含數量不多的關鍵任務裝置到大型裝置叢集等各種案例。登錄檔可讓您整理並追蹤這些裝置。您可以針對連接至 AWS IoT Core 的每個裝置,在登錄檔中維護一個邏輯控點。登錄檔中的每個裝置都可被唯一識別,而且有與其關聯的中繼資料,例如型號、支援聯絡方式和憑證。您可以根據中繼資料在登錄檔中搜尋連線裝置。

物聯網案例包含數量不多的關鍵任務裝置到大型裝置叢集等各種案例。登錄檔可讓您整理並追蹤這些裝置。您可以針對連接至 AWS IoT Core 的每個裝置,在登錄檔中維護一個邏輯控點。登錄檔中的每個裝置都可被唯一識別,而且有與其關聯的中繼資料,例如型號、支援聯絡方式和憑證。您可以根據中繼資料在登錄檔中搜尋連線裝置。

使用裝置類型可透過定義相同裝置類別中的裝置共同特性,有效地管理裝置的目錄。此外,與裝置類別關聯的裝置現在可有高達 50 個屬性,包含 3 個可搜尋屬性。

此功能可讓您使用參考登錄或 X.509 憑證屬性的變數,輕鬆地管理大量裝置的許可政策。登錄和憑證屬性與裝置政策的整合提供了以下好處:

  • 您現在可以參考裝置許可政策中的登錄檔屬性。參考登錄檔中定義的裝置屬性可讓您的政策反映登錄檔所做的任何變更。例如,透過參考名為 "building-address" 的 Thing Attribute 做為政策中的變數,裝置就會在移動建置時自動繼承一組新的許可。
  • 您可以讓多個裝置共用一個普遍政策。相同類別裝置可以共用一個普遍政策,無須為各裝置建立唯一的政策。例如,參考 "serial-number" 做為變數的政策可連接到相同型號的所有裝置。當連接相同序號的裝置時,政策變數會自動被它們的序號取代。

裝置陰影可讓雲端和行動應用程式輕鬆地與在 AWS IoT Core 登錄的連線裝置互動。AWS IoT Core 中的裝置陰影包含連線裝置的屬性。您可以定義適用於使用案例的任何屬性集。例如,針對智慧燈泡,您可以定義「開或關」、「顏色」和「亮度」做為屬性。連線裝置應該要回報那些屬性的實際值,而這些值會存放在裝置陰影。應用程式使用 AWS IoT Core 提供的 RESTful API 就能輕鬆取得及更新屬性。AWS IoT Core 和 Device SDK 會負責在 AWS IoT Core 中同步連線裝置及其裝置陰影之間的屬性值。

您可以使用 AWS IoT Core 中的裝置閘道和/或規則引擎,讓應用程式直接與連線裝置進行通訊。不過,我們建議您使用登錄檔和裝置陰影,因為它們能提供較為豐富和更有結構的開發和管理經驗,讓您專注在為客戶建立獨特的價值,而不是著重在連線裝置和雲端之間的基礎通訊和同步。

  • 您在登錄檔中登錄裝置 (像是燈泡)。
  • 您將連線裝置的程式設計為發布一組屬性值或「狀態」(「我已開啟且我的顏色是紅色」) 至 AWS IoT Core 服務。
  • 上次回報的狀態會存放在 AWS IoT Core 的裝置陰影中。
  • 應用程式 (例如,控制燈泡的行動應用程式) 使用 RESTful API 來查詢 AWS IoT Core 以取得燈泡上次回報的狀態,免除與燈泡直接進行通訊的複雜性。
  • 當使用者想要變更狀態 (像是將燈泡從開變更為關) 時,應用程式會使用 RESTful API 請求更新,也就是在 AWS IoT Core 設定裝置「所需」的狀態。AWS IoT Core 會負責將所需的狀態同步到裝置。
  • 當連線裝置將狀態更新為所需狀態時,應用程式會收到通知。

如需登錄檔的詳細資訊,請參閱登錄檔文件。如需裝置影子的詳細資訊,請參閱裝置影子文件

是。與其他 AWS 服務相似,您在 AWS IoT Core 可精確控制每個身分授權叫用的一組 API 動作。此外,您還可精確控制身分可發布或訂閱的發布/訂閱網路主題,以及身分可存取之登錄檔的裝置和裝置陰影。

如需詳細資訊,請參閱 AWS IoT Core 安全與身分

裝置憑證的 Just-in-time 註冊 (JITR) 是 2016 年 4 月推出的「使用自有憑證」功能的延伸,可簡化在 AWS IoT Core 註冊裝置的程序。支援 JITR 之前,裝置註冊程序需要兩個步驟:首先,在 AWS IoT Core 註冊憑證授權單位 (CA) 憑證,然後個別註冊 CA 簽署的裝置憑證。使用 JITR,您現在可以在裝置第一次連接到 AWS IoT Core 時自動註冊裝置憑證,以完成第二個步驟。如此可節省註冊裝置憑證的時間,還能在製造過程中讓裝置保持離線狀態。要進一步自動化 IoT 裝置佈建,您可以使用啟用憑證及連接政策的 Lambda 動作建立 AWS IoT Core 規則。如需詳細資訊,請參閱 AWS 上的物聯網部落格或開發人員文件

AWS IoT Device SDK 可簡化和加速在連線裝置 (微型控制器、感應器、傳動器、智慧型裝置、穿戴式裝置等) 上執行之程式碼的開發。首先,裝置可使用此 Device SDK 優化記憶體、電力和網路頻寬耗用情形。同時,Device SDK 可透過內建 TLS、WebSocket 和 MQTT 支援進行高度安全、低延遲和低開銷的通訊。此 Device SDK 還支援較高層級的抽象 (例如,在 AWS IoT Core 同步裝置及其裝置陰影的狀態),以加速物聯網應用程式的開發。

AWS IoT Device SDK 以開放原始碼專案的形式免費提供。如需詳細資訊,請瀏覽我們的 Device SDK 頁面。

AWS 目前提供 C 和 Node.js 語言及 Arduino Yún 平台的 AWS IoT Device SDK。

此外,有多家硬體製造商已與 AWS 合作,在各自的平台上提供 AWS IoT Device SDK。如需硬體平台的詳細資訊,請瀏覽我們的入門頁面

最後,AWS IoT Device SDK 是開放原始碼。如果您的語言和硬體平台尚未受到支援,則可以將開發套件移植到您選擇的語言和硬體平台。 

AWS IoT Device SDK 可補足 AWS 開發套件不足之處。物聯網專案通常涉及在微型控制器和其他資源受限裝置上執行的程式碼。不過,物聯網專案通常包含在雲端和行動裝置上執行的應用程式,這些應用程式會與微型控制器/資源受限裝置互動。AWS IoT Device SDK 適用於微型控制器/資源受限裝置,而 AWS 開發套件則適用於雲端和行動應用程式。

如需 AWS IoT Device SDK 的詳細資訊,請參閱 AWS Device SDK

定價和 SLA

是。如需詳細資訊,請瀏覽我們的定價頁面

請瀏覽我們的定價頁面以取得相關資訊。

AWS IoT Core SLA 規定,如果 AWS IoT Core 未能達到 AWS IoT Core 每個月正常執行時間百分比至少 99.9%,則您可能享有部分每月服務費用積分。

如需 SLA 所有條款與條件的完整詳細資訊,以及如何提交索賠的詳細資訊,請參閱 AWS IoT Core SLA 詳細資訊頁面。

AWS IoT Core for LoRaWAN

基本工作站軟體會由 Semtech 透過其 Github 儲存庫維護和散佈。

裝置:您擁有所選的 LoRaWAN 裝置,並將其連接至 AWS IoT Core。您可以購買與 LoRa 1.0.3 或 1.1 規格相容的 LoRa 裝置或感應器 (無需開發或更新軟體)。

閘道:您擁有所選的 LoRaWAN 閘道,並將其連接至 AWS IoT Core。AWS IoT Core 提供兩個選擇:您可以輕鬆透過 Amazon Partner Device Catalog 選取和購買 AWS 合格的閘道,這些閘道都是立即可用,與 AWS IoT Core 相連。或者,您可以連接棕色地帶 (舊版) 或現成 (例如,Raspberry Pi) 閘道,方法是更新其韌體以支援開放原始碼基本工作站通訊協定。您可以在入門指南中找到指示以更新韌體。

LoRaWAN Network Server (LNS):AWS IoT Core 擁有和提供全受管的 LNS。只要在 AWS IoT 主控台中進行幾個簡單的步驟,您就可以透過連線的 LoRaWAN 裝置來註冊所選硬體和視覺化訊息。

雲端應用程式:您擁有和開發自己的雲端應用程式。在將裝置連接至 AWS IoT Core,您就可透過將裝置訊息路由至 AWS 服務,以開始開發應用程式或解決方案。

網路管理:AWS IoT Core 提供網路管理功能,客戶會使用和設定這些功能,來操作其 LoRaWAN 網路。您可以透過使用 AWS IoT 管理主控台,查詢連線/中斷連線的裝置以及閘道、裝置流量屬性和前次收到訊息的閘道統計資料。此外,您可以使用 API,遠端更新 LoRaWAN 閘道韌體。

LoRaWAN 是經 LoRa 聯盟授權使用的商標。

AWS IoT Core for Amazon Sidewalk

Amazon Sidewalk 是可協助裝置運作更順利的共享網路。Sidewalk 由 Amazon 為客戶免費營運,可協助簡化新裝置的設定、延伸裝置的低頻寬運作範圍,並協助裝置即使在其家中 Wi-Fi 範圍外仍能保持上線。日後,Sidewalk 將支援一系列的體驗,從使用具 Sidewalk 功能的裝置,到尋找寵物和貴重物品,到智慧保全和照明,再到家用設備和工具的診斷。

AWS IoT Core for Amazon Sidewalk 是一項完全整合的功能,可讓 IoT 開發人員透過 AWS IoT Core 輕鬆佈建、佈設和監控 Amazon Sidewalk 裝置。Amazon Sidewalk 與 AWS IoT Core 的更深入整合為開發人員提供簡化的路徑,將支援 SideWalk 的裝置連線至雲端,並且可存取超過 200 種 AWS 服務。

AWS IoT Core Device Advisor

裝置製造商的開發人員應使用 Device Advisor,根據預先建置的測試案例測試其裝置,驗證與 AWS IoT Core 的連線是否可靠安全。Device Advisor 在 AWS 雲端中提供測試端點,裝置製造商可立即使用此端點,來測試其裝置、節省開發和測試的時間和成本。此測試設定也會提供每個測試的詳細日誌,加快您在對裝置軟體問題進行疑難排解的速度。Device Advisor 也提供複雜測試案例的測試覆蓋範圍,讓客戶能夠在其裝置軟體開發期間探索和修正問題。這能帶來更可靠的效能並降低在部署後維護裝置機群的成本。

此外,有了 IoT Device Advisor,硬體合作夥伴就能夠自行測試其裝置、下載已簽署的資格報告,並將報告提交至 APN,如此其裝置就會列在 AWS 合作夥伴裝置型錄中。

任何已建置來與 AWS IoT Core 連接的裝置都可以利用 Device Advisor。裝置製造商的開發人員可以透過 AWS IoT Core 主控台或使用 AWS SDK 來存取 Device Advisor。在開發人員準備好測試其裝置後,他們就可以使用 AWS IoT Core 註冊裝置,並使用 Device Advisor 端點設定裝置軟體。他們接著就可以透過在 IoT Core 主控台進行幾次簡單的點選,選擇和執行預先建置的測試,並立即取得測試結果和詳細日誌。

請參閱 Device Advisor 中的測試案例區段,了解預先建置之支援測試的詳細資訊。

可免費使用 Device Advisor。然而,開發人員將負責在測試過程中與 AWS 用量相關聯的任何費用 (例如,AWS IoT Core、Amazon CloudWatch 用量)。開發人員在其 AWS 帳戶中會看見測試過程中的 AWS 資源用量,而這些用量的費用會套用至開發人員的 AWS 帳單。

AWS IoT Device Client

AWS IoT Device Client 是開放原始碼且模組化的免費裝置端參考實作,可讓您輕鬆將裝置連結到 AWS IoT Core,並且依預設存取 AWS IoT Device Management 和 AWS IoT Device Defender 的功能。AWS IoT Device Client 是以 C++ 編寫而成,可在以 Linux 為基礎的嵌入式 IoT 裝置中編譯及安裝。

目前版本的 AWS IoT Device Client 可讓您將 IoT 裝置連結到 AWS IoT Core、存取 AWS IoT Device Management 的工作和安全通道功能,並且存取 AWS IoT Device Defender 的規則偵測功能。

若要在裝置上開始使用,請從 GitHub 下載 AWS IoT Device Client 原始程式碼,並使用 讀我檔案了解詳情。

IoT Device Client 目前依預設與搭載 x86_64 或 ARM 架構,以及一般 Linux 軟體環境 (Debian、Ubuntu、RHEL) 的微處理器型 IoT 裝置搭配使用。這包含了最常見的裝置,例如最新的 Raspberry Pi。如果您要使用的是其他裝置,請前往 AWS 合作夥伴裝置型錄

我們建議您在搭載 100MHz+ 運算效能和 64MB+ 記憶體的微處理器型裝置上,使用 IoT Device Client。如果您想要為限制較嚴格的裝置或微控制器型裝置,寫入您自己專門打造的裝置程式碼,我們在 GitHub 上,於最新版本的 Embedded C AWS IoT Device SDK 中,提供了 Fleet Provisioning、Jobs 和 AWS IoT Device Defender 的更新功能程式庫。