溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

AWS IOT 入門(四) IoT Core

發(fā)布時(shí)間:2020-07-18 20:57:02 來源:網(wǎng)絡(luò) 閱讀:1231 作者:pcdog 欄目:云計(jì)算

什么是 AWS IoT Core?

AWS IoT Core 是一款托管的云平臺(tái),讓互聯(lián)設(shè)備可以輕松安全地與云應(yīng)用程序及其他設(shè)備交互。AWS IoT Core 可以支持?jǐn)?shù)十億臺(tái)設(shè)備和數(shù)萬億條消息,并且可以對(duì)這些消息進(jìn)行處理并將其安全可靠地路由至 AWS 終端節(jié)點(diǎn)和其他設(shè)備。借助 AWS IoT Core,您的應(yīng)用程序可以隨時(shí)跟蹤所有設(shè)備并與其通信,即使這些設(shè)備未處于連接狀態(tài)也不例外。


AWS IoT Core 提供哪些功能?

實(shí)現(xiàn)設(shè)備與 AWS 云之間的連接。 首先,借助 AWS IoT Core,您能以安全、低延遲和低開銷的方式與互聯(lián)設(shè)備通信。通信可擴(kuò)展到您所需的任意數(shù)量的設(shè)備。AWS IoT Core 支持標(biāo)準(zhǔn)通信協(xié)議(目前支持 HTTP、MQTT 和 WebSockets)。可使用 TLS 來確保通信安全。

處理互聯(lián)設(shè)備發(fā)出的數(shù)據(jù)。其次,借助 AWS IoT Core,您可以持續(xù)接收、篩選、轉(zhuǎn)換和路由從互聯(lián)設(shè)備流式傳輸?shù)臄?shù)據(jù)。您可以根據(jù)這些數(shù)據(jù)執(zhí)行操作,并進(jìn)行路由以做進(jìn)一步處理和分析。

與互聯(lián)設(shè)備交互的應(yīng)用程序。最后,AWS IoT Core 可以加快 IoT 應(yīng)用程序的開發(fā)。它用作在云中和移動(dòng)設(shè)備上運(yùn)行的應(yīng)用程序的易于使用的接口,可用于訪問互聯(lián)設(shè)備發(fā)出的數(shù)據(jù),并將數(shù)據(jù)和命令發(fā)回設(shè)備。


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

互聯(lián)設(shè)備(如傳感器、執(zhí)行器、嵌入式設(shè)備、智能設(shè)備和可穿戴設(shè)備)通過 HTTPS、WebSockets 或安全 MQTT 連接到 AWS IoT Core。AWS IoT Core 內(nèi)含設(shè)備網(wǎng)關(guān),可在互聯(lián)設(shè)備與您的云和移動(dòng)應(yīng)用程序之間建立安全、低延遲、低開銷的雙向通信。

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

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

安全地與 AWS IoT Core 通信。該服務(wù)要求其所有客戶端(互聯(lián)設(shè)備、服務(wù)器應(yīng)用程序、移動(dòng)應(yīng)用程序或人類用戶)使用強(qiáng)身份驗(yàn)證(X.509 證書、AWS IAM 憑證或經(jīng)由 AWS Cognito 的第三方身份驗(yàn)證)。所有通信均經(jīng)過加密。此外,AWS IoT Core 還提供了精細(xì)的授權(quán),以隔離和保護(hù)已驗(yàn)證客戶端之間的通信。


應(yīng)用程序應(yīng)如何訪問 AWS IoT Core?

連接 AWS IoT Core 的應(yīng)用程序大體上分為兩類:1. 配套應(yīng)用程序;2. 服務(wù)器應(yīng)用程序。配套應(yīng)用程序是指移動(dòng)或客戶端側(cè)的瀏覽器應(yīng)用程序,它們通過云與互聯(lián)設(shè)備交互。能夠使消費(fèi)者遠(yuǎn)程解鎖消費(fèi)者居所中智能鎖的移動(dòng)應(yīng)用程序就是配套應(yīng)用程序的一個(gè)示例。服務(wù)器應(yīng)用程序旨在同時(shí)監(jiān)測和控制大量互聯(lián)設(shè)備。在地圖上實(shí)時(shí)繪制數(shù)千輛卡車的車隊(duì)管理網(wǎng)站就是服務(wù)器應(yīng)用程序的一個(gè)示例。

AWS IoT Core 使配套應(yīng)用程序和服務(wù)器應(yīng)用程序能夠通過統(tǒng)一的 RESTful API 訪問互聯(lián)設(shè)備。此外,應(yīng)用程序也可選擇使用發(fā)布/訂閱方式與互聯(lián)設(shè)備直接通信。

通常,配套應(yīng)用程序使用最終用戶身份(由您自己的身份存儲(chǔ)或 Facebook、Login with Amazon 等第三方身份提供商管理)進(jìn)行身份驗(yàn)證。對(duì)于配套應(yīng)用程序,可以使用 Amazon Cognito(與多個(gè)身份提供商集成)。可以授權(quán) Cognito 身份以訪問 AWS IoT Core,且可將其訪問范圍限制為與其相關(guān)的資源。例如,作為一家互聯(lián)洗衣機(jī)制造商,您可以授權(quán)消費(fèi)者訪問屬于其各自洗衣機(jī)的 AWS IoT Core 信息。

服務(wù)器應(yīng)用程序(如運(yùn)行在 Amazon EC2 上的地圖應(yīng)用程序)可使用 IAM 角色訪問 AWS IoT Core。


什么是設(shè)備網(wǎng)關(guān)?

設(shè)備網(wǎng)關(guān)構(gòu)成了互聯(lián)設(shè)備與云功能(如 規(guī)則引擎、設(shè)備影子以及其他 AWS 和第三方服務(wù))之間的通信骨干。

設(shè)備網(wǎng)關(guān)支持發(fā)布/訂閱消息收發(fā)模式,能夠?qū)崿F(xiàn)可擴(kuò)展、低延遲和低開銷的通信。它對(duì)于預(yù)計(jì)會(huì)有數(shù)十億設(shè)備進(jìn)行低延遲頻繁通信的 IoT 場景尤為有用。發(fā)布/訂閱模式是指:客戶端在稱作“主題”的邏輯通信頻道上發(fā)布消息,客戶端訂閱主題接收消息。設(shè)備網(wǎng)關(guān)可促成發(fā)布者與訂閱者之間的通信。傳統(tǒng)上,組織要使用發(fā)布/訂閱模型,就必須調(diào)配、操作、擴(kuò)展和維護(hù)自己的服務(wù)器來作為設(shè)備網(wǎng)關(guān)。AWS IoT Core 提供了設(shè)備網(wǎng)關(guān),消除了這一障礙。

該設(shè)備網(wǎng)關(guān)可根據(jù)您的使用情況自動(dòng)擴(kuò)展,不會(huì)給您帶來任何運(yùn)營開銷。AWS IoT Core 支持與設(shè)備網(wǎng)關(guān)的安全通信、AWS 賬戶級(jí)隔離以及 AWS 賬戶內(nèi)的精細(xì)授權(quán)。目前,該設(shè)備網(wǎng)關(guān)支持通過 MQTT 和 WebSockets 進(jìn)行發(fā)布和訂閱,以及通過 HTTPS 進(jìn)行發(fā)布。


什么是 MQTT?

MQTT 是一種輕量級(jí)的發(fā)布/訂閱協(xié)議,旨在最大限度地降低網(wǎng)絡(luò)帶寬和設(shè)備資源要求。此外,MQTT 還支持使用 TLS 進(jìn)行安全通信。MQTT 常用在 IoT 用例中。MQTT v3.1.1 是一種 OASIS 標(biāo)準(zhǔn), 設(shè)備網(wǎng)關(guān)支持大部分 MQTT 規(guī)范。


什么是規(guī)則引擎?

規(guī)則引擎可對(duì)來自連接到 AWS IoT Core 的設(shè)備的入站數(shù)據(jù)進(jìn)行連續(xù)處理。您可以使用直觀的類 SQL 語法在規(guī)則引擎中配置規(guī)則,以自動(dòng)過濾和轉(zhuǎn)換入站數(shù)據(jù)。您可以進(jìn)一步配置規(guī)則,將數(shù)據(jù)從 AWS IoT Core 路由到多個(gè)其他 AWS 產(chǎn)品及您自己的第三方服務(wù)。

下面給出了少量規(guī)則用例:

  • 篩選和轉(zhuǎn)換傳入消息并將之作為時(shí)間序列數(shù)據(jù)存儲(chǔ)在 DynamoDB 中。
  • 當(dāng)來自傳感器的數(shù)據(jù)超出特定閾值時(shí),通過 SNS 發(fā)送推送通知。
  • 將固件文件保存到 S3
  • 同時(shí)處理來自大量使用 Kinesis 的設(shè)備的消息
  • 調(diào)用 Lambda 對(duì)傳入數(shù)據(jù)進(jìn)行自定義處理
  • 以自動(dòng)重新發(fā)布的形式向一組設(shè)備發(fā)送命令


如何定義和觸發(fā)規(guī)則?

AWS IoT Core 規(guī)則包含兩大部分:

SQL 語句:指定要應(yīng)用規(guī)則的發(fā)布/訂閱主題、要執(zhí)行的數(shù)據(jù)轉(zhuǎn)換(如有的話)以及執(zhí)行規(guī)則的條件。該規(guī)則應(yīng)用到在指定主題上發(fā)布的每一條消息。

操作列表:定義規(guī)則執(zhí)行時(shí)(即:當(dāng)傳入消息匹配規(guī)則中指定的條件時(shí))要采取的操作。

規(guī)則定義使用基于 JSON 的架構(gòu)。您可以直接編輯 JSON,或使用 AWS 管理控制臺(tái)中的規(guī)則編輯器。

下面是一個(gè)規(guī)則示例,當(dāng)溫度高于 50 時(shí),它將來自傳感器的溫度數(shù)據(jù)保存到 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/”下的主題中發(fā)布消息。規(guī)則的第一行定義了一條查詢“iot/tempSensors/#”主題的 SQL SELECT 語句。它包含一條 WHERE 子句:提取消息有效載荷中“temp”字段的值并檢查其是否滿足“高于 50”的條件。如果滿足條件,則將數(shù)據(jù)存儲(chǔ)在指定的 DynamoDB 表中。本示例使用內(nèi)置功能完成遍歷消息有效載荷和獲取當(dāng)前時(shí)間等任務(wù)。



您可以借助 AWS IoT Core 輕松將設(shè)備連接至云和其他設(shè)備。AWS IoT Core 支持 HTTP、WebSockets 和 MQTT(專門設(shè)計(jì)用于容許間斷式連接,可最大限度地減少代碼在設(shè)備上占用的空間及降低網(wǎng)絡(luò)帶寬要求的輕型通信協(xié)議)。AWS IoT Core 也支持其他行業(yè)標(biāo)準(zhǔn)和自定義協(xié)議,而且即使設(shè)備使用不同的協(xié)議,也可以相互通信。

AWS IOT 入門(四) IoT Core


AWS IoT Core 會(huì)在所有連接點(diǎn)提供身份驗(yàn)證和端到端加密服務(wù),因此在沒有驗(yàn)證身份的情況下,數(shù)據(jù)絕不會(huì)在設(shè)備和 AWS IoT Core 之間進(jìn)行交換。此外,您可以通過應(yīng)用具有詳細(xì)權(quán)限的策略來保護(hù)對(duì)設(shè)備和應(yīng)用程序的訪問安全。


AWS IOT 入門(四) IoT Core


處理設(shè)備數(shù)據(jù)并對(duì)其執(zhí)行操作

借助 AWS IoT Core,您可以按照自己定義的業(yè)務(wù)規(guī)則快速篩選和轉(zhuǎn)換設(shè)備數(shù)據(jù)并對(duì)其執(zhí)行操作。您可以隨時(shí)更新規(guī)則以實(shí)施新設(shè)備和應(yīng)用程序功能。即使對(duì)于功能更強(qiáng)大的 IoT 應(yīng)用程序,您也可以借助 AWS IoT Core 輕松使用 AWS Lambda、Amazon Kinesis、Amazon S3、Amazon Machine Learning、Amazon DynamoDB、Amazon CloudWatch 和 Amazon Elasticsearch Service 等 AWS 產(chǎn)品。


AWS IOT 入門(四) IoT Core


隨時(shí)讀取和設(shè)置設(shè)備狀態(tài)

AWS IoT Core 會(huì)存儲(chǔ)互聯(lián)設(shè)備的最新狀態(tài),以便能夠隨時(shí)進(jìn)行讀取或設(shè)置,使設(shè)備對(duì)您的應(yīng)用程序來說,似乎始終處于在線狀態(tài)。這意味著您的應(yīng)用程序可以讀取設(shè)備的狀態(tài)(即使它已斷開連接),并且您也可以設(shè)置設(shè)備狀態(tài),并在設(shè)備重新連接后實(shí)施該狀態(tài)。


AWS IOT 入門(四) IoT Core



API 參考

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

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI