SQL 版本 - AWS IoT Core

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

SQL 版本

AWS IoT 規則引擎使用類似 SQL 的語法從 MQTT 訊息中選取資料。SQL 陳述式會以指定的 SQL 版本來解釋,版本由描述規則的 JSON 文件的 awsIotSqlVersion 屬性指定。如需更多關於 JSON 規則文件結構的資訊,請參閱建立規則的相關文章。此awsIotSqlVersion屬性可讓您指定要使用的 AWS IoT SQL 規則引擎版本。部署新版本時,可以繼續使用較早版本,或變更規則以使用新版本。目前的規則會繼續使用建立時使用的版本。

下列 JSON 範例顯示了如何使用 awsIotSqlVersion 屬性來指定 SQL 版本。

{ "sql": "expression", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [{ "republish": { "topic": "my-mqtt-topic", "roleArn": "arn:aws:iam::123456789012:role/my-iot-role" } }] }

AWS IoT 目前支援下列 SQL 版本:

  • 2016-03-23:建立於 2016 年 3 月 23 日的 SQL 版本(推薦)。

  • 2015-10-08:建立於 2015 年 10 月 8 日的原始 SQL 版本。

  • beta:最新的 SQL 版本。此版本可能導致規則受到中段變更。

2016 年 3 月 23 日 SQL 規則引擎版本的新功能

  • 修正巢狀 JSON 物件的選取問題。

  • 修正陣列查詢的問題。

  • 支援物件內部查詢。如需詳細資訊,請參閱 巢狀物件查詢

  • 支援將陣列輸出為最上層物件。

  • 除了 encode(value, encodingScheme) 函數外,它也可以應用於 JSON 和非 JSON 格式資料。如需詳細資訊,請參閱編碼函數

輸出一個 Array 作為最上層物件

此功能可讓規則將陣列作為最上層物件傳回。舉例而言,若為以下的 MQTT 訊息:

{ "a": {"b":"c"}, "arr":[1,2,3,4] }

此外以下規則:

SELECT VALUE arr FROM 'topic'

該規則會產生以下輸出。

[1,2,3,4]