メニュー
AWS IoT
開発者ガイド

関数

SQL 式の SELECT 句または WHERE 句では、以下の組み込み関数を使用できます。

abs(10 進数)

数値の絶対値を返します。SQL バージョン 2015-10-8 以降でサポートされています。

例: abs(-5) は 5 を返します。

引数の型 結果
Int Int、引数の絶対値。
Decimal Decimal、引数の絶対値。
Boolean Undefined
String Decimal。結果は、引数の絶対値です。文字列が変換できない場合、結果は Undefined です。
配列 Undefined
オブジェクト Undefined
Null Undefined
未定義 Undefined

accountid()

String としてこのルールを所有するアカウントの ID を返します。SQL バージョン 2015-10-8 以降でサポートされています。

例:

accountid() = "123456789012"

acos(10 進数)

数値の逆コサインをラジアンで返します。Decimal 因数は関数適用の前に倍精度に丸められます。SQL バージョン 2015-10-8 以降でサポートされています。

例: acos(0) = 1.5707963267948966

引数の型 結果
Int Decimal (倍精度で)、引数の逆コサイン。仮想上の結果は、Undefined として返されます。
Decimal Decimal (倍精度で)、引数の逆コサイン。仮想上の結果は、Undefined として返されます。
Boolean Undefined
String Decimal、引数の逆コサイン。文字列が変換できない場合、結果は Undefined です。仮想上の結果は、Undefined として返されます。
配列 Undefined
オブジェクト Undefined
Null Undefined
未定義 Undefined

asin(10 進数)

数値の逆サインをラジアンで返します。Decimal 因数は関数適用の前に倍精度に丸められます。SQL バージョン 2015-10-8 以降でサポートされています。

例: asin(0) = 0.0

引数の型 結果
Int Decimal (倍精度で)、引数の逆サイン。仮想上の結果は、Undefined として返されます。
Decimal Decimal (倍精度で)、引数の逆サイン。仮想上の結果は、Undefined として返されます。
Boolean Undefined
String Decimal (倍精度で)、引数の逆サイン。文字列が変換できない場合、結果は Undefined です。仮想上の結果は、Undefined として返されます。
配列 Undefined
オブジェクト Undefined
Null Undefined
未定義 Undefined

atan(10 進数)

数値の逆タンジェントをラジアンで返します。Decimal 因数は関数適用の前に倍精度に丸められます。SQL バージョン 2015-10-8 以降でサポートされています。

例: atan(0) = 0.0

引数の型 結果
Int Decimal (倍精度で)、引数の逆タンジェント。仮想上の結果は、Undefined として返されます。
Decimal Decimal (倍精度で)、引数の逆タンジェント。仮想上の結果は、Undefined として返されます。
Boolean Undefined
String Decimal、引数の逆タンジェント。文字列が変換できない場合、結果は Undefined です。仮想上の結果は、Undefined として返されます。
配列 Undefined
オブジェクト Undefined
Null Undefined
未定義 Undefined

atan2(10 進数、10 進数)

正の X 軸と 2 つの引数で定義された点 (x、y) の間の角度をラジアンで返します。 反時計回りの角度では正で (上半面、 y > 0)、時計回りの角度では負です (下反面、 y < 0)。Decimal 因数は関数適用の前に倍精度に丸められます。SQL バージョン 2015-10-8 以降でサポートされています。

例: atan2(1, 0) = 1.5707963267948966

引数の型 引数の型 結果
Int/Decimal Int/Decimal Decimal (倍精度で)、X 軸と 指定した点 (x、y) の間の角度。
Int/Decimal/String Int/Decimal/String Decimal、示された点の逆タンジェント。文字列が変換できない場合、結果は Undefined です。
その他の値 その他の値 Undefined

aws_lambda(functionArn, inputJson)

inputJson をラムダ関数に渡して指定された Lambda 関数を呼び出し、Lambda 関数で生成された JSON を返します。

引数

引数 説明
functionArn

呼び出す Lambda 関数の ARN。Lambda 関数は JSON データを返す必要があります。

inputJson

Lambda 関数に渡される JSON 入力です。

指定された Lambda 関数を呼び出すには、AWS IoT lambda:InvokeFunction の権限を付与する必要があります。次の例は、AWS CLI を使用して lambda:InvokeFunction 権限を付与する方法を示しています。

aws lambda add-permission --function-name "function_name" --region "region" --principal iot.amazonaws.com --source-arn arn:aws:iot:us-east-1:account_id:rule/rule_name --source-account "account_id" --statement-id "unique_id" --action "lambda:InvokeFunction"

以下は、add-permission コマンドの引数です。

--function-name

新しいアクセス権限を追加することでリソースポリシーを更新する Lambda 関数の名前。

--region

アカウントの AWS リージョン。

--principal

アクセス権限を取得するプリンシパル。Lambda 関数を呼び出すアクセス権限を AWS IoT に付与する場合は、iot.amazonaws.com を指定する必要があります。

--source-arn

ルールの ARN。ルールの ARN を取得するには、get-topic-rule という CLI コマンドを使用できます。

--source-account

ルールを定義している AWS アカウント。

--statement-id

一意のステートメント ID。

--action

このステートメントで許可する Lambda アクション。この場合は、AWS IoT に Lambda 関数の呼び出しを許可するため、lambda:InvokeFunction を指定します。

注記

ソース ARN を指定せずに AWS IoT プリンシパルにアクセス許可を追加した場合、Lambda アクションを使用してルールを作成するすべての AWS アカウントはルールをトリガーして、AWS IoT から Lambda 関数を呼び出せます。

詳細については、「Lambda のアクセス権限モデル」を参照してください。

次のルールは、aws_lambda 関数を呼び出す方法を示しています。

SELECT aws_lambda("arn:aws:lambda:us-east-1:account_id:function:lambda_function", payload.inner.element).some.value as output FROM 'a/b'

payload.inner.element は、'a/b' トピックでパブリッシュされたメッセージからデータを選択します。

