什么是 AWS IoT Core?
為潤(rùn)州等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及潤(rùn)州網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、潤(rùn)州網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
AWS IoT Core 是一款托管的云平臺(tái),讓互聯(lián)設(shè)備可以輕松安全地與云應(yīng)用程序及其他設(shè)備交互。AWS IoT Core 可以支持?jǐn)?shù)十億臺(tái)設(shè)備和數(shù)萬(wàn)億條消息,并且可以對(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 來(lái)確保通信安全。
處理互聯(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ī)則來(lái)將數(shù)據(jù)路由到其他 AWS 產(chǎn)品(如 DynamoDB、Kinesis、Lambda、SNS、SQS、CloudWatch 和內(nèi)置 Kibana 集成的 Elasticsearch Service)及非 AWS 產(chǎn)品,通過 Lambda 做進(jìn)一步的處理、存儲(chǔ)或分析。
它還提供了一個(gè)注冊(cè)表,以供您注冊(cè)和跟蹤連接到 AWS IoT Core 的設(shè)備或未來(lái)可能要連接的設(shè)備。AWS IoT Core 中的設(shè)備影子讓云和移動(dòng)應(yīng)用程序可以查詢?cè)O(shè)備發(fā)送的數(shù)據(jù),并通過簡(jiǎn)單的 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)測(cè)和控制大量互聯(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 場(chǎng)景尤為有用。發(fā)布/訂閱模式是指:客戶端在稱作“主題”的邏輯通信頻道上發(fā)布消息,客戶端訂閱主題接收消息。設(shè)備網(wǎng)關(guān)可促成發(fā)布者與訂閱者之間的通信。傳統(tǒng)上,組織要使用發(fā)布/訂閱模型,就必須調(diào)配、操作、擴(kuò)展和維護(hù)自己的服務(wù)器來(lái)作為設(shè)備網(wǎng)關(guān)。AWS IoT Core 提供了設(shè)備網(wǎng)關(guān),消除了這一障礙。
該設(shè)備網(wǎng)關(guān)可根據(jù)您的使用情況自動(dòng)擴(kuò)展,不會(huì)給您帶來(lái)任何運(yùn)營(yíng)開銷。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ì)來(lái)自連接到 AWS IoT Core 的設(shè)備的入站數(shù)據(jù)進(jìn)行連續(xù)處理。您可以使用直觀的類 SQL 語(yǔ)法在規(guī)則引擎中配置規(guī)則,以自動(dòng)過濾和轉(zhuǎn)換入站數(shù)據(jù)。您可以進(jìn)一步配置規(guī)則,將數(shù)據(jù)從 AWS IoT Core 路由到多個(gè)其他 AWS 產(chǎn)品及您自己的第三方服務(wù)。
下面給出了少量規(guī)則用例:
如何定義和觸發(fā)規(guī)則?
AWS IoT Core 規(guī)則包含兩大部分:
SQL 語(yǔ)句:指定要應(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í),它將來(lái)自傳感器的溫度數(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 語(yǔ)句。它包含一條 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 Core 會(huì)在所有連接點(diǎn)提供身份驗(yàn)證和端到端加密服務(wù),因此在沒有驗(yàn)證身份的情況下,數(shù)據(jù)絕不會(huì)在設(shè)備和 AWS IoT Core 之間進(jìn)行交換。此外,您可以通過應(yīng)用具有詳細(xì)權(quán)限的策略來(lái)保護(hù)對(duì)設(shè)備和應(yīng)用程序的訪問安全。
借助 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 Core 會(huì)存儲(chǔ)互聯(lián)設(shè)備的最新狀態(tài),以便能夠隨時(shí)進(jìn)行讀取或設(shè)置,使設(shè)備對(duì)您的應(yīng)用程序來(lái)說,似乎始終處于在線狀態(tài)。這意味著您的應(yīng)用程序可以讀取設(shè)備的狀態(tài)(即使它已斷開連接),并且您也可以設(shè)置設(shè)備狀態(tài),并在設(shè)備重新連接后實(shí)施該狀態(tài)。
API 參考
https://docs.aws.amazon.com/iot/latest/apireference/Welcome.html