AWS IOT 入門(四) IoT Core

什麼是 AWS IoT Core?

AWS IoT Core 是一款託管的雲平臺,讓互聯設備可以輕鬆安全地與雲應用程序及其他設備交互。AWS IoT Core 可以支持數十億臺設備和數萬億條消息,並且可以對這些消息進行處理並將其安全可靠地路由至 AWS 終端節點和其他設備。藉助 AWS IoT Core,您的應用程序可以隨時跟蹤所有設備並與其通信,即使這些設備未處於連接狀態也不例外。


AWS IoT Core 提供哪些功能?

實現設備與 AWS 雲之間的連接。 首先,藉助 AWS IoT Core,您能以安全、低延遲和低開銷的方式與互聯設備通信。通信可擴展到您所需的任意數量的設備。AWS IoT Core 支持標準通信協議(目前支持 HTTP、MQTT 和 WebSockets)。可使用 TLS 來確保通信安全。

處理互聯設備發出的數據。其次,藉助 AWS IoT Core,您可以持續接收、篩選、轉換和路由從互聯設備流式傳輸的數據。您可以根據這些數據執行操作,並進行路由以做進一步處理和分析。

與互聯設備交互的應用程序。最後,AWS IoT Core 可以加快 IoT 應用程序的開發。它用作在雲中和移動設備上運行的應用程序的易於使用的接口,可用於訪問互聯設備發出的數據,並將數據和命令發回設備。


AWS IoT Core 的工作原理是什麼?

互聯設備(如傳感器、執行器、嵌入式設備、智能設備和可穿戴設備)通過 HTTPS、WebSockets 或安全 MQTT 連接到 AWS IoT Core。AWS IoT Core 內含設備網關,可在互聯設備與您的雲和移動應用程序之間建立安全、低延遲、低開銷的雙向通信。

此外,AWS IoT Core 還包含規則引擎,可對互聯設備發送的數據進行持續處理。您可以配置規則以篩選和轉換數據。此外,您還可以配置規則來將數據路由到其他 AWS 產品(如 DynamoDB、Kinesis、Lambda、SNS、SQS、CloudWatch 和內置 Kibana 集成的 Elasticsearch Service)及非 AWS 產品,通過 Lambda 做進一步的處理、存儲或分析。

它還提供了一個註冊表,以供您註冊和跟蹤連接到 AWS IoT Core 的設備或未來可能要連接的設備。AWS IoT Core 中的設備影子讓雲和移動應用程序可以查詢設備發送的數據,並通過簡單的 REST API 向設備發送命令,同時將與設備的底層通信交給 IoT Core 處理。設備影子向設備提供了統一的接口(即使它們使用應用程序不兼容的某個 IoT 通信和安全協議時也是如此),加速了應用程序的開發。此外,設備影子還能通過以下方式加速應用程序的開發:向設備提供始終可用的接口,即使互聯設備受到連接間歇中斷、帶寬有限、計算能力有限或電力有限等制約。

安全地與 AWS IoT Core 通信。該服務要求其所有客戶端(互聯設備、服務器應用程序、移動應用程序或人類用戶)使用強身份驗證(X.509 證書、AWS IAM 憑證或經由 AWS Cognito 的第三方身份驗證)。所有通信均經過加密。此外,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 場景尤爲有用。發佈/訂閱模式是指:客戶端在稱作“主題”的邏輯通信頻道上發佈消息,客戶端訂閱主題接收消息。設備網關可促成發佈者與訂閱者之間的通信。傳統上,組織要使用發佈/訂閱模型,就必須調配、操作、擴展和維護自己的服務器來作爲設備網關。AWS IoT Core 提供了設備網關,消除了這一障礙。

該設備網關可根據您的使用情況自動擴展,不會給您帶來任何運營開銷。AWS IoT Core 支持與設備網關的安全通信、AWS 賬戶級隔離以及 AWS 賬戶內的精細授權。目前,該設備網關支持通過 MQTT 和 WebSockets 進行發佈和訂閱,以及通過 HTTPS 進行發佈。


什麼是 MQTT?

MQTT 是一種輕量級的發佈/訂閱協議,旨在最大限度地降低網絡帶寬和設備資源要求。此外,MQTT 還支持使用 TLS 進行安全通信。MQTT 常用在 IoT 用例中。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 中:

{

    "sql": "SELECT * from 'iot/tempSensors/#' WHERE temp > 50",

    "description": "Rule to save sensor data when temperature is about 50",

    "actions": [

     {

            "dynamoDB": {

            "tableName": "HighTempTable",

            "roleArn": "arn:AWS:iam::your-AWS-account-id:role/dynamoPut",

            "hashKeyField": "key",

            "hashKeyValue": "${topic(3)}",

            "rangeKeyField": "timestamp",

            "rangeKeyValue": "${timestamp()}"

            }

        }

    ]

}

本示例中的傳感器在其位於“iot/tempSensors/”下的主題中發佈消息。規則的第一行定義了一條查詢“iot/tempSensors/#”主題的 SQL SELECT 語句。它包含一條 WHERE 子句:提取消息有效載荷中“temp”字段的值並檢查其是否滿足“高於 50”的條件。如果滿足條件,則將數據存儲在指定的 DynamoDB 表中。本示例使用內置功能完成遍歷消息有效載荷和獲取當前時間等任務。



您可以藉助 AWS IoT Core 輕鬆將設備連接至雲和其他設備。AWS IoT Core 支持 HTTP、WebSockets 和 MQTT(專門設計用於容許間斷式連接,可最大限度地減少代碼在設備上佔用的空間及降低網絡帶寬要求的輕型通信協議)。AWS IoT Core 也支持其他行業標準和自定義協議,而且即使設備使用不同的協議,也可以相互通信。

image


AWS IoT Core 會在所有連接點提供身份驗證和端到端加密服務,因此在沒有驗證身份的情況下,數據絕不會在設備和 AWS IoT Core 之間進行交換。此外,您可以通過應用具有詳細權限的策略來保護對設備和應用程序的訪問安全。


image


處理設備數據並對其執行操作

藉助 AWS IoT Core,您可以按照自己定義的業務規則快速篩選和轉換設備數據並對其執行操作。您可以隨時更新規則以實施新設備和應用程序功能。即使對於功能更強大的 IoT 應用程序,您也可以藉助 AWS IoT Core 輕鬆使用 AWS Lambda、Amazon Kinesis、Amazon S3、Amazon Machine Learning、Amazon DynamoDB、Amazon CloudWatch 和 Amazon Elasticsearch Service 等 AWS 產品。


image


隨時讀取和設置設備狀態

AWS IoT Core 會存儲互聯設備的最新狀態,以便能夠隨時進行讀取或設置,使設備對您的應用程序來說,似乎始終處於在線狀態。這意味着您的應用程序可以讀取設備的狀態(即使它已斷開連接),並且您也可以設置設備狀態,並在設備重新連接後實施該狀態。


image



API 參考

https://docs.aws.amazon.com/iot/latest/apireference/Welcome.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章