AWS IoT SQL リファレンス - AWS IoT Core

AWS IoT SQL リファレンス

AWS IoT では、ルールは SQL に似た構文を使用して定義されています。SQL ステートメントは 3 つのタイプの句で構成されます。

SELECT

必須。受信メッセージのペイロードから情報を抽出し、その情報に対して変換を実行します。使用するメッセージは、FROM 句で指定されたトピックフィルターによって識別されます。

SELECT 句は、データ型OperatorsFunctionsLiteralsCase ステートメントJSON 拡張置換テンプレートネストされたオブジェクトのクエリ、および バイナリペイロード をサポートしています。

FROM

データを抽出するメッセージを識別する MQTT メッセージトピックフィルター。ここで指定されたトピックフィルタに一致する MQTT トピックに送信されるメッセージごとに、ルールがトリガーされます。メッセージブローカーを通過するメッセージによってトリガーされるルールに必要です。基本的な取り込み機能を使用してのみ起動されるルールの場合はオプションです。

WHERE

(オプション) ルールで指定されたアクションが実行されるかどうかを決定する条件付きロジックを追加します。

WHERE 句は、データ型OperatorsFunctionsLiteralsCase ステートメントJSON 拡張置換テンプレートネストされたオブジェクトのクエリ をサポートしています。

SQL ステートメントの例は、次のようになります。

SELECT color AS rgb FROM 'topic/subtopic' WHERE temperature > 50

MQTT メッセージ (入力ペイロードとも呼ばれる) の例は、次のようになります。

{ "color":"red", "temperature":100 }

このメッセージが 'topic/subtopic' トピックに発行された場合、ルールはトリガーされ、SQL ステートメントは評価されます。SQL ステートメントでは、color プロパティが 50 より大きい場合は、"temperature" プロパティの値を抽出します。WHERE 句は、条件 temperature > 50 を指定します。AS キーワードは "color" プロパティの名前を "rgb" に変更します。結果は、(出力ペイロードとも呼ばれる) 次のようになります。

{ "rgb":"red" }

このデータは、さらなる処理のためにデータを送信するルールアクションに転送されます。ルールアクションの詳細については、「AWS IoT ルールアクション」を参照してください。