some.value は、Lambda 関数によって生成された出力からデータを選択します。

注記

ルールエンジンは、Lambda 関数の実行時間を制限します。ルールからの Lambda 関数の呼び出しは、2000 ms 以内に完了する必要があります。

bitand(Int、Int)

2 つの Int (-converted) 引数のビット表現におけるビット単位の AND を実行します。SQL バージョン 2015-10-8 以降でサポートされています。

例: bitand(13, 5) = 5

引数の型 引数の型 結果
Int Int Int、2 つの引数のビット単位の AND。
Int/Decimal Int/Decimal Int、2 つの引数のビット単位の AND。すべての非 Int 数は、最も近い Int に切り下げられます。いずれかの引数が Int に変換できない場合、結果は Undefined です。
Int/Decimal/String Int/Decimal/String Int、2 つの引数のビット単位の AND。すべての文字列は Decimal に変換され、最も近い Int に切り下げれらます。変換が失敗した場合、結果は Undefined です。
その他の値 その他の値 Undefined

bitor(Int、Int)

2 つの引数のビット表現のビット単位の OR を実行します。SQL バージョン 2015-10-8 以降でサポートされています。

例: bitor(8, 5) = 13

引数の型 引数の型 結果
Int Int Int、2 つの引数のビット単位の OR。
Int/Decimal Int/Decimal Int、2 つの引数のビット単位の OR。すべての非 Int 数は、最も近い Int に切り下げられます。変換が失敗した場合、結果は Undefined です。
Int/Decimal/String Int/Decimal/String Int、2 つの引数におけるビット単位の OR。すべての文字列は Decimal に変換され、最も近い Int に切り下げられます。変換が失敗した場合、結果は Undefined です。
その他の値 その他の値 Undefined

bitxor(Int、Int)

2 つの Int (-converted) 引数のビット表現におけるビット単位の XOR を実行します。SQL バージョン 2015-10-8 以降でサポートされています。

例: bitor(13, 5) = 8

引数の型 引数の型 結果
Int Int Int、2 つの引数におけるビット単位の XOR。
Int/Decimal Int/Decimal Int、2 つの引数におけるビット単位の XOR。非 Int 数は、最も近い Int に切り下げられます。
Int/Decimal/String Int/Decimal/String Int、2 つの引数におけるビット単位の XOR。StringDecimal に変換され、最も近い Int に切り下げられます。いずれかの変換が失敗した場合、結果は Undefined です。
その他の値 その他の値 Undefined

bitnot(Int)

Int (-converted) 引数のビット表現におけるビット単位の NOT を実行します。SQL バージョン 2015-10-8 以降でサポートされています。

例: bitnot(13) = 2

引数の型 結果
Int Int、引数のビット単位の NOT。
Decimal Int、引数のビット単位の NOT。Decimal の値は、最も近い Int に切り下げられます。
String Int、引数のビット単位の NOT。StringDecimal に変換され、最も近い Int に切り下げられます。いずれかの変換が失敗した場合、結果は Undefined です。
その他の値 その他の値。

cast()

値を 1 つのデータ型から別のデータ型へ変換します。cast は通常の変換と同様に動作し、数値を Boolean へ/からキャストする追加機能があります。AWS IoT が 1 つの型から別の型へキャストする方法を特定できない場合、結果は Undefined です。SQL バージョン 2015-10-8 以降でサポートされています。形式: cast( as )。

例:

cast(true as Decimal) = 1.0

cast を呼び出す際、次のキーワードが「as」の後に表示される場合があります。

キーワード 結果
Decimal 値を Decimal へキャストします。
Bool 値を Boolean へキャストします。
Boolean 値を Boolean へキャストします。
String 値を String へキャストします。
Nvarchar 値を String へキャストします。
テキスト 値を String へキャストします。
Ntext 値を String へキャストします。
varchar 値を String へキャストします。
Int 値を Int へキャストします。
Int 値を Int へキャストします。

キャストのルール:

10 進数へのキャスト

引数の型 結果
Int 小数点のない Decimal
Decimal ソース値。
Boolean true = 1.0, false = 0.0.
String 文字列を Decimal として解析しようとします。正規表現 (^-?\d+(\) に当てはまる文字列を解析するよう試みます。\d+)?((?i)E-?\d+)?$.「0」「-1.2」「5E-12」はすべて自動的に Decimal に変換される String の例です。
配列 Undefined
オブジェクト Undefined
Null Undefined
未定義 Undefined

Int へのキャスト

引数の型 結果
Int ソース値。
Decimal 最も近い Int へ切り下げられたソース値。
Boolean true = 1.0, false = 0.0.
String 文字列を Decimal として解析しようとします。正規表現 (^-?\d+(\) に当てはまる文字列を解析するよう試みます。\d+)?((?i)E-?\d+)?$.「0」「-1.2」「5E-12」はすべて自動的に Decimal に変換される String の例です。文字列を Decimal に変換するよう試み、最も近い Int へ切り下げます。
配列 Undefined
オブジェクト Undefined
Null Undefined
未定義 Undefined

Boolean へのキャスト

引数の型 結果
Int 0 = False, any_nonzero_value = True.
Decimal 0 = False, any_nonzero_value = True.
Boolean ソース値。
String "true" = True および "false" = False (大文字小文字の区別なし)。その他の文字列値 = Undefined
配列 Undefined
オブジェクト Undefined
Null Undefined
未定義 Undefined

文字列へのキャスト

引数の型 結果
Int Int の文字列表現、標準表記。
Decimal おそらく科学的表記での Decimal 値の文字列表現。
Boolean 「true」または「false」、すべて小文字。
String "true"=True および "false"=False (大文字小文字の区別なし)。その他の文字列値 = Undefined
配列 JSON へシリアル化された配列。結果の文字列は角括弧で囲まれたカンマ区切りのリストです。String は引用符で囲まれています。DecimalIntBoolean、は引用符で囲まれていません。
オブジェクト JSON にシリアル化されたオブジェクト。JSON 文字列はキーと値のペアのカンマ区切りのリストで、最初と最後に中括弧があります。String は引用符で囲まれています。DecimalsIntBooleanNull は引用符で囲まれていません。
Null Undefined
未定義 Undefined

ceil(10 進数)

指定の Decimal を最も近い Int に切り上げます。SQL バージョン 2015-10-8 以降でサポートされています。

例:

ceil(1.2) = 2

ceil(11.2) = -1

引数の型 結果
Int Int、引数値。
Decimal Int、最も近い Int へ切り上げられたDecimal 値。
String Int。文字列は Decimal に変換され、最も近い Int へ切り上げられます。文字列が Decimal に変換できない場合、結果は Undefined です。
その他の値 Undefined

chr(文字列)

指定の Int 引数に対応する ASCII 文字を返します。SQL バージョン 2015-10-8 以降でサポートされています。

例:

chr(65) = "A".

chr(49) = "1".

引数の型 結果
Int 指定された ASCII 値に対応する文字。引数が有効な ASCII 値でない場合、結果は Undefined です。
Decimal 指定された ASCII 値に対応する文字。Decimal 引数は、最も近い Int に切り下げられます。引数が有効な ASCII 値でない場合、結果は Undefined です。
Boolean Undefined
String StringDecimal に変換できる場合、最も近い Int に切り下げられます。引数が有効な ASCII 値でない場合、結果は Undefined です。
配列 Undefined
オブジェクト Undefined
Null Undefined
その他の値 Undefined

clientid()

メッセージを送信している MQTT クライアントの ID を返すか、または、メッセージが MQTT クライアント経由で送られていない場合は、n/a を返します。SQL バージョン 2015-10-8 以降でサポートされています。

例:

clientid() = "123456789012"

concat()

配列または文字列を連結します。この関数は、任意の数の引数を受け取り、String または Array を返します。SQL バージョン 2015-10-8 以降でサポートされています。

例:

concat() = Undefined.

concat(1) = "1".

concat([1, 2, 3], 4) = [1, 2, 3, 4].

concat([1, 2, 3], "hello") = [1, 2, 3, "hello"]

concat("con", "cat") = "concat"

concat(1, "hello") = "1hello"

concat("he","is","man") = "heisman"

concat([1, 2, 3], "hello", [4, 5, 6]) = [1, 2, 3, "hello", 4, 5, 6]

引数の数 結果
0 Undefined
1 引数は変更されずに返されます。
2+

引数が Array の場合、結果はすべての引数を含む 1 つの配列です。どの引数も Array ではなく、少なくとも 1 つの引数が String の場合、結果はすべての引数の String 表現の連結です。引数は、上のリストにある標準変換を使用して、String に変換されます。

cos(10 進数)

数値のコサインをラジアンで返します。Decimal 因数は関数適用の前に倍精度に丸められます。SQL バージョン 2015-10-8 以降でサポートされています。

例:

cos(0) = 1.

引数の型 結果
Int Decimal (倍精度で)、引数のコサイン。仮想上の結果は、Undefined として返されます。
Decimal Decimal (倍精度で)、引数のコサイン。仮想上の結果は、Undefined として返されます。
Boolean Undefined
String Decimal (倍精度で)、引数のコサイン。文字列が Decimal に変換できない場合、結果は Undefined です。仮想上の結果は、Undefined として返されます。
配列 Undefined
オブジェクト Undefined
Null Undefined
未定義 Undefined

cosh(10 進数)

数値のハイパーボリックコサインをラジアンで返します。Decimal 因数は関数適用の前に倍精度に丸められます。SQL バージョン 2015-10-8 以降でサポートされています。

例: cosh(2.3) = 5.037220649268761。

引数の型 結果
Int Decimal (倍精度で)、引数のハイパーボリックコサイン。仮想上の結果は、Undefined として返されます。
Decimal Decimal (倍精度で)、引数のハイパーボリックコサイン。仮想上の結果は、Undefined として返されます。
Boolean Undefined
String Decimal (倍精度で)、引数のハイパーボリックコサイン。文字列が Decimal に変換できない場合、結果は Undefined です。仮想上の結果は、Undefined として返されます。
配列 Undefined
オブジェクト Undefined
Null Undefined
未定義 Undefined

encode(value, encodingScheme)

エンコードスキームに基づいて、ペイロード (非 JSON データの場合もある) を文字列表現にエンコードするには、encode 関数を使用します。SQL バージョン 2016-03-23 以降でサポートされています。

value

AWS IoT SQL リファレンス で定義されている任意の有効な式。さらに、JSON 形式かどうかに関係なくペイロード全体をエンコードするには、* を指定できます。式を指定した場合は、まず評価の結果が文字列に変換され、その後でエンコードされます。

encodingScheme

使用するエンコードスキームを表すリテラル文字列。現在は、'base64' のみがサポートされます。

endswith(文字列、文字列)

Boolean を返し、最初の String 引数が 2 番目の String 引数で終わるかどうかを示します。どちらかの引数が Null または Undefined の場合、結果は Undefined です。SQL バージョン 2015-10-8 以降でサポートされています。

例: endswith("cat","at") = true。

引数の型 1 引数の型 2 結果
String String 最初の引数が 2 番目の引数で終わる場合は true、それ以外の場合は false。
その他の値 その他の値 両方の引数は標準変換のルールを使用して String に変換されます。最初の引数が 2 番目の引数で終わる場合は true、それ以外の場合は false。どちらかの引数が Null または Undefined の場合、結果は Undefined です。

exp(10 進数)

e を Decimal 引数の累乗にして返します。Decimal 因数は関数適用の前に倍精度に丸められます。SQL バージョン 2015-10-8 以降でサポートされています。

例: exp(1) = e。

引数の型 結果
Int Decimal(倍精度で)、e ^ 引数。
Decimal Decimal(倍精度で)、e ^ 引数。
String Decimal (倍精度で)、e ^ 引数。StringDecimal に変換できない場合、結果は Undefined です。
その他の値 Undefined

get

コレクションのような型から値を抽出します (配列、文字列、オブジェクト)。最初の引数に変換は適用されません。テーブルで説明されているように、変換は 2 番目の引数に適用されます。SQL バージョン 2015-10-8 以降でサポートされています。

例:

get(["a", "b", "c"], 1) = "b"

get({"a":"b"}, "a") = "b"

get("abc", 1) = "b"

引数の型 1 引数の型 2 結果
配列 Any Type (Int に変換) 2 番目の引数により提供される Array のゼロベースインデックスの項目 (Int に変換)。変換が失敗した場合、結果は Undefined です。インデックスが Array の境界の外にある場合 (negative or >= array.length)、結果は Undefined です。
文字列 Any Type (Int に変換) 2 番目の引数により提供される文字列のゼロベースインデックスの文字 (Int に変換)。変換が失敗した場合、結果は Undefined です。インデックスが文字列の境界の外にある場合 (negative or >= string.length)、結果は Undefined です。
オブジェクト String (変換の適用なし) 2 番目の引数として提供される文字列キーに対応する最初の引数のオブジェクトに保存されている値。
その他の値 任意の値 Undefined

get_thing_shadow(thingName, roleARN)

指定されたモノの Shadow を返します。SQL バージョン 2016-03-23 以降でサポートされています。

thingName

文字列: シャドウを取得する対象のモノの名前。

roleArn

文字列: iot:GetThingShadow アクセス権限を持つロール ARN。

例:

SELECT * from 'a/b'

WHERE get_thing_shadow("MyThing","arn:aws:iam::123456789012:role/AllowsThingShadowAccess") .state.reported.alarm = 'ON'

ハッシュ関数

AWS IoT は次のハッシュ関数を提供します。

  • md2

  • md5

  • sha1

  • sha224

  • sha256

  • sha384

  • sha512

1 つの文字列引数を除くすべてのハッシュ関数。結果はその文字列のハッシュ値です。標準文字列変換は非文字列引数に適用されます。すべてのハッシュ関数は、SQL バージョン 2015-10-8 以降でサポートされます。

例:

md2("hello") = "a9046c73e00331af68917d3804f70655"

md5("hello") = "5d41402abc4b2a76b9719d911017c592"

indexof(文字列、文字列)

最初の引数のサブ文字列として、2 番目の引数の最初のインデックス (ゼロベース) を返します。両方の引数は文字列であることが期待されます。文字列ではない引数は、標準文字列変換ルールに従います。この関数は、配列にではなく、文字列にのみ適用されます。SQL バージョン 2015-10-8 以降でサポートされています。

例:

indexof("abcd", "bc") = 1

isNull()

引数が Null 値かどうかを返します。SQL バージョン 2015-10-8 以降でサポートされています。

例:

isNull(5) = false.

isNull(Null) = true.

引数の型 結果
Int false
Decimal false
Boolean false
String false
Array false
Object false
Null true
Undefined false

isUndefined()

引数が Undefined かどうかを返します。SQL バージョン 2015-10-8 以降でサポートされています。

例:

isUndefined(5) = false.

isNull(floor([1,2,3]))) = true.

引数の型 結果
Int false
Decimal false
Boolean false
String false
Array false
Object false
Null false
Undefined true

length(文字列)

指定された文字列の文字数を返します。標準変換ルールは、非 String 引数に適用されます。SQL バージョン 2015-10-8 以降でサポートされています。

例:

length("hi") = 2

length(false) = 5

ln(10 進数)

引数の自然対数を返します。Decimal 因数は関数適用の前に倍精度に丸められます。SQL バージョン 2015-10-8 以降でサポートされています。

例: ln(e) = 1。

引数の型 結果
Int Decimal (倍精度で)、引数の自然対数。
Decimal Decimal (倍精度で)、引数の自然対数。
Boolean Undefined
String Decimal (倍精度で)、引数の自然対数。文字列が Decimal に変換できない場合、結果は Undefined です。
配列 Undefined
オブジェクト Undefined
Null Undefined
未定義 Undefined

log(10 進数)

引数の 10 を底とする対数を返します。Decimal 因数は関数適用の前に倍精度に丸められます。SQL バージョン 2015-10-8 以降でサポートされています。

例: log(100) = 2.0。

引数の型 結果
Int Decimal (倍精度で)、引数の 10 を底とした対数。
Decimal Decimal (倍精度で)、引数の 10 を底とした対数。
Boolean Undefined
String Decimal (倍精度で)、引数の 10 を底とした対数。StringDecimal に変換できない場合、結果は Undefined です。
配列 Undefined
オブジェクト Undefined
Null Undefined
未定義 Undefined

lower(文字列)

指定した String の小文字バージョンを返します。非文字列引数は標準変換ルールを使用して String に変換されます。SQL バージョン 2015-10-8 以降でサポートされています。

例:

lower("HELLO") = "hello"。

lower(["HELLO"]) = "[\"hello\"]"。

lpad(文字列、Int)

2 番目の引数で指定された数のスペースを左詰めにした String 引数を返します。Int 引数は、0 ~ 1000 の間である必要があります。提供された値がこの有効な範囲の外にある場合は、引数は最も近い有効な値に設定されます (0 または 1000)。SQL バージョン 2015-10-8 以降でサポートされています。

例:

lpad("hello", 2) = " hello"。

lpad(1, 3) = " 1"

引数の型 1 引数の型 2 結果
String Int String、提供された Int と同じ数のスペースを左詰めにして提供された String
String Decimal Decimal 引数は最も近い Int に切り下げられ、String には指定された数のスペースを左詰めにします。
String String 2 番目の引数は Decimal に変換され、最も近い Int に切り下げられます。また、String には指定された数のスペースが左詰めにされます。2 番目の引数が Int に変換できない場合、結果は Undefined です。
その他の値 Int/Decimal/String 最初の値は、標準変換ルールを使用して String に変換された後、LPAD 関数がその String に適用されます。それが変換できない場合、結果は Undefined です。
任意の値 その他の値 Undefined

ltrim(文字列)

提供される String から先頭の空白 (タブとスペース) をすべて削除します。SQL バージョン 2015-10-8 以降でサポートされています。

例:

Ltrim(" h i ") = "hi "。

引数の型 結果
Int 先頭の空白がすべて削除された IntString 表現。
Decimal 先頭の空白がすべて削除された DecimalString 表現。
Boolean 先頭の空白がすべて削除されたブール (「true」または「false」) の String 表現。
String 先頭の空白がすべて削除された引数。
配列 先頭の空白がすべて削除された ArrayString 表現 (標準変換ルールを使用)。
オブジェクト 先頭の空白がすべて削除されたオブジェクトの String 表現 (標準変換ルールを使用)。
Null Undefined
未定義 Undefined

machinelearning_predict(modelId)

Amazon Machine Learning (Amazon ML) モデルに基づいて、MQTT メッセージからのデータを使用して予測を行うには、machinelearning_predict 関数を使用します。SQL バージョン 2015-10-8 以降でサポートされています。machinelearning_predict 関数の引数は次のとおりです。

modelId

予測を実行する対象となるモデルの ID。このモデルのリアルタイムエンドポイントを有効にしておく必要があります。

roleArn

machinelearning:Predict アクセス権限および machinelearning:GetMLModel アクセス権限を許可するポリシーが指定され、予測を実行する対象となるモデルへのアクセスを許可する IAM ロール。

record

Amazon ML Predict API に渡されるデータ。単一レイヤーの JSON オブジェクトとして表す必要があります。record が複数レベルの JSON オブジェクトの場合は、値のシリアル化によって平坦化されます。たとえば、次の JSON の場合:

{ "key1": {"innerKey1": "value1"}, "key2": 0}

次のようになります。

{ "key1": "{\"innerKey1\": \"value1\"}", "key2": 0}

この関数では、次のフィールドを持つ JSON オブジェクトが返されます。

predictedLabel

モデルに基づく入力の区分。

details

次の属性が含まれています。

PredictiveModelType

モデルのタイプ。有効な値は、REGRESSION、BINARY、MULTICLASS です。

Algorithm

予測を行うために Amazon ML で使用されるアルゴリズム。この値は SGD にする必要があります。

predictedScores

各ラベルに対応する、未加工の分類スコアを格納します。

predictedValue

Amazon ML によって予測された値。

mod(10 進数、10 進数)

最初の引数を 2 番目の引数で割ったときの剰余を返します。SQL バージョン 2015-10-8 以降でサポートされています。同じモジュロ機能に挿入演算子として「%」も使用できます。SQL バージョン 2015-10-8 以降でサポートされています。

例: mod(8, 3) = 2。

左のオペランド 右のオペランド 出力
Int Int Int、最初の引数を 2 番目の引数で割ったときの剰余。
Int/Decimal Int/Decimal Decimal、最初の引数を 2 番目のオペランドで割ったときの剰余。
String/Int/Decimal String/Int/Decimal すべての文字列を Decimal に変換した場合、結果は、最初の引数を 2 番目の引数で割ったときの剰余です。それ以外の場合は、Undefined です。
その他の値 その他の値 Undefined

nanvl(AnyValue, AnyValue)

最初の引数が有効な Decimal ならば、最初の引数が返されます。それ以外の場合、2 番目の引数が返されます。SQL バージョン 2015-10-8 以降でサポートされています。

例: Nanvl(8, 3) = 8。

引数の型 1 引数の型 2 出力
未定義 任意の値 2 番目の引数。
Null 任意の値 2 番目の引数。
Decimal (NaN) 任意の値 2 番目の引数。
Decimal (not NaN) 任意の値 最初の引数。
その他の値 任意の値 最初の引数。

newuuid()

16 バイトのランダムな UUID を返します。SQL バージョン 2015-10-8 以降でサポートされています。

例: newuuid() = 123a4567-b89c-12d3-e456-789012345000

numbytes(文字列)

指定された文字列の UTF-8 エンコードのバイト数を返します。標準変換ルールは、非 String 引数に適用されます。SQL バージョン 2015-10-8 以降でサポートされています。

例:

numbytes("hi") = 2

numbytes("€") = 3

principal()

デバイスからリクエストを受け取ったエンドポイント (MQTT または HTTP) に応じて、X.509 証明書のフィンガープリント、またはモノの名前を返します。SQL バージョン 2015-10-8 以降でサポートされています。

例:

principal() = "ba67293af50bf2506f5f93469686da660c7c844e7b3950bfb16813e0d31e9373"

parse_time(String, Long, [String])

parse_time 機能を使用して、タイムスタンプを人間が判読可能な日付/時刻形式にフォーマットします。SQL バージョン 2016-03-23 以降でサポートされています。parse_time 関数の引数は次のとおりです。

pattern

(文字列) ISO 8601 標準フォーマットに準拠する日付/時刻パターン。(具体的には、この関数は、「Joda-Time のフォーマット」をサポートしています)。

timestamp

(ロング) Unix エポックからミリ秒単位でフォーマットされる時間。関数「timestamp()」を参照してください。

timezone

(文字列) (オプション) フォーマットされた日付/時刻のタイムゾーン。デフォルトは「UTC」です。この関数は、「Joda-Time のタイムゾーン」をサポートしています。

例:

このメッセージがトピック「A/B」に公開されると、ペイロード {"ts": "1970.01.01 AD at 21:46:40 CST"} が S3 バケットに送信されます。

{ "ruleArn": "arn:aws:iot:us-east-2:ACCOUNT_ID:rule/RULE_NAME", "rule": { "awsIotSqlVersion": "2016-03-23", "sql": "SELECT parse_time("yyyy.MM.dd G 'at' HH:mm:ss z", 100000000, "America/Belize" ) as ts FROM 'A/B'", "ruleDisabled": false, "actions": [ { "s3": { "roleArn": "arn:aws:iam::ACCOUNT_ID:rule:role/ROLE_NAME", "bucketName": "BUCKET_NAME", "key": "KEY_NAME" } } ], "ruleName": "RULE_NAME" } }

このメッセージがトピック「A/B」に公開されると、{"ts": "2017.06.09 AD at 17:19:46 UTC"} (ただし、現在の日付/時刻) と同様のペイロードが S3 バケットに送信されます。

{ "ruleArn": "arn:aws:iot:us-east-2:ACCOUNT_ID:rule/RULE_NAME", "rule": { "awsIotSqlVersion": "2016-03-23", "sql": "SELECT parse_time("yyyy.MM.dd G 'at' HH:mm:ss z", timestamp() ) as ts FROM 'A/B'", "ruleDisabled": false, "actions": [ { "s3": { "roleArn": "arn:aws:iam::ACCOUNT_ID:rule:role/ROLE_NAME", "bucketName": "BUCKET_NAME", "key": "KEY_NAME" } } ], "ruleName": "RULE_NAME" } }

parse_time() は、代替テンプレートとしても使用できます。たとえば、このメッセージがトピック「A/B」に公開されると、ペイロードは S3 バケットに key = 「2017」で送信されます。

{ "ruleArn": "arn:aws:iot:us-east-2:ACCOUNT_ID:rule/RULE_NAME", "rule": { "awsIotSqlVersion": "2016-03-23", "sql": "SELECT * FROM 'A/B'", "ruleDisabled": false, "actions": [ { "s3": { "roleArn": "arn:aws:iam::ACCOUNT_ID:rule:role/ROLE_NAME", "bucketName": BUCKET_NAME, "key": "${parse_time("yyyy", timestamp(), "UTC")}" } } ], "ruleName": "RULE_NAME" } }

power(10 進数、10 進数)

最初の引数を 2 番目の引数の累乗にして返します。Decimal 因数は関数適用の前に倍精度に丸められます。SQL バージョン 2015-10-8 以降でサポートされています。SQL バージョン 2015-10-8 以降でサポートされています。

例: power(2, 5) = 32.0。

引数の型 1 引数の型 2 出力
Int/Decimal Int/Decimal Decimal(倍精度で)、最初の引数を 2 番目の引数の累乗にします。
Int/Decimal/String Int/Decimal/String Decimal(倍精度で)、最初の引数を 2 番目の引数の累乗にします。すべての文字列は Decimal に変換されます。いずれかの StringDecimal への変換に失敗したら、結果は Undefined です。
その他の値 その他の値 Undefined

rand()

0.0 から 1.0 までの間で疑似ランダムで、均等に分散された倍を返します。SQL バージョン 2015-10-8 以降でサポートされます。

例:

rand() = 0.8231909191640703

regexp_matches(文字列、文字列)

最初の引数が 2 番目の引数に一致するものを含んでいるかどうかを返します (正規表現)。

例:

Regexp_matches("aaaa", "a{2,}") = true.

Regexp_matches("aaaa", "b") = false.

最初の引数:

引数の型 結果
Int IntString 表現。
Decimal DecimalString 表現。
Boolean ブール (「true」または「false」) の String 表現。
String String
配列 ArrayString 表現 (標準変換ルールを使用)。
オブジェクト オブジェクトの String 表現 (標準変換ルールを使用)。
Null Undefined
未定義 Undefined

2 番目の引数:

有効な正規表現の式である必要があります。非文字列型は標準変換ルールを使用して String に変換されます。型により、結果として生じる文字列が有効な正規表現である場合も、そうではない場合もあります。(変換された) 引数が有効な正規表現でない場合、結果は Undefined です。

3 番目の引数:

有効な正規表現の置換文字列である必要があります。(キャプチャグループを参照できます。)非文字列型は標準変換ルールを使用して String に変換されます。(変換された) 引数が有効な正規表現の置換文字列でない場合、結果は Undefined です。

regexp_replace(文字列、文字列、文字列)

最初の引数にある 2 番目の引数 (正規表現) の出現すべてを 3 番目の引数で置き換えます。「$」でキャプチャグループを参照します。SQL バージョン 2015-10-8 以降でサポートされています。

例:

Regexp_replace("abcd", "bc", "x") = "axd"。

Regexp_replace("abcd", "b(.*)d", "$1") = "ac".

最初の引数:

引数の型 結果
Int IntString 表現。
Decimal DecimalString 表現。
Boolean ブール (「true」または「false」) の String 表現。
String ソース値。
配列 ArrayString 表現 (標準変換ルールを使用)。
オブジェクト オブジェクトの String 表現 (標準変換ルールを使用)。
Null Undefined
未定義 Undefined

2 番目の引数:

有効な正規表現の式である必要があります。非文字列型は標準変換ルールを使用して String に変換されます。型により、結果として生じる文字列が有効な正規表現である場合も、そうではない場合もあります。(変換された) 引数が有効な正規表現でない場合、結果は Undefined です。

3 番目の引数:

有効な正規表現の置換文字列である必要があります。(キャプチャグループを参照できます。)非文字列型は標準変換ルールを使用して String に変換されます。(変換された) 引数が有効な正規表現の置換文字列でない場合、結果は Undefined です。

regexp_substr(文字列、文字列)

最初のパラメーターにある 2 番目のパラメーター (正規表現) の最初の一致を見つけます。「$」でキャプチャグループを参照します。SQL バージョン 2015-10-8 以降でサポートされています。

例:

regexp_substr("hihihello", "hi") => "hi"

regexp_substr("hihihello", "(hi)*") => "hihi".

最初の引数:

引数の型 結果
Int IntString 表現。
Decimal DecimalString 表現。
Boolean ブール (「true」または「false」) の String 表現。
String String引数。
配列 ArrayString 表現 (標準変換ルールを使用)。
オブジェクト オブジェクトの String 表現 (標準変換ルールを使用)。
Null Undefined
未定義 Undefined

2 番目の引数:

有効な正規表現の式である必要があります。非文字列型は標準変換ルールを使用して String に変換されます。型により、結果として生じる文字列が有効な正規表現である場合も、そうではない場合もあります。(変換された) 引数が有効な正規表現でない場合、結果は Undefined です。

3 番目の引数:

有効な正規表現の置換文字列である必要があります。(キャプチャグループを参照できます。)非文字列型は標準変換ルールを使用して String に変換されます。引数が有効な正規表現の置換文字列でない場合、結果は Undefined です。

rpad(文字列、Int)

2 番目の引数で指定された数のスペースを右詰めにした文字列の引数を返します。Int 引数は、0 ~ 1000 の間である必要があります。提供された値がこの有効な範囲の外にある場合は、引数は最も近い有効な値に設定されます (0 または 1000)。SQL バージョン 2015-10-8 以降でサポートされています。

例:

rpad("hello", 2) = "hello "。

rpad(1, 3) = "1 ".

引数の型 1 引数の型 2 結果
String Int String は、提供された Int と同じ数のスペースを右詰めにされています。
String Decimal Decimal 引数は最も近い Int に切り下げられ、文字列は、提供された Int と同じ数のスペースを右詰めにされています。
String String 2 番目の引数は Decimal に変換され、最も近い Int に切り下げられます。String は、Int 値と同じ数のスペースを右詰めにされています。
その他の値 Int/Decimal/String 最初の値は、標準変換ルールを使用して String に変換され、RPAD 関数がその String に適用されます。それが変換できない場合、結果は Undefined です。
任意の値 その他の値 Undefined

round(10 進数)

指定の Decimal を最も近い Int に丸めます。Decimal が 2 つの Int 値と等距離である場合 (例: 0.5)、Decimal は丸められます。SQL バージョン 2015-10-8 以降でサポートされています。

例: Round(1.2) = 1。

Round(1.5) = 2.

Round(1.7) = 2.

Round(-1.1) = -1.

Round(-1.5) = -2.

引数の型 結果
Int 引数。
Decimal Decimal は、最も近い Int に切り下げられます。
String Decimal は、最も近い Int に切り下げられます。文字列が Decimal に変換できない場合、結果は Undefined です。
その他の値 Undefined

rtrim(文字列)

提供される String から末尾の空白 (タブとスペース) をすべて削除します。SQL バージョン 2015-10-8 以降でサポートされています。

例:

rtrim(" h i ") = " h i"

引数の型 結果
Int IntString 表現。
Decimal DecimalString 表現。
Boolean ブール (「true」または「false」) の String 表現。
配列 ArrayString 表現 (標準変換ルールを使用)。
オブジェクト オブジェクトの String 表現 (標準変換ルールを使用)。
Null Undefined
未定義 Undefined

sign(10 進数)

指定された数値の符号を返します。引数の符号が正の場合、1 を返します。引数の符号が負の場合、-1 を返します。引数が 0 の場合、0 を返します。SQL バージョン 2015-10-8 以降でサポートされています。

例:

sign(-7) = -1.

sign(0) = 0。

sign(13) = 1.

引数の型 結果
Int IntInt の値の符号。
Decimal IntDecimal の値の符号。
String IntDecimal の値の符号。文字列は Decimal の値に変換され、Decimal の値の符号が返されます。StringDecimal に変換できない場合、結果は Undefined です。SQL バージョン 2015-10-8 以降でサポートされています。
その他の値 Undefined

sin(10 進数)

数値のサインをラジアンで返します。Decimal 因数は関数適用の前に倍精度に丸められます。SQL バージョン 2015-10-8 以降でサポートされています。

例: sin(0) = 0.0

引数の型 結果
Int Decimal (倍精度で)、引数のサイン。
Decimal Decimal (倍精度で)、引数のサイン。
Boolean Undefined
String Decimal (倍精度で)、引数のサイン。文字列が Decimal に変換できない場合、結果は Undefined です。
配列 Undefined
オブジェクト Undefined
Null Undefined
Undefined Undefined

sinh(10 進数)

数値のハイパーボリックサインを返します。Decimal 値は関数適用の前に倍精度に丸められます。結果は倍精度の Decimal 値です。SQL バージョン 2015-10-8 以降でサポートされています。

例: sinh(2.3) = 4.936961805545957

引数の型 結果
Int Decimal (倍精度で)、引数のハイパーボリックサイン。
Decimal Decimal (倍精度で)、引数のハイパーボリックサイン。
Boolean Undefined
String Decimal (倍精度で)、引数のハイパーボリックサイン。文字列が Decimal に変換できない場合、結果は Undefined です。
配列 Undefined
オブジェクト Undefined
Null Undefined
未定義 Undefined

substring(文字列、Int [, Int])

1 つか 2 つの Int 値が続く String を予想します。String および単一の Int 引数では、この関数は提供された Int インデックス (ゼロベース、包括) から String の端までの提供された String のサブストリングを返します。String および 2 つの Int 引数では、この関数は、最初の Int インデックス引数 (ゼロベース、包括) から 2 番目の Int インデックス引数 (ゼロベース、除外) までの提供された String のサブストリングを返します。ゼロ以下のインデックスはゼロに設定されます。String の長さを超過するインデックスは String の長さに設定されます。3 つの引数バージョンでは、最初のインデックスが 2 番目インデックスより大きい (または等しい) 場合、結果は空の String です。

提供された引数が (StringInt)、または (StringIntInt) でなければ、引数に標準変換が適用され、正しい型に変換する試みがなされます。型が変換できない場合、関数の結果は Undefined です。SQL バージョン 2015-10-8 以降でサポートされています。

例:

substring("012345", 0) = "012345".

substring("012345", 2) = "2345".

substring("012345", 2.745) = "2345".

substring(123, 2) = "3".

substring("012345", -1) = "012345".

substring(true, 1.2) = "rue".

substring(false, -2.411E247) = "false".

substring("012345", 1, 3) = "12".

substring("012345", -50, 50) = "012345".

substring("012345", 3, 1) = "".

sqrt(10 進数)

数値の平方根を返します。Decimal 因数は関数適用の前に倍精度に丸められます。SQL バージョン 2015-10-8 以降でサポートされています。

例: sqrt(9) = 3.0。

引数の型 結果
Int 引数の平方根
Decimal 引数の平方根
Boolean Undefined
String 引数の平方根。文字列が Decimal に変換できない場合、結果は Undefined です。
配列 Undefined
オブジェクト Undefined
Null Undefined
未定義 Undefined

startswith(文字列、文字列)

最初の文字列引数が 2 番目の文字列引数で始まるかどうか、Boolean を返します。どちらかの引数が Null または Undefined の場合、結果は Undefined です。SQL バージョン 2015-10-8 以降でサポートされています。

例:

startswith("ranger","ran") = true

引数の型 1 引数の型 2 結果
String String 最初の文字列が 2 番目の文字列で始まるかどうか。
その他の値 その他の値 両方の引数は標準変換のルールを使用して String に変換されます。最初の文字列が 2 番目の文字列で始まるかどうかを返します。どちらかの引数が Null または Undefined の場合、結果は Undefined です。

tan(10 進数)

数値のタンジェントをラジアンで返します。Decimal 値は関数適用の前に倍精度に丸められます。SQL バージョン 2015-10-8 以降でサポートされています。

例: tan(3) = -0.1425465430742778

引数の型 結果
Int Decimal (倍精度で)、引数のタンジェント。
Decimal Decimal (倍精度で)、引数のタンジェント。
Boolean Undefined
String Decimal (倍精度で)、引数のタンジェント。文字列が Decimal に変換できない場合、結果は Undefined です。
配列 Undefined
オブジェクト Undefined
Null Undefined
未定義 Undefined

tanh(10 進数)

数値のハイパーボリックタンジェントをラジアンで返します。Decimal 値は関数適用の前に倍精度に丸められます。SQL バージョン 2015-10-8 以降でサポートされています。

例: tanh(2.3) = 0.9800963962661914

引数の型 結果
Int Decimal (倍精度で)、引数のハイパーボリックタンジェント。
Decimal Decimal (倍精度で)、引数のハイパーボリックタンジェント。
Boolean Undefined
String Decimal (倍精度で)、引数のハイパーボリックタンジェント。文字列が Decimal に変換できない場合、結果は Undefined です。
配列 Undefined
オブジェクト Undefined
Null Undefined
未定義 Undefined

timestamp()

協定世界時 (UTC) の 1970 年 1 月 1 日 00:00:00 から、AWS IoT ルールエンジンの観測に従い、ミリ秒単位で現在のタイムスタンプを返します。SQL バージョン 2015-10-8 以降でサポートされています。

例: timestamp() = 1481825251155

topic(10 進数)

ルールをトリガーしたメッセージが送信されたトピックを返します。パラメーターが指定されていない場合、トピック全体が返されます。Decimal パラメーターを使用して、特定の 1 つの基本トピックのセグメントを指定します。foo/bar/baz トピックでは、topic(1) は foo を返し、topic(2) は bar を返す、と続いていきます。SQL バージョン 2015-10-8 以降でサポートされています。

例:

topic() = "things/myThings/thingOne"

topic(1) = "things"

traceid()

MQTT メッセージのトレース ID (UUID) を返すか、または、メッセージが MQTT 経由で送信されなかった場合は Undefined を返します。SQL バージョン 2015-10-8 以降でサポートされています。

例:

traceid() = "12345678-1234-1234-1234-123456789012"

trunc(10 進数、Int)

2 番目の引数で指定された Decimal の場所の数で最初の引数を切り捨てます。2 番目の引数がゼロよりより少ない場合は、ゼロに設定されます。2 番目の引数が 34 より大きい場合は、34 に設定されます。末尾のゼロは結果から省かれます。SQL バージョン 2015-10-8 以降でサポートされています。

例:

trunc(2.3, 0) = 2.

trunc(2.3123, 2 = 2.31.

trunc(2.888, 2) = 2.88.

(2.00, 5) = 2.

引数の型 1 引数の型 2 結果
Int Int ソース値。
Int/Decimal Int/Decimal 最初の引数は 2 番目の引数で説明された長さに切り捨てられます。2 番目の引数は、Int でなければ、最も近い Int に切り下げられます。
Int/Decimal/String 最初の引数は 2 番目の引数で説明された長さに切り捨てられます。2 番目の引数は、Int でなければ、最も近い Int に切り下げられます。StringDecimal 値に変換されます。文字列変換が失敗した場合、結果は Undefined です。
その他の値 Undefined

trim(文字列)

提供された String から、すべての先頭および末尾の空白を削除します。SQL バージョン 2015-10-8 以降でサポートされています。

例:

Trim(" hi ") = "hi"

引数の型 結果
Int すべての先頭および末尾の空白が削除された IntString 表現。
Decimal すべての先頭および末尾の空白が削除された DecimalString 表現。
Boolean すべての先頭および末尾の空白が削除された Boolean(「true」または「false」) の String 表現。
String すべての先頭および末尾の空白が削除された String
配列 標準変換ルールを使用した ArrayString 表現。
オブジェクト 標準変換ルールを使用したオブジェクトの String 表現。
Null Undefined
未定義 Undefined

upper(文字列)

指定した String の大文字バージョンを返します。非 String 引数は標準変換のルールを使用して String に変換されます。SQL バージョン 2015-10-8 以降でサポートされています。

例:

upper("hello") = "HELLO"

upper(["hello"]) = "[\"HELLO\"]"