翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS IoT SQL リファレンス
では AWS IoT、ルールは SQL のような構文を使用して定義されます。SQL ステートメントは 3 つのタイプの句で構成されます。
- SELECT
-
(必須) 受信メッセージのペイロードから情報を抽出し、その情報に対して変換を実行します。使用するメッセージは、FROM 句で指定されたトピックフィルターによって識別されます。
SELECT 句は、データ型、演算子、関数、リテラル、Case ステートメント、JSON 拡張、置換テンプレート、ネストされたオブジェクトのクエリ、および バイナリペイロード をサポートしています。
- FROM
-
データを抽出するメッセージを識別する MQTT メッセージトピックフィルター。ここで指定されたトピックフィルタに一致する MQTT トピックに送信されるメッセージごとに、ルールがアクティブ化されます。メッセージブローカーを通過するメッセージによってアクティブ化されるルールに必要です。基本的な取り込み機能を使用してのみアクティブ化されるルールの場合はオプションです。
- WHERE
-
(オプション) ルールで指定されたアクションが実行されるかどうかを決定する条件付きロジックを追加します。
WHERE 句は、データ型、演算子、関数、リテラル、Case ステートメント、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 ルールアクション」を参照してください。
注記
コメントは現在、 AWS IoT SQL 構文ではサポートされていません。
空白を含む属性名は、SQL ステートメントのフィールド名として使用できません。受信ペイロードにはスペースを含む属性名を使用できますが、SQL ステートメントではそのような名前を使用できません。ただし、ワイルドカード (*) フィールド名指定を使用すると、送信ペイロードに渡されます。