Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Fonctions
Vous pouvez utiliser les fonctions intégrées suivantes dans les WHERE clauses SELECT ou de vos SQL expressions.
abs(Decimal)
Il renvoie la valeur absolue d'un nombre. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Par exemple, abs(-5)
renvoie 5.
Type d'argument | Résultat |
---|---|
Int |
Int , la valeur absolue de l'argument. |
Decimal |
Decimal , la valeur absolue de l'argument. |
Boolean |
Undefined . |
String |
Decimal . Le résultat est la valeur absolue de l’argument. Si la chaîne ne peut être pas convertie, le résultat est Undefined . |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Non défini | Undefined . |
accountid()
Renvoie l'ID du compte qui possède la règle comme une valeur String
. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple :
accountid()
= "123456789012"
acos(Decimal)
Renvoie le cosinus inverse d'un nombre en radians. Les arguments Decimal
sont arrondis pour une meilleure prévision avant l'application de la fonction. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : acos(0)
= 1,5707963267948966
Type d'argument | Résultat |
---|---|
Int |
Decimal (avec double précision), le cosinus inverse de l'argument. Des résultats imaginaires sont retournés sous la forme Undefined . |
Decimal |
Decimal (avec double précision), le cosinus inverse de l'argument. Des résultats imaginaires sont retournés sous la forme Undefined . |
Boolean |
Undefined . |
String |
Decimal , le cosinus inverse de l'argument. Si la chaîne ne peut être pas convertie, le résultat est Undefined . Des résultats imaginaires sont retournés sous la forme Undefined . |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Non défini | Undefined . |
asin(Decimal)
Renvoie le sinus inverse d'un nombre en radians. Les arguments Decimal
sont arrondis pour une meilleure prévision avant l'application de la fonction. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : asin(0)
= 0,0
Type d'argument | Résultat |
---|---|
Int |
Decimal (avec double précision), le sinus inverse de l'argument. Des résultats imaginaires sont retournés sous la forme Undefined . |
Decimal |
Decimal (avec double précision), le sinus inverse de l'argument. Des résultats imaginaires sont retournés sous la forme Undefined . |
Boolean |
Undefined . |
String |
Decimal (avec double précision), le sinus inverse de l'argument. Si la chaîne ne peut être pas convertie, le résultat est Undefined . Des résultats imaginaires sont retournés sous la forme Undefined . |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Non défini | Undefined . |
atan(Decimal)
Renvoie la tangente inverse d'un nombre en radians. Les arguments Decimal
sont arrondis pour une meilleure prévision avant l'application de la fonction. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : atan(0)
= 0,0
Type d'argument | Résultat |
---|---|
Int |
Decimal (avec double précision), la tangente inverse de l'argument. Des résultats imaginaires sont retournés sous la forme Undefined . |
Decimal |
Decimal (avec double précision), la tangente inverse de l'argument. Des résultats imaginaires sont retournés sous la forme Undefined . |
Boolean |
Undefined . |
String |
Decimal , la tangente inverse de l'argument. Si la chaîne ne peut être pas convertie, le résultat est Undefined . Des résultats imaginaires sont retournés sous la forme Undefined . |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Non défini | Undefined . |
atan2(Decimal, Decimal)
Il renvoie l'angle en radians, entre l'axe des X positifs et le point (x, y) défini dans les deux arguments. L'angle est positif pour les angles sans le sens contraire des aiguilles d'une montre (moitié supérieure du plan, y > 0) et négatif pour les angles dans le sens des aiguilles d'une montre (moitié inférieure du plan, y < 0). Les arguments Decimal
sont arrondis pour une meilleure précision avant l'application de la fonction. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : atan2(1, 0)
= 1,5707963267948966
Type d'argument | Type d'argument | Résultat |
---|---|---|
Int /Decimal |
Int /Decimal |
Decimal (avec double précision), l'angle entre l'axe des X et le point (x, y) spécifié. |
Int /Decimal /String |
Int /Decimal /String |
Decimal , la tangente inverse du point décrit. Si une chaîne ne peut pas être convertie, le résultat est Undefined . |
Autre valeur | Autre valeur | Undefined . |
aws_lambda (,) functionArn inputJson
Appelle la fonction Lambda spécifiée en passant inputJson
à la fonction Lambda et renvoie le résultat généré JSON par la fonction Lambda.
Argument | Description |
---|---|
functionArn |
La ARN fonction Lambda à appeler. La fonction Lambda doit renvoyer JSON des données. |
inputJson |
JSONEntrée transmise à la fonction Lambda. Pour transmettre des requêtes d'objets imbriqués et des littéraux, vous devez utiliser la SQL version 2016-03-23. |
Vous devez accorder AWS IoT lambda:InvokeFunction
des autorisations pour appeler la fonction Lambda spécifiée. L'exemple suivant montre comment accorder l'autorisation lambda:InvokeFunction
à l'aide de l' AWS CLI :
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"
Les arguments de la commande add-permission sont les suivants :
- --function-name
-
Nom de la fonction Lambda. Vous ajoutez une nouvelle autorisation pour mettre à jour la politique de ressources de la fonction.
- --région
-
Celui Région AWS de votre compte.
- --principal
-
Mandataire qui obtient l'autorisation. Cela devrait être
iot.amazonaws.com
pour AWS IoT autoriser l'appel d'une fonction Lambda. - --source-arn
-
Celui ARN de la règle. Vous pouvez utiliser la get-topic-rule AWS CLI commande pour obtenir la valeur ARN d'une règle.
- --source-account
-
L' Compte AWS endroit où la règle est définie.
- --statement-id
-
Identifiant unique de l'instruction.
- --action
-
L’action Lambda que vous souhaitez autoriser dans cette déclaration. Pour autoriser AWS IoT à invoquer une fonction,Lambda spécifiez
lambda:InvokeFunction
.
Important
Si vous ajoutez une autorisation pour un AWS IoT principal sans fournir le source-arn
ousource-account
, toute autorisation Compte AWS
qui crée une règle avec votre action Lambda peut déclencher des règles à partir desquelles appeler votre fonction Lambda. AWS IoT Pour plus d’informations, veuillez consulter Modèle d’autorisation Lambda.
Étant donné une charge utile de JSON message comme :
{ "attribute1": 21, "attribute2": "value" }
La fonction aws_lambda
peut être utilisée pour appeler la fonction Lambda, comme suit :
SELECT aws_lambda("arn:aws:lambda:
us-east-1
:account_id
:function:lambda_function
", {"payload":attribute1}) as output FROM 'topic-filter
'
Si vous souhaitez transmettre la charge utile complète du MQTT message, vous pouvez spécifier la JSON charge utile en utilisant « * », comme dans l'exemple suivant.
SELECT aws_lambda("arn:aws:lambda:
us-east-1
:account_id
:function:lambda_function
", *) as output FROM 'topic-filter
'
payload.inner.element
sélectionne les données à partir des messages publiés dans la rubrique « rubrique/sous-rubrique ».
some.value
sélectionne les données à partir de la sortie générée par la fonction Lambda.
Note
Le moteur de règles limite la durée d'exécution des fonctions Lambda. Les appels de fonction Lambda provenant de règles doivent être terminés en moins de 2 000 millisecondes.
bitand(Int, Int)
Effectue une opération bit par bit AND sur les représentations binaires des deux arguments Int
(convertis). Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : bitand(13, 5)
= 5
Type d'argument | Type d'argument | Résultat |
---|---|---|
Int |
Int |
Int , un bit à bit AND des deux arguments. |
Int /Decimal |
Int /Decimal |
Int , un bit à bit AND des deux arguments. Tous les nombres non-Int sont arrondis à la valeur Int inférieure la plus proche. Si l'un des arguments ne peut pas être converti en une valeur Int , le résultat Undefined . |
Int /Decimal /String |
Int /Decimal /String |
Int , un bit à bit AND des deux arguments. Toutes les chaînes sont converties en valeurs décimales et arrondies à la valeur Int inférieure la plus proche. Si la conversion échoue, le résultat est Undefined . |
Autre valeur | Autre valeur | Undefined . |
bitor(Int, Int)
Il effectue une opération OR au niveau du bit des représentations binaires des deux arguments. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : bitor(8, 5)
= 13
Type d'argument | Type d'argument | Résultat |
---|---|---|
Int |
Int |
Int , une opération OR au niveau du bit des deux arguments. |
Int /Decimal |
Int /Decimal |
Int , une opération OR au niveau du bit des deux arguments. Tous les nombres non-Int sont arrondis à la valeur Int inférieure la plus proche. Si la conversion échoue, le résultat est Undefined . |
Int /Decimal /String |
Int /Decimal /String |
Int , une opération OR au niveau du bit sur les deux arguments. Toutes les chaînes sont converties en valeurs décimales et arrondies à la valeur Int inférieure la plus proche. Si la conversion échoue, le résultat est Undefined . |
Autre valeur | Autre valeur | Undefined . |
bitxor(Int, Int)
Effectue une opération bit par bit XOR sur les représentations binaires des deux arguments Int
(convertis). Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : bitor(13, 5)
= 8
Type d'argument | Type d'argument | Résultat |
---|---|---|
Int |
Int |
Int , bit par bit XOR sur les deux arguments. |
Int /Decimal |
Int /Decimal |
Int , bit par bit XOR sur les deux arguments. Les nombres non-Int sont arrondis à la valeur Int inférieure la plus proche. |
Int /Decimal /String |
Int /Decimal /String |
Int , bit par bit XOR sur les deux arguments. les chaînes sont converties en décimales et arrondies au plus proche. Int Si une conversion échoue, le résultat est Undefined . |
Autre valeur | Autre valeur | Undefined . |
bitnot(Int)
Effectue une opération bit par bit NOT sur les représentations binaires de l'Int
argument (converti). Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : bitnot(13)
= 2
Type d'argument | Résultat |
---|---|
Int |
Int , un bit par rapport NOT à l'argument. |
Decimal |
Int , un bit par rapport NOT à l'argument. La valeur Decimal est arrondie à la valeur Int inférieure la plus proche. |
String |
Int , un bit par rapport NOT à l'argument. Les chaînes sont converties en valeurs décimales et arrondies à la valeur Int inférieure la plus proche. Si une conversion échoue, le résultat est Undefined . |
Autre valeur | Autre valeur. |
cast()
Convertit une valeur d'un type de données en un autre. La conversion se comporte principalement comme les conversions standard, avec en outre la capacité de convertir des chiffres vers/depuis des valeurs booléennes. Si vous AWS IoT ne pouvez pas déterminer comment convertir un type en un autre, le résultat estUndefined
. Pris en charge par SQL la version 2015-10-08 et versions ultérieures. Format : fonte (value
stype
).
Exemple :
cast(true as Int)
= 1
Les mots-clés suivants peuvent apparaître après « as » lors de l'appel de cast
:
Mot clé | Résultat |
---|---|
String |
Il convertit une valeur en String . |
Nvarchar | Il convertit une valeur en String . |
Texte | Il convertit une valeur en String . |
Ntext | Il convertit une valeur en String . |
varchar | Il convertit une valeur en String . |
Int |
Il convertit une valeur en Int . |
Entier | Il convertit une valeur en Int . |
Double | Transforme la valeur en Decimal (avec une double précision). |
Mot clé | Résultat |
---|---|
Decimal |
Il convertit une valeur en Decimal . |
Booléen | Il convertit une valeur en Boolean . |
Boolean |
Il convertit une valeur en Boolean . |
Règles de conversion de types :
Type d'argument | Résultat |
---|---|
Int |
Un chiffre Decimal sans virgule décimale. |
Decimal |
La valeur source. NoteAvec SQL V2 (2016-03-23), les valeurs numériques qui sont des nombres entiers, telles que |
Boolean |
true = 1.0, false = 0.0. |
String |
Tente d'analyser la chaîne en tant que Decimal . AWS IoT
tente d'analyser les chaînes correspondant à l'expression regex : ^-?\d+(\.\d+)?((?i)E-?\d+)?$. « 0 », « -1.2 », « 5E-12 » sont des exemples de chaînes qui sont automatiquement converties en valeurs décimales. |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Non défini | Undefined . |
Type d'argument | Résultat |
---|---|
Int |
La valeur source. |
Decimal |
La valeur source arrondie à la valeur Int inférieure la plus proche. |
Boolean |
true = 1.0, false = 0.0. |
String |
Tente d'analyser la chaîne en tant que Decimal . AWS IoT
tente d'analyser les chaînes correspondant à l'expression regex : ^-?\d+(\.\d+)?((?i)E-?\d+)?$. « 0 », « -1.2 », « 5E-12 » sont des exemples de chaînes qui sont automatiquement converties en valeurs décimales. AWS IoT
tente de convertir la chaîne en valeur Decimal , puis de l'arrondir à la valeur Int inférieure la plus proche. |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Non défini | Undefined . |
Type d'argument | Résultat |
---|---|
Int |
0 = False, any_nonzero_value = True. |
Decimal |
0 = False, any_nonzero_value = True. |
Boolean |
La valeur source. |
String |
« true »=True et « false »=False (insensible à la casse). Autres valeurs de chaînes = Undefined . |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Non défini | Undefined . |
Type d'argument | Résultat |
---|---|
Int |
Une représentation de chaîne de la valeur Int en notation standard. |
Decimal |
Une chaîne représentant la valeur Decimal , probablement en notation scientifique. |
Boolean |
« true » ou « false », tout en minuscules. |
String |
La valeur source. |
Tableau | Le tableau sérialisé en. JSON La chaîne résultante consiste en une liste séparée par des virgules et délimitée par des crochets. String est entre guillemets, à l'inverse de Decimal , Int et Boolean . |
Objet | L'objet sérialisé en. JSON La JSON chaîne est une liste de paires clé-valeur séparées par des virgules et commence et se termine par des accolades. String est cité. Decimal , Int Boolean , et ne le Null sont pas. |
Null | Undefined . |
Non défini | Undefined . |
ceil(Decimal)
Arrondit la valeur Decimal
donnée à la valeur Int
supérieure la plus proche. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemples :
ceil(1.2)
= 2
ceil(-1.2)
= -1
Type d'argument | Résultat |
---|---|
Int |
Int , la valeur d'argument. |
Decimal |
Int , la valeur Decimal arrondie à la valeur Int supérieure la plus proche. |
String |
Int . La chaîne est convertie en valeur Decimal et arrondie à la valeur Int supérieure la plus proche. Si la chaîne ne peut pas être convertie en une valeur Decimal , le résultat est Undefined . |
Autre valeur | Undefined . |
chr(String)
Renvoie le ASCII caractère correspondant à l'Int
argument donné. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemples :
chr(65)
= "A".
chr(49)
= "1".
Type d'argument | Résultat |
---|---|
Int |
Le caractère correspondant à la ASCII valeur spécifiée. Si l'argument n'est pas une ASCII valeur valide, le résultat estUndefined . |
Decimal |
Le caractère correspondant à la ASCII valeur spécifiée. L'argument Decimal est arrondi à la valeur Int inférieure la plus proche. Si l'argument n'est pas une ASCII valeur valide, le résultat estUndefined . |
Boolean |
Undefined . |
String |
Si la valeur String peut être convertie en valeur Decimal , elle est arrondie à la valeur Int inférieure la plus proche. Si l'argument n'est pas une ASCII valeur valide, le résultat estUndefined . |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Autre valeur | Undefined . |
clientid()
Renvoie l'ID du MQTT client qui envoie le message, ou n/a
si le message n'a pas été envoyéMQTT. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple :
clientid()
= "123456789012"
concat()
Concatène des tableaux ou des chaînes. Cette fonction accepte n'importe quel nombre d'arguments et renvoie une valeur String
ou Array
. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemples :
concat()
= Undefined
.
concat(1)
= "1".
concat([1, 2, 3], 4)
= [1, 2, 3, 4].
concat([1, 2, 3], "hello")
= [1, 2, 3, "bonjour"]
concat("con", "cat")
= "concat"
concat(1, "hello")
= "bonjour1"
concat("he","is","man")
= "heisman"
concat([1, 2, 3], "hello", [4, 5, 6])
= [1, 2, 3, "bonjour", 4, 5, 6]
Nombre d'arguments | Résultat |
---|---|
0 | Undefined . |
1 | L'argument est renvoyé non modifié. |
2+ |
Si un argument est une valeur |
cos(Decimal)
Renvoie le cosinus d'un nombre en radians. Les arguments Decimal
sont arrondis pour une meilleure prévision avant l'application de la fonction. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple :
cos(0)
= 1.
Type d'argument | Résultat |
---|---|
Int |
Decimal (avec double précision), le cosinus de l'argument. Des résultats imaginaires sont retournés sous la forme Undefined . |
Decimal |
Decimal (avec double précision), le cosinus de l'argument. Des résultats imaginaires sont retournés sous la forme Undefined . |
Boolean |
Undefined . |
String |
Decimal (avec double précision), le cosinus de l'argument. Si la chaîne ne peut pas être convertie en une valeur Decimal , le résultat est Undefined . Des résultats imaginaires sont retournés sous la forme Undefined . |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Non défini | Undefined . |
cosh(Decimal)
Renvoie le cosinus hyperbolique d'un nombre en radians. Les arguments Decimal
sont arrondis pour une meilleure prévision avant l'application de la fonction. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : cosh(2.3)
= 5.037220649268761.
Type d'argument | Résultat |
---|---|
Int |
Decimal (avec double précision), le cosinus hyperbolique de l'argument. Des résultats imaginaires sont retournés sous la forme Undefined . |
Decimal |
Decimal (avec double précision), le cosinus hyperbolique de l'argument. Des résultats imaginaires sont retournés sous la forme Undefined . |
Boolean |
Undefined . |
String |
Decimal (avec double précision), le cosinus hyperbolique de l'argument. Si la chaîne ne peut pas être convertie en une valeur Decimal , le résultat est Undefined . Des résultats imaginaires sont retournés sous la forme Undefined . |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Non défini | Undefined . |
décoder (valeur,decodingScheme)
Utilisez la fonction decode
pour décoder une valeur codée. Si la chaîne décodée est un JSON document, un objet adressable est renvoyé. Sinon, la chaîne décodée est renvoyée sous forme de chaîne. La fonction revient NULL si la chaîne ne peut pas être décodée. Cette fonction prend en charge le décodage des chaînes codées en base64 et du format de message Protocol Buffer (protobuf).
Pris en charge par SQL la version 2016-03-23 et versions ultérieures.
- value
-
Une valeur de chaîne ou l’une des expressions valides, telles que définies dans Référence AWS IoT SQL, qui renvoie une chaîne.
- decodingScheme
-
Chaîne littérale représentant le schéma utilisé pour décoder la valeur. À l’heure actuelle, uniquement
'base64'
et'proto'
sont pris en charge.
Décodage de chaînes codées en base64
Dans cet exemple, la charge utile du message inclut une valeur codée.
{ encoded_temp: "eyAidGVtcGVyYXR1cmUiOiAzMyB9Cg==" }
La decode
fonction décrite dans cette SQL instruction décode la valeur de la charge utile du message.
SELECT decode(encoded_temp,"base64").temperature AS temp from 'topic/subtopic'
Le décodage de la encoded_temp
valeur permet d'obtenir le JSON document valide suivant, qui permet à l'SELECTinstruction de lire la valeur de température.
{ "temperature": 33 }
Le résultat de l'SELECTinstruction dans cet exemple est affiché ici.
{ "temp": 33 }
Si la valeur décodée n'était pas un JSON document valide, elle serait renvoyée sous forme de chaîne.
Décodage de la charge utile des messages protobuf
Vous pouvez utiliser la SQL fonction de décodage pour configurer une règle capable de décoder la charge utile de votre message protobuf. Pour plus d’informations, veuillez consulter la section Décodage des charges utiles des messages protobuf.
La signature de la fonction ressemble à ce qui suit :
decode(<ENCODED DATA>, 'proto', '<S3 BUCKET NAME>', '<S3 OBJECT KEY>', '<PROTO NAME>', '<MESSAGE TYPE>')
ENCODED DATA
-
Spécifie les données codées en protobuf à décoder. Si l’intégralité du message envoyé à la règle est constituée de données codées en protobuf, vous pouvez référencer la charge utile binaire entrante brute à l’aide de
*
Sinon, ce champ doit être une JSON chaîne codée en base 64 et une référence à la chaîne peut être transmise directement.1) Pour décoder une charge utile entrante protobuf binaire brute :
decode(*, 'proto', ...)
2) Pour décoder un message codé en protobuf représenté par une chaîne codée en base64 « a.b » :
decode(a.b, 'proto', ...)
proto
-
Spécifie les données à décoder dans un format de message protobuf. Si vous spécifiez
base64
au lieu deproto
, cette fonction décodera les chaînes codées en base64 sous la forme. JSON S3 BUCKET NAME
-
Le nom du compartiment Amazon S3 dans lequel vous avez chargé votre fichier
FileDescriptorSet
. S3 OBJECT KEY
-
Clé d’objet qui spécifie le fichier
FileDescriptorSet
dans le compartiment Amazon S3. PROTO NAME
-
Le nom du fichier
.proto
(à l’exception de l’extension) à partir duquel le fichierFileDescriptorSet
a été généré. MESSAGE TYPE
-
Nom de la structure du message protobuf dans le fichier
FileDescriptorSet
, à laquelle les données à décoder doivent être conformes.
Voici un exemple SQL d'expression utilisant la SQL fonction de décodage :
SELECT VALUE decode(*, 'proto', 's3-bucket', 'messageformat.desc', 'myproto', 'messagetype') FROM 'some/topic'
-
*
Représente une charge utile binaire entrante, conforme au type de message protobuf appelé
mymessagetype
-
messageformat.desc
Le fichier
FileDescriptorSet
stocké dans un compartiment Amazon S3 nommés3-bucket
. -
myproto
Le fichier
.proto
d’origine utilisé pour générer le fichierFileDescriptorSet
nommémyproto.proto
. -
messagetype
Le type de message appelé
messagetype
(ainsi que toutes les dépendances importées) tel que défini dansmyproto.proto
.
encoder (valeur,encodingScheme)
Utilisez la encode
fonction pour encoder la charge utile, qui peut être non une JSON donnée, dans sa représentation sous forme de chaîne basée sur le schéma de codage. Pris en charge par SQL la version 2016-03-23 et versions ultérieures.
- value
-
Une des expressions valides, telles que définies dans la Référence AWS IoT SQL. Vous pouvez spécifier* pour encoder l'intégralité de la charge utile, qu'elle soit formatée ou non. JSON Si vous fournissez une expression, le résultat de l'évaluation est converti en une chaîne avant d'être codé.
- encodingScheme
-
Chaîne littérale qui représente le schéma de codage à utiliser. Actuellement, seul
'base64'
est pris en charge.
endswith(String, String)
Renvoie une valeur Boolean
indiquant si le premier argument String
se termine par le deuxième argument String
. Si l'un des arguments est Null
ou Undefined
, le résultat a la valeur Undefined
. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Par exemple : endswith("cat","at")
= true.
Type d'argument 1 | Type d'argument 2 | Résultat |
---|---|---|
String |
String |
Vrai si le premier argument se termine dans le second argument. Sinon, la valeur renvoyée est Faux. |
Autre valeur | Autre valeur | Les deux arguments sont convertis en chaînes à l'aide des règles de conversion standard. Vrai si le premier argument se termine dans le second argument. Sinon, la valeur renvoyée est Faux. Si l'un des arguments est Null ou Undefined , le résultat a la valeur Undefined . |
exp(Decimal)
Renvoie la valeur augmentée vers l'argument Decimal
. Les arguments Decimal
sont arrondis pour une meilleure prévision avant l'application de la fonction. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : exp(1)
= e.
Type d'argument | Résultat |
---|---|
Int |
Decimal (avec double précision), argument puissance e. |
Decimal |
Decimal (avec double précision), argument puissance e. |
String |
Decimal (avec double précision), argument puissance e. Si la valeur String ne peut pas être convertie en une valeur Decimal , le résultat est Undefined . |
Autre valeur | Undefined . |
floor(Decimal)
Arrondit la valeur Decimal
donnée à la valeur Int
inférieure la plus proche. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemples :
floor(1.2)
= 1
floor(-1.2)
= -2
Type d'argument | Résultat |
---|---|
Int |
Int , la valeur d'argument. |
Decimal |
Int , la valeur Decimal arrondie à la valeur Int inférieure la plus proche. |
String |
Int . La chaîne est convertie en valeur Decimal et arrondie à la valeur Int inférieure la plus proche. Si la chaîne ne peut pas être convertie en une valeur Decimal , le résultat est Undefined . |
Autre valeur | Undefined . |
get
Extrait une valeur à partir d'un type de collection (tableau, chaîne, objet). Aucune conversion n'est appliquée au premier argument. Une conversion s'applique comme documenté dans le tableau au deuxième argument. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemples :
get(["a", "b", "c"], 1)
= "b"
get({"a":"b"}, "a")
= "b"
get("abc", 0)
= « a ».
Type d'argument 1 | Type d'argument 2 | Résultat |
---|---|---|
Tableau | Tout type (converti valeur Int ) |
L'élément à l'index de base zéro de la valeur Array fourni par le deuxième argument (converti en Int ). Si la conversion échoue, le résultat est Undefined . Si l'index est en dehors des limites de la valeur Array (négatif ou >= array.length), le résultat est Undefined . |
Chaîne | Tout type (converti valeur Int ) |
Le caractère est à l'index de base zéro de la chaîne fournie par le deuxième argument (converti en Int ). Si la conversion échoue, le résultat est Undefined . Si l'index est en dehors des limites de la chaîne (négatif ou >= string.length), le résultat est Undefined . |
Objet | String (aucune conversion appliquée) |
La valeur stockée dans le premier argument (l'objet) correspondant à la clé de chaîne fournie comme deuxième argument. |
Autre valeur | N'importe quelle valeur | Undefined . |
get_dynamodb (tableName,,,, partitionKeyName, partitionKeyValue) sortKeyName sortKeyValue roleArn
Récupère des données d’une table DynamoDB. get_dynamodb()
vous permet d’interroger une table DynamoDB pendant l’évaluation d’une règle. Vous pouvez filtrer ou augmenter les charges utiles des messages à l’aide des données extraites de DynamoDB. Pris en charge par SQL la version 2016-03-23 et versions ultérieures.
get_dynamodb()
accepte les paramètres suivants :
- tableName
-
Nom de la table DynamoDB à interroger.
- partitionKeyName
-
Nom de la clé de partition. Pour plus d’informations, veuillez consulter Clés DynamoDB.
- partitionKeyValue
-
Valeur de la clé de partition utilisée pour identifier un enregistrement. Pour plus d’informations, veuillez consulter Clés DynamoDB.
- sortKeyName
-
(Facultatif) Nom de la clé de tri. Ce paramètre n’est requis que si la table DynamoDB interrogée utilise une clé composite. Pour plus d’informations, veuillez consulter Clés DynamoDB.
- sortKeyValue
-
(Facultatif) Valeur de la clé de tri. Ce paramètre n’est requis que si la table DynamoDB interrogée utilise une clé composite. Pour plus d’informations, veuillez consulter Clés DynamoDB.
- roleArn
-
ARND'un IAM rôle qui accorde l'accès à la table DynamoDB. Le moteur de règles assume ce rôle pour accéder à la table DynamoDB en votre nom. Évitez d'utiliser un rôle trop permissif. Accordez au rôle uniquement les autorisations requises par la règle. L’exemple de stratégie suivant accorde l’accès à une table DynamoDB.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:GetItem", "Resource": "arn:aws:dynamodb:
aws-region
:account-id
:table/table-name
" } ] }
À titre d’exemple d’utilisation de get_dynamodb()
, supposons que vous disposez d’une table DynamoDB contenant l’ID d’appareil et les informations d’emplacement de tous vos appareils connectés à AWS IoT. L'SELECTinstruction suivante utilise la get_dynamodb()
fonction pour récupérer l'emplacement de l'identifiant de périphérique spécifié :
SELECT *, get_dynamodb("InServiceDevices", "deviceId", id,
"arn:aws:iam::12345678910:role/getdynamo").location AS location FROM
'some/topic'
Note
-
Vous pouvez appeler au maximum
get_dynamodb()
une fois par SQL relevé. Le fait d'appelerget_dynamodb()
plusieurs fois dans une seule SQL instruction entraîne l'arrêt de la règle sans qu'aucune action ne soit nécessaire. -
Si
get_dynamodb()
renvoie plus de 8 Ko de données, l'action de la règle ne peut pas être invoquée.
get_mqtt_property (nom)
Fait référence à l'un MQTT5 des en-têtes suivants :contentType
, payLoadFormatIndicator
responseTopic
, etcorrelationData
. Cette fonction prend l’une des chaînes littérales suivantes comme argument :content_type
, format_indicator
response_topic
, etcorrelation_data
. Pour plus d’informations, veuillez consulter la table des arguments de fonction suivante.
- contentType
-
Chaîne : chaîne codée en UTF -8 qui décrit le contenu du message de publication.
- payLoadFormatIndicateur
-
Chaîne : valeur de chaîne Enum qui indique si la charge utile est formatée en -8. UTF Les valeurs valides sont
UNSPECIFIED_BYTES
etUTF8_DATA
. - responseTopic
-
Chaîne : chaîne codée en UTF -8 utilisée comme nom de rubrique pour un message de réponse. La rubrique de réponse permet de décrire la rubrique dans laquelle le récepteur doit effectuer la publication dans le cadre du flux demande-réponse. La rubrique ne doit pas contenir de caractères génériques.
- correlationData
-
Chaîne : Les données binaires codées en base64 utilisées par l’expéditeur du message de demande pour identifier la demande à laquelle le message de réponse correspond lorsqu’il est reçu.
Le tableau suivant indique les arguments de fonction acceptables et les types de retour associés pour la fonction get_mqtt_property
:
SQL | Type de données renvoyé (le cas échéant) | Type de données renvoyé (s’il n’est pas présent) |
---|---|---|
get_mqtt_property("format_indicator") |
Chaîne (UNSPECIFIED_ BYTES ou UTF8 _DATA) | Chaîne (UNSPECIFIED_BYTES) |
get_mqtt_property("content_type") |
Chaîne | Non défini |
get_mqtt_property("response_topic") |
Chaîne | Non défini |
get_mqtt_property("correlation_data") |
Chaîne codée en base64 | Non défini |
get_mqtt_property("some_invalid_name") |
Non défini | Non défini |
L'exemple de règles suivant SQL fait référence à l'un MQTT5 des en-têtes suivants :contentType
, payLoadFormatIndicator
responseTopic
, etcorrelationData
.
SELECT *, get_mqtt_property('content_type') as contentType, get_mqtt_property('format_indicator') as payloadFormatIndicator, get_mqtt_property('response_topic') as responseTopic, get_mqtt_property('correlation_data') as correlationData FROM 'some/topic'
get_secret (secretId, clésecretType,) roleArn
Récupère la valeur du champ chiffré SecretString
ou SecretBinary
de la version actuelle d’un secret dans AWS Secrets Manager. Pour plus d'informations sur la création et la gestion de secrets CreateSecret, consultez les UpdateSecretsections, et PutSecretValue.
get_secret()
accepte les paramètres suivants :
- secretId
-
Chaîne : le nom de la ressource Amazon (ARN) ou le nom convivial du secret à récupérer.
- secretType
-
Chaîne : type secret. Valeurs valides :
SecretString
|SecretBinary
.- SecretString
-
-
Pour les secrets que vous créez sous forme JSON d'objets à l'aide de la APIs console AWS CLI, de la ou de la AWS Secrets Manager console :
Si vous spécifiez une valeur pour le paramètre
key
, cette fonction renvoie la valeur de la clé spécifiée.Si vous ne spécifiez aucune valeur pour le
key
paramètre, cette fonction renvoie l'JSONobjet entier.
-
Pour les secrets que vous créez en tant que JSON non-objets en utilisant le APIs ou le AWS CLI :
Si vous spécifiez une valeur pour le paramètre
key
, cette fonction échoue avec une exception.Si vous ne spécifiez pas de valeur pour le paramètre
key
, cette fonction renvoie le contenu du secret.
-
- SecretBinary
-
Si vous spécifiez une valeur pour le paramètre
key
, cette fonction échoue avec une exception.Si vous ne spécifiez aucune valeur pour le
key
paramètre, cette fonction renvoie la valeur secrète sous forme de chaîne UTF -8 codée en base64.
- clé
(Facultatif) Chaîne : nom de la clé à l'intérieur d'un JSON objet stocké dans le
SecretString
champ d'un secret. Utilisez cette valeur lorsque vous souhaitez récupérer uniquement la valeur d'une clé stockée dans un secret au lieu de récupérer l'JSONobjet entier.Si vous spécifiez une valeur pour ce paramètre et que le secret ne contient aucun JSON objet dans son
SecretString
champ, cette fonction échoue avec une exception.- roleArn
Chaîne : rôle ARN avec
secretsmanager:GetSecretValue
secretsmanager:DescribeSecret
autorisations.
Note
Cette fonction renvoie toujours la version actuelle du secret (la version avec la balise AWSCURRENT
). Le moteur de AWS IoT règles met en cache chaque secret pendant 15 minutes maximum. Par conséquent, le moteur de règles peut prendre jusqu’à 15 minutes pour mettre à jour un secret. Cela signifie que si vous récupérez un secret jusqu'à 15 minutes après une mise à jour avec AWS Secrets Manager, cette fonction peut renvoyer la version précédente.
Cette fonction n'est pas mesurée, mais des AWS Secrets Manager frais s'appliquent. En raison du mécanisme de mise en cache secret, le moteur de règles appelle AWS Secrets Manager occasionnellement. Le moteur de règles étant un service entièrement distribué, il est possible que vous receviez plusieurs API appels Secrets Manager depuis le moteur de règles au cours de la fenêtre de mise en cache de 15 minutes.
Exemples :
Vous pouvez utiliser la get_secret
fonction dans un en-tête d'authentification dans le cadre d'une action de HTTPS règle, comme dans l'exemple d'authentification par API clé suivant.
"API_KEY": "${get_secret('
API_KEY
', 'SecretString
', 'API_KEY_VALUE
', 'arn:aws:iam::12345678910:role/getsecret')}"
Pour plus d'informations sur l'action de la HTTPS règle, consultezHTTP.
get_thing_shadow (, rôle) thingName shadowName ARN
Renvoie le shadow spécifié de l'objet spécifié. Pris en charge par SQL la version 2016-03-23 et versions ultérieures.
- thingName
-
Chaîne : nom de l'objet dont vous souhaitez récupérer le shadow.
- shadowName
-
(Facultatif) Chaîne : nom du shadow. Ce paramètre est requis uniquement quand vous référencez des shadows nommés.
- roleArn
-
Chaîne : rôle ARN doté d'une
iot:GetThingShadow
autorisation.
Exemples :
Lorsqu'elle est utilisée avec un shadow nommé, fournissez le paramètre shadowName
.
SELECT * from 'topic/subtopic' WHERE get_thing_shadow("MyThing","MyThingShadow","arn:aws:iam::123456789012:role/AllowsThingShadowAccess") .state.reported.alarm = 'ON'
Lorsqu'elle est utilisée avec un shadow non nommé, omettez le paramètre shadowName
.
SELECT * from 'topic/subtopic' WHERE get_thing_shadow("MyThing","arn:aws:iam::123456789012:role/AllowsThingShadowAccess") .state.reported.alarm = 'ON'
get_user_properties () userPropertyKey
Références aux propriétés utilisateur, qui est un type d'en-tête de propriété pris en charge dansMQTT5.
- userProperty
-
Chaîne : une propriété utilisateur est une paire clé-valeur. Cette fonction prend la clé comme argument et renvoie un tableau de toutes les valeurs correspondant à la clé associée.
Arguments de la fonction
Pour les propriétés utilisateur suivantes dans les en-têtes des messages :
Clé | Valeur |
---|---|
une clé | une valeur |
une clé différente | une valeur différente |
une clé | valeur avec clé dupliquée |
Le tableau suivant indique le SQL comportement attendu :
SQL | Type de données de retour | Valeur de données de retour |
---|---|---|
get_user_properties (« une clé ») | Tableau de chaînes | ['some value', 'value with duplicate key'] |
get_user_properties (« une clé ») | Tableau de chaînes | ['a different value'] |
get_user_properties ( ) | Tableau d’objets de paire clé-valeur | [{'"some key": "some value"'}, {"other key": "a different
value"}, {"some key": "value with duplicate
key"}] |
get_user_properties (« clé inexistante ») | Non défini |
L'exemple de règles suivant SQL fait référence aux propriétés utilisateur (un type d'en-tête de MQTT5 propriété) dans la charge utile :
SELECT *, get_user_properties('user defined property key') as userProperty FROM 'some/topic'
Fonctions de hachage
AWS IoT fournit les fonctions de hachage suivantes :
-
md2
-
md5
-
sha1
-
sha224
-
sha256
-
sha384
-
sha512
Toutes les fonctions de hachage prévoit un argument de type chaîne. Le résultat est la valeur hachée de cette chaîne. Les conversions de chaîne standard s'appliquent aux arguments non-chaîne. Toutes les fonctions de hachage sont prises en charge par les SQL versions 2015-10-08 et ultérieures.
Exemples :
md2("hello")
= "a9046c73e00331af68917d3804f70655"
md5("hello")
= "5d41402abc4b2a76b9719d911017c592"
indexof(String, String)
Renvoie le premier index (de base 0) du deuxième argument comme une sous-chaîne dans le premier argument. Les deux arguments doivent être des chaînes. Les arguments qui ne sont pas des chaînes sont soumis aux règles de conversion de chaînes standard. Cette fonction ne s'applique pas aux tableaux, uniquement aux chaînes. Pris en charge par SQL la version 2016-03-23 et versions ultérieures.
Exemples :
indexof("abcd", "bc")
= 1
isNull()
Retourne la valeur true si la valeur de l'argument est Null
. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemples :
isNull(5)
= false.
isNull(Null)
= vrai.
Type d'argument | Résultat |
---|---|
Int |
false |
Decimal |
false |
Boolean |
false |
String |
false |
Array |
false |
Object |
false |
Null |
vrai |
Undefined |
false |
isUndefined()
Retourne la valeur true si l'argument est Undefined
. Pris en charge par SQL la version 2016-03-23 et versions ultérieures.
Exemples :
isUndefined(5)
= false.
isUndefined(floor([1,2,3])))
= vrai.
Type d'argument | Résultat |
---|---|
Int |
false |
Decimal |
false |
Boolean |
false |
String |
false |
Array |
false |
Object |
false |
Null |
false |
Undefined |
true |
length(String)
Renvoie le nombre de caractères dans la chaîne fournie. Les règles de conversion standard s'appliquent aux arguments non-String
. Pris en charge par SQL la version 2016-03-23 et versions ultérieures.
Exemples :
length("hi")
= 2
length(false)
= 5
ln(Decimal)
Renvoie le logarithme naturel de l'argument Les arguments Decimal
sont arrondis pour une meilleure prévision avant l'application de la fonction. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : ln(e)
= 1.
Type d'argument | Résultat |
---|---|
Int |
Decimal (avec double précision), le logarithme naturel de l'argument. |
Decimal |
Decimal (avec double précision), le logarithme naturel de l'argument. |
Boolean |
Undefined . |
String |
Decimal (avec double précision), le logarithme naturel de l'argument. Si la chaîne ne peut pas être convertie en une valeur Decimal , le résultat est Undefined . |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Non défini | Undefined . |
log(Decimal)
Renvoie le logarithme 10 de base de l'argument Les arguments Decimal
sont arrondis pour une meilleure prévision avant l'application de la fonction. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : log(100)
= 2.0.
Type d'argument | Résultat |
---|---|
Int |
Decimal (avec double précision), le logarithme de base 10 de l'argument. |
Decimal |
Decimal (avec double précision), le logarithme de base 10 de l'argument. |
Boolean |
Undefined . |
String |
Decimal (avec double précision), le logarithme de base 10 de l'argument. Si la valeur String ne peut pas être convertie en une valeur Decimal , le résultat est Undefined . |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Non défini | Undefined . |
lower(String)
Renvoie la version en minuscules de la valeur de String
donnée. Les arguments non-chaîne sont convertis en chaînes à l'aide des règles de conversion standard. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemples :
lower("HELLO")
= "bonjour".
lower(["HELLO"])
= "[\"bonjour\"]".
lpad(String, Int)
Renvoie l'argument String
, complété à gauche par le nombre d'espaces spécifié par le deuxième argument. L'argument Int
doit être compris entre 0 et 1000. Si la valeur fournie se situe en dehors de cette plage valide, l'argument est défini sur la valeur valide la plus proche (0 ou 1 000). Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemples :
lpad("hello", 2)
= " hello
".
lpad(1, 3)
= " 1
"
Type d'argument 1 | Type d'argument 2 | Résultat |
---|---|---|
String |
Int |
String , l'argument String fourni, complété à gauche par un nombre d'espaces égal à la valeur Int . |
String |
Decimal |
L'argument Decimal est arrondi à la valeur Int inférieure la plus proche, et l'argument String est complété à gauche par le nombre d'espaces spécifié. |
String |
String |
Le deuxième argument est converti en valeur Decimal , qui est arrondie à la valeur Int inférieure la plus proche, et l'argument String est complété à gauche par le nombre d'espaces spécifié. Si le deuxième argument ne peut pas être converti en une valeur Int , le résultat Undefined . |
Autre valeur | Int /Decimal /String |
La première valeur est convertie en a à l'String aide des conversions standard, puis la LPAD fonction y est appliquéeString . Si elle ne peut pas être convertie, le résultat est Undefined . |
N'importe quelle valeur | Autre valeur | Undefined . |
ltrim(String)
Supprime tous les espaces de début (tabulations et espaces) de la valeur String
fournie. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple :
Ltrim(" h i ")
= "bonjour".
Type d'argument | Résultat |
---|---|
Int |
La représentation String de Int avec tous les espaces de début supprimés. |
Decimal |
La représentation String de Decimal avec tous les espaces de début supprimés. |
Boolean |
La représentation String de la valeur booléenne (« true » ou « false ») avec tous les espaces de début supprimés. |
String |
L'argument avec tous les espaces de début supprimés. |
Tableau | La représentation String de Array (à l'aide des règles de conversion standard) avec tous les espaces de début supprimés. |
Objet | La représentation String de l'objet (à l'aide des règles de conversion standard) avec tous les espaces de début supprimés. |
Null | Undefined . |
Non défini | Undefined . |
machinelearning_predict (,, enregistrement) modelId roleArn
Utilisez cette machinelearning_predict
fonction pour faire des prédictions en utilisant les données d'un MQTT message basé sur un modèle Amazon SageMaker AI. Pris en charge par SQL la version 2015-10-08 et versions ultérieures. Les arguments de la fonction machinelearning_predict
sont :
- modelId
-
L'ID du modèle sur lequel doit être réalisée la prévision. Le point de terminaison en temps réel du modèle doit être activé.
- roleArn
-
Le rôle IAM qui dispose d'une stratégie avec les autorisations
machinelearning:Predict
etmachinelearning:GetMLModel
et permet d'accéder au modèle par rapport auquel la prévision doit être réalisée. - record
-
Les données à transmettre au SageMaker AI PredictAPI. Cela doit être représenté sous la forme d'un JSON objet monocouche. Si l'enregistrement est un JSON objet à plusieurs niveaux, il est aplati en sérialisant ses valeurs. Par exemple, ce qui suit JSON :
{ "key1": {"innerKey1": "value1"}, "key2": 0}
deviendrait :
{ "key1": "{\"innerKey1\": \"value1\"}", "key2": 0}
La fonction renvoie un JSON objet avec les champs suivants :
- predictedLabel
-
Classification de l'entrée basée sur le modèle.
- détails
-
Contient les attributs suivants :
- PredictiveModelType
-
Type de modèle. Les valeurs valides sont REGRESSION, BINARY, MULTICLASS.
- Algorithm
-
Algorithme utilisé par l' SageMaker IA pour faire des prédictions. La valeur doit êtreSGD.
- predictedScores
-
Contient le score de classification brut correspondant à chaque étiquette.
- predictedValue
-
La valeur prédite par l' SageMaker IA.
mod(Decimal, Decimal)
Renvoie le reste résultant de la division du premier argument par le deuxième argument. Équivalent à remainder(Decimal, Decimal). Vous pouvez également utiliser « % » comme opérateur infixe pour la même fonctionnalité modulo. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : mod(8, 3)
= 2.
Opérande gauche | Opérande droit | Sortie |
---|---|---|
Int |
Int |
Int , les premier et deuxième arguments pour lesquels vous voulez exécuter la fonctionnalité Modulo. |
Int /Decimal |
Int /Decimal |
Decimal , le premier argument et le deuxième opérande pour lesquels vous voulez exécuter la fonctionnalité Modulo. |
String /Int /Decimal |
String /Int /Decimal |
Si toutes les chaînes sont converties en décimales, le résultat est le premier argument divisé par le deuxième argument. Sinon la valeur est renvoy, Undefined . |
Autre valeur | Autre valeur | Undefined . |
nanol (,) AnyValue AnyValue
Renvoie le premier argument s'il s'agit d'une valeur Decimal
valide. Sinon, le deuxième argument est renvoyé. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : Nanvl(8, 3)
= 8.
Type d'argument 1 | Type d'argument 2 | Sortie |
---|---|---|
Non défini | N'importe quelle valeur | Le deuxième argument. |
Null | N'importe quelle valeur | Le deuxième argument. |
Decimal (NaN) |
N'importe quelle valeur | Le deuxième argument. |
Decimal (non-NaN) |
N'importe quelle valeur | Le premier argument. |
Autre valeur | N'importe quelle valeur | Le premier argument. |
newuuid()
Renvoie une valeur aléatoire de 16 octetsUUID. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple: newuuid()
= 123a4567-b89c-12d3-e456-789012345000
numbytes(String)
Renvoie le nombre d'octets dans le codage UTF -8 de la chaîne fournie. Les règles de conversion standard s'appliquent aux arguments non-String
. Pris en charge par SQL la version 2016-03-23 et versions ultérieures.
Exemples :
numbytes("hi")
= 2
numbytes("€")
= 3
parse_time(String, Long[, String])
Utilisez la fonction parse_time
pour mettre en forme un horodatage dans un format date/heure lisible par l'utilisateur. Pris en charge par SQL la version 2016-03-23 et versions ultérieures. Pour convertir une chaîne d’horodatage en millisecondes, veuillez consulter time_to_epoch (Chaîne, Chaîne).
La fonction parse_time
attend les arguments suivants :
- pattern
-
(Chaîne ) Un modèle de date/heure qui suit les formats Joda-Time
. - timestamp
-
(Long) Heure à formater en millisecondes depuis l'époque Unix. Voir la fonction timestamp().
- timezone
-
(Chaîne) Fuseau horaire de la date/heure mise en forme. La valeur par défaut est « UTC ». La fonction prend en charge les fuseaux horaires Joda-Time
. Cet argument est facultatif.
Exemples :
Lorsque ce message est publié dans la rubrique « A/B », la charge utile {"ts":
"1970.01.01 AD at 21:46:40 CST"}
est envoyée au compartiment S3 :
{ "ruleArn": "arn:aws:iot:us-east-2:ACCOUNT_ID:rule/RULE_NAME", "topicRulePayload": { "sql": "SELECT parse_time(\"yyyy.MM.dd G 'at' HH:mm:ss z\", 100000000, 'America/Belize' ) as ts FROM 'A/B'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "s3": { "roleArn": "arn:aws:iam::ACCOUNT_ID:rule:role/ROLE_NAME", "bucketName": "BUCKET_NAME", "key": "KEY_NAME" } } ], "ruleName": "RULE_NAME" } }
Lorsque ce message est publié dans la rubrique « A/B », une charge utile similaire à {"ts": "2017.06.09 AD at 17:19:46 UTC"}
(mais avec la date et l'heure du moment) est envoyée au compartiment S3 :
{ "ruleArn": "arn:aws:iot:us-east-2:ACCOUNT_ID:rule/RULE_NAME", "topicRulePayload": { "sql": "SELECT parse_time(\"yyyy.MM.dd G 'at' HH:mm:ss z\", timestamp() ) as ts FROM 'A/B'", "awsIotSqlVersion": "2016-03-23", "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()
peut également servir de modèle de substitution. Par exemple, lorsque ce message est publié dans la rubrique « A/B », la charge utile est envoyée au compartiment S3 avec la clé = « 2017 » :
{ "ruleArn": "arn:aws:iot:us-east-2:ACCOUNT_ID:rule/RULE_NAME", "topicRulePayload": { "sql": "SELECT * FROM 'A/B'", "awsIotSqlVersion": "2016-03-23", "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(Decimal, Decimal)
Renvoie le premier argument augmenté vers le deuxième argument. Les arguments Decimal
sont arrondis pour une meilleure prévision avant l'application de la fonction. Pris en charge par SQL la version 2015-10-08 et versions ultérieures. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : power(2, 5)
= 32.0.
Type d'argument 1 | Type d'argument 2 | Sortie |
---|---|---|
Int /Decimal |
Int /Decimal |
Une valeur Decimal (avec double précision), le premier argument renvoyé à la puissance du deuxième argument. |
Int /Decimal /String |
Int /Decimal /String |
Une valeur Decimal (avec double précision), le premier argument renvoyé à la puissance du deuxième argument. Toutes les chaînes sont converties en décimales. Si tout valeur String échoue à être convertie en Decimal , le résultat est Undefined . |
Autre valeur | Autre valeur | Undefined . |
principal()
Renvoie le principal utilisé par le terminal pour l’authentification, en fonction de la manière dont le message déclencheur a été publié. Le tableau suivant décrit le mandataire renvoyé pour chaque méthode et protocole de publication.
Méthode de publication du message | Protocole | Type d’informations d’identification | Principal |
---|---|---|---|
MQTTclient | MQTT | Certificat d'appareil X.509 | Empreinte du certificat X.509 |
AWS IoT MQTTclient de console | MQTT | Utilisateur ou rôle IAM | iam-role-id :session-name |
AWS CLI | HTTP | Utilisateur ou rôle IAM | userid |
AWS IoT Appareil SDK | MQTT | Certificat d'appareil X.509 | Empreinte du certificat X.509 |
AWS IoT Appareil SDK | MQTTterminé WebSocket | Utilisateur ou rôle IAM | userid |
Les exemples suivants illustrent les différents types de valeurs qui peuvent être renvoyés par principal()
:
-
Empreinte du certificat X.509 :
ba67293af50bf2506f5f93469686da660c7c844e7b3950bfb16813e0d31e9373
-
ID de rôle IAM et nom de session :
ABCD1EFG3HIJK2LMNOP5:my-session-name
-
Renvoie un ID utilisateur :
ABCD1EFG3HIJK2LMNOP5
rand()
Renvoie une valeur pseudo aléatoire, uniformément distribuée en double entre 0,0 et 1,0. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple :
rand()
= 0.8231909191640703
regexp_matches(String, String)
Renvoie la valeur true si la chaîne (le premier argument) contient un élément correspondant à l'expression régulière (le deuxième argument). Si vous l’utilisez |
dans l’expression régulière, utilisez-la avec ()
.
Exemples :
regexp_matches("aaaa", "a{2,}")
= vrai.
regexp_matches("aaaa", "b")
= false.
regexp_matches("aaa", "(aaa|bbb)")
= vrai.
regexp_matches("bbb", "(aaa|bbb)")
= vrai.
regexp_matches("ccc", "(aaa|bbb)")
= false.
Type d'argument | Résultat |
---|---|
Int |
La représentation String de la valeur Int . |
Decimal |
La représentation String de la valeur Decimal . |
Boolean |
La représentation String de la valeur booléenne (« vrai » ou « faux »). |
String |
La valeur String . |
Tableau | La représentation String de la valeur Array (à l'aide des règles de conversion standard). |
Objet | La représentation String de l'objet (à l'aide des règles de conversion standard). |
Null | Undefined . |
Non défini | Undefined . |
Deuxième argument :
Il doit s'agir d'une expression regex valide. Les types non-chaîne sont convertis en valeurs String
à l'aide des règles de conversion standard. Selon le type, la chaîne résultante peut ne pas être une expression régulière valide. Si l'argument (converti) n'est pas un regex valide, le résultat est Undefined
.
regexp_replace(String, String, String)
Remplace toutes les occurrences du deuxième argument (expression régulière) figurant dans le premier argument par le troisième argument. Fait référence aux groupes de capture avec « $ ». Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple :
regexp_replace("abcd", "bc", "x")
= "axd".
regexp_replace("abcd", "b(.*)d", "$1")
= "ac".
Type d'argument | Résultat |
---|---|
Int |
La représentation String de la valeur Int . |
Decimal |
La représentation String de la valeur Decimal . |
Boolean |
La représentation String de la valeur booléenne (« vrai » ou « faux »). |
String |
La valeur source. |
Tableau | La représentation String de la valeur Array (à l'aide des règles de conversion standard). |
Objet | La représentation String de l'objet (à l'aide des règles de conversion standard). |
Null | Undefined . |
Non défini | Undefined . |
Deuxième argument :
Il doit s'agir d'une expression regex valide. Les types non-chaîne sont convertis en valeurs String
à l'aide des règles de conversion standard. Selon le type, la chaîne résultante peut ne pas être une expression régulière valide. Si l'argument (converti) n'est pas une expression regex valide, le résultat est Undefined
.
Troisième argument :
Il doit s'agir d'une chaîne de remplacement regex valide. (Peut faire référence à d'autres groupes de capture.) Les types non-chaîne sont convertis en valeurs String
à l'aide des règles de conversion standard. Si l'argument (converti) n'est pas une chaîne de remplacement regex valide, le résultat est Undefined
.
regexp_substr(String, String)
Recherche la première correspondance du deuxième paramètre (regex) dans le premier paramètre. Fait référence aux groupes de capture avec « $ ». Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple :
regexp_substr("hihihello", "hi")
= "bonjour"
regexp_substr("hihihello", "(hi)*")
= "hihi"
Type d'argument | Résultat |
---|---|
Int |
La représentation String de la valeur Int . |
Decimal |
La représentation String de la valeur Decimal . |
Boolean |
La représentation String de la valeur booléenne (« vrai » ou « faux »). |
String |
L'argument String . |
Tableau | La représentation String de la valeur Array (à l'aide des règles de conversion standard). |
Objet | La représentation String de l'objet (à l'aide des règles de conversion standard). |
Null | Undefined . |
Non défini | Undefined . |
Deuxième argument :
Il doit s'agir d'une expression regex valide. Les types non-chaîne sont convertis en valeurs String
à l'aide des règles de conversion standard. Selon le type, la chaîne résultante peut ne pas être une expression régulière valide. Si l'argument (converti) n'est pas une expression regex valide, le résultat est Undefined
.
remainder(Decimal, Decimal)
Renvoie le reste résultant de la division du premier argument par le deuxième argument. Équivalent à mod(Decimal, Decimal). Vous pouvez également utiliser « % » comme opérateur infixe pour la même fonctionnalité modulo. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : remainder(8, 3)
= 2.
Opérande gauche | Opérande droit | Sortie |
---|---|---|
Int |
Int |
Int , les premier et deuxième arguments pour lesquels vous voulez exécuter la fonctionnalité Modulo. |
Int /Decimal |
Int /Decimal |
Decimal , le premier argument et le deuxième opérande pour lesquels vous voulez exécuter la fonctionnalité Modulo. |
String /Int /Decimal |
String /Int /Decimal |
Si toutes les chaînes sont converties en décimales, le résultat est le premier argument divisé par le deuxième argument. Sinon la valeur est renvoy, Undefined . |
Autre valeur | Autre valeur | Undefined . |
replace(String, String, String)
Remplace toutes les occurrences du deuxième argument par le troisième argument dans le premier argument. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple :
replace("abcd", "bc", "x")
= "axd"
.
replace("abcdabcd", "b", "x")
= "axcdaxcd"
.
Type d'argument | Résultat |
---|---|
Int |
La représentation String de la valeur Int . |
Decimal |
La représentation String de la valeur Decimal . |
Boolean |
La représentation String de la valeur booléenne (« vrai » ou « faux »). |
String |
La valeur source. |
Tableau | La représentation String de la valeur Array (à l'aide des règles de conversion standard). |
Objet | La représentation String de l'objet (à l'aide des règles de conversion standard). |
Null | Undefined . |
Non défini | Undefined . |
rpad(String, Int)
Renvoie l'argument chaîne, complété à droite par le nombre d'espaces spécifié dans le deuxième argument. L'argument Int
doit être compris entre 0 et 1000. Si la valeur fournie se situe en dehors de cette plage valide, l'argument est défini sur la valeur valide la plus proche (0 ou 1 000). Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemples :
rpad("hello", 2)
= "hello
".
rpad(1, 3)
= "1
".
Type d'argument 1 | Type d'argument 2 | Résultat |
---|---|---|
String |
Int |
L'argument String est complété à droite par un nombre d'espaces égal à la valeur Int fournie. |
String |
Decimal |
L'argument Decimal est arrondi à la valeur Int inférieure la plus proche, et la chaîne est complétée à droite par un nombre d'espaces égal à la valeur Int fournie. |
String |
String |
Le deuxième argument est converti en une valeur Decimal , qui est arrondie à la valeur Int inférieure la plus proche. L'argument String est complété à droite par un nombre d'espaces égal à la valeur Int fournie. |
Autre valeur | Int /Decimal /String |
La première valeur est convertie en une valeur String à l'aide des conversions standard, puis la fonction RPAD est appliquée sur cette valeur String . Si elle ne peut pas être convertie, le résultat est Undefined . |
N'importe quelle valeur | Autre valeur | Undefined . |
round(Decimal)
Arrondit la valeur Decimal
donnée à la valeur Int
la plus proche. Si la valeur Decimal
se situe à équidistance entre deux valeurs Int
(par exemple, 0,5), la valeur Decimal
est arrondie à la valeur supérieure. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : Round(1.2)
= 1.
Round(1.5)
= 2.
Round(1.7)
= 2.
Round(-1.1)
= -1.
Round(-1.5)
= -2.
Type d'argument | Résultat |
---|---|
Int |
L'argument. |
Decimal |
La valeur Decimal est arrondie à la valeur Int inférieure la plus proche. |
String |
La valeur Decimal est arrondie à la valeur Int inférieure la plus proche. Si la chaîne ne peut pas être convertie en une valeur Decimal , le résultat est Undefined . |
Autre valeur | Undefined . |
rtrim(String)
Supprime tous les espaces de fin (tabulations et espaces) de la valeur String
fournie. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemples :
rtrim(" h i ")
= " sa lut "
Type d'argument | Résultat |
---|---|
Int |
La représentation String de la valeur Int . |
Decimal |
La représentation String de la valeur Decimal . |
Boolean |
La représentation String de la valeur booléenne (« vrai » ou « faux »). |
Tableau | La représentation String de la valeur Array (à l'aide des règles de conversion standard). |
Objet | La représentation String de l'objet (à l'aide des règles de conversion standard). |
Null | Undefined . |
Non défini | Undefined |
sign(Decimal)
Renvoie le signe d'un chiffre donné. Lorsque le signe de l'argument est positif, la valeur 1 et renvoyée. Lorsque le signe de l'argument est négatif, la valeur -1 et renvoyée. Si l'argument est 0, la valeur 0 est renvoyée. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemples :
sign(-7)
= -1.
sign(0)
= 0.
sign(13)
= 1.
Type d'argument | Résultat |
---|---|
Int |
Int , le signe de la valeur Int . |
Decimal |
Int , le signe de la valeur Decimal . |
String |
Int , le signe de la valeur Decimal . La chaîne est convertie en une valeur Decimal , et le signe de la valeur Decimal est renvoyée. Si la valeur String ne peut pas être convertie en une valeur Decimal , le résultat est Undefined . Pris en charge par SQL la version 2015-10-08 et versions ultérieures. |
Autre valeur | Undefined . |
sin(Decimal)
Renvoie le sinus d'un nombre en radians. Les arguments Decimal
sont arrondis pour une meilleure prévision avant l'application de la fonction. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : sin(0)
= 0,0
Type d'argument | Résultat |
---|---|
Int |
Decimal (avec double précision), le sinus de l'argument. |
Decimal |
Decimal (avec double précision), le sinus de l'argument. |
Boolean |
Undefined . |
String |
Decimal (avec double précision), le sinus de l'argument. Si la chaîne ne peut pas être convertie en une valeur Decimal , le résultat est Undefined . |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Undefined |
Undefined . |
sinh(Decimal)
Renvoie le sinus hyperbolique d'un nombre. Les valeurs Decimal
sont arrondis pour une meilleure prévision avant l'application de la fonction. Le résultat est une valeur Decimal
de double précision. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : sinh(2.3)
= 4,936961805545957
Type d'argument | Résultat |
---|---|
Int |
Decimal (avec double précision), le sinus hyperbolique de l'argument. |
Decimal |
Decimal (avec double précision), le sinus hyperbolique de l'argument. |
Boolean |
Undefined . |
String |
Decimal (avec double précision), le sinus hyperbolique de l'argument. Si la chaîne ne peut pas être convertie en une valeur Decimal , le résultat est Undefined . |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Non défini | Undefined . |
sourceip()
Récupère l’adresse IP d’un appareil ou du routeur qui s’y connecte. Si votre appareil est connecté directement à Internet, la fonction renvoie l’adresse IP source de l’appareil. Si votre appareil est connecté à un routeur connecté à Internet, la fonction renvoie l’adresse IP source du routeur. Supporté par SQL la version 2016-03-23. sourceip()
ne prend aucun paramètre.
Important
L'adresse IP source publique d'un appareil est souvent l'adresse IP de la dernière passerelle de traduction d'adresses réseau (NAT), telle que le routeur ou le modem câble de votre fournisseur d'accès Internet.
Exemples :
sourceip()="192.158.1.38"
sourceip()="1.102.103.104"
sourceip()="2001:db8:ff00::12ab:34cd"
SQLexemple :
SELECT *, sourceip() as deviceIp FROM 'some/topic'
Exemples d'utilisation de la fonction sourceip () dans les actions de AWS IoT Core règles :
Exemple 1
L’exemple suivant montre comment appeler la fonction () en tant que modèle de substitution dans une action DynamoDB.
{ "topicRulePayload": { "sql": "SELECT * AS message FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "dynamoDB": { "tableName": "my_ddb_table", "hashKeyField": "key", "hashKeyValue": "${sourceip()}", "rangeKeyField": "timestamp", "rangeKeyValue": "${timestamp()}", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_dynamoDB" } } ] } }
Exemple 2
L'exemple suivant montre comment ajouter la fonction sourceip () en tant que propriété MQTT utilisateur à l'aide de modèles de substitution.
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "republish": { "topic": "${topic()}/republish", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_republish", "headers": { "payloadFormatIndicator": "UTF8_DATA", "contentType": "rule/contentType", "correlationData": "cnVsZSBjb3JyZWxhdGlvbiBkYXRh", "userProperties": [ { "key": "ruleKey1", "value": "ruleValue1" }, { "key": "sourceip", "value": "${sourceip()}" } ] } } } ] } }
Vous pouvez récupérer l'adresse IP source à partir des messages transmis aux AWS IoT Core règles depuis les chemins Message Broker et Basic Ingest. Vous pouvez également récupérer l'adresse IP source pour IPv4 les deux IPv6 messages. L’adresse IP source sera affichée comme suit :
IPv6: yyyy:yyyy:yyyy::yyyy:yyyy
IPv4: xxx.xxx.xxx.xxx
Note
L’adresse IP source d’origine ne sera pas transmise par lebiais de Republier l’action..
substring(String, Int[, Int])
Prévoit un argument String
suivi par une ou deux valeurs Int
. Pour un argument String
et un seul argument Int
, cette fonction renvoie la sous-chaîne de l'argument String
fourni provenant de l'index (de base 0, inclus) Int
fourni à la fin de l'argument String
. Pour un argument String
et deux arguments Int
, cette fonction renvoie la sous-chaîne de l'argument String
fourni provenant du premier argument d'index Int
(de base 0, inclus) dans le deuxième argument d'index Int
(de base 0, inclus). Les index qui sont inférieurs à zéro sont définis sur zéro. Les index qui sont supérieurs à la longueur de String
sont définis sur la longueur de String
. Pour la version des trois arguments, si le premier index est supérieur (ou égale) au deuxième index, le résultat et vide String
.
Si les arguments fournis ne sont pas (String
,Int
) ou (String
,Int
,Int
), les conversions standard sont appliquées aux arguments pour tenter de les convertir dans les types corrects. Si les types ne peuvent pas être convertis, le résultat de la fonction est Undefined
. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemples :
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)
= "true".
substring(false, -2.411E247)
= "false".
substring("012345", 1, 3)
= "12".
substring("012345", -50, 50)
= "012345".
substring("012345", 3, 1)
= "".
sql_version()
Renvoie la SQL version spécifiée dans cette règle. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple :
sql_version()
= "2016-03-23"
sqrt(Decimal)
Renvoie la racine carrée d'un nombre en radians. Les arguments Decimal
sont arrondis pour une meilleure prévision avant l'application de la fonction. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : sqrt(9)
= 3.0.
Type d'argument | Résultat |
---|---|
Int |
La racine carrée de l'argument. |
Decimal |
La racine carrée de l'argument. |
Boolean |
Undefined . |
String |
La racine carrée de l'argument. Si la chaîne ne peut pas être convertie en une valeur Decimal , le résultat est Undefined . |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Non défini | Undefined . |
startswith(String, String)
Renvoie une valeur Boolean
si le premier argument de type chaîne commence par le deuxième argument de type chaîne. Si l'un des arguments est Null
ou Undefined
, le résultat a la valeur Undefined
. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple :
startswith("ranger","ran")
= true
Type d'argument 1 | Type d'argument 2 | Résultat |
---|---|---|
String |
String |
Si la première chaîne commence par la deuxième chaîne. |
Autre valeur | Autre valeur | Les deux arguments sont convertis en chaînes à l'aide des règles de conversion standard. Renvoie la valeur true si la première chaîne commence par la deuxième chaîne. Si l'un des arguments est Null ou Undefined , le résultat a la valeur Undefined . |
tan(Decimal)
Renvoie la tangente d'un nombre en radians. Les valeurs Decimal
sont arrondis pour une meilleure prévision avant l'application de la fonction. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : tan(3)
= -0.1425465430742778
Type d'argument | Résultat |
---|---|
Int |
Decimal (avec double précision), la tangente de l'argument. |
Decimal |
Decimal (avec double précision), la tangente de l'argument. |
Boolean |
Undefined . |
String |
Decimal (avec double précision), la tangente de l'argument. Si la chaîne ne peut pas être convertie en une valeur Decimal , le résultat est Undefined . |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Non défini | Undefined . |
tanh(Decimal)
Renvoie la tangente hyperbolique d'un nombre en radians. Les valeurs Decimal
sont arrondis pour une meilleure prévision avant l'application de la fonction. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple : tanh(2.3)
= 0,9800963962661914
Type d'argument | Résultat |
---|---|
Int |
Decimal (avec double précision), la tangente hyperbolique de l'argument. |
Decimal |
Decimal (avec double précision), la tangente hyperbolique de l'argument. |
Boolean |
Undefined . |
String |
Decimal (avec double précision), la tangente hyperbolique de l'argument. Si la chaîne ne peut pas être convertie en une valeur Decimal , le résultat est Undefined . |
Tableau | Undefined . |
Objet | Undefined . |
Null | Undefined . |
Non défini | Undefined . |
time_to_epoch (Chaîne, Chaîne)
Utilisez cette fonction time_to_epoch
pour convertir une chaîne d’horodatage en un nombre de millisecondes en temps d’époque Unix. Pris en charge par SQL la version 2016-03-23 et versions ultérieures. Pour convertir des millisecondes en une chaîne d’horodatage formatée, veuillez consulter parse_time(String, Long[, String]).
La fonction time_to_epoch
attend les arguments suivants :
- timestamp
-
(Chaîne) Chaîne d’horodatage à convertir en millisecondes depuis l’ère Unix. Si la chaîne d'horodatage ne spécifie pas de fuseau horaire, la fonction utilise le fuseau horaire. UTC
- pattern
-
(Chaîne) Un modèle de date/heure qui suit les formats JDK11temporels.
Exemples :
time_to_epoch("2020-04-03 09:45:18 UTC+01:00", "yyyy-MM-dd HH:mm:ss
VV")
= 1585903518000
time_to_epoch("18 December 2015", "dd MMMM yyyy")
= 1450396800000
time_to_epoch("2007-12-03 10:15:30.592 America/Los_Angeles", "yyyy-MM-dd
HH:mm:ss.SSS z")
= 1196705730592
timestamp()
Renvoie l'horodatage actuel en millisecondes à partir de 00:00:00 Temps universel coordonné (UTC), jeudi 1er janvier 1970, tel qu'observé par le moteur de règles. AWS IoT Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple: timestamp()
= 1481825251155
topic(Decimal)
Il renvoie la rubrique vers laquelle le message qui a déclenché la règle a été envoyé. Si aucun paramètre n'est indiqué, la rubrique entière est renvoyée. Le paramètre Decimal
est utilisé pour spécifier un segment de rubrique spécifique, avec le chiffre 1 désignant le premier segment. Pour la rubrique foo/bar/baz
, topic(1) renvoie foo
, topic(2) renvoie bar
, et ainsi de suite. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemples :
topic()
= "things/myThings/thingOne"
topic(1)
= "things"
Lorsque Basic Ingest est utilisé, le préfixe initial de la rubrique ($aws/rules/
) n'est pas disponible pour la fonction topic(). Prenons l'exemple de la rubrique suivante :rule-name
$aws/rules/BuildingManager/Buildings/Building5/Floor2/Room201/Lights
topic()
= "Buildings/Building5/Floor2/Room201/Lights"
topic(3)
= "Floor2"
traceid()
Renvoie l'ID de trace (UUID) du MQTT message, ou Undefined
si le message n'a pas été envoyéMQTT. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple :
traceid()
= "12345678-1234-1234-1234-123456789012"
transformation (chaîne, objet, tableau)
Renvoie un tableau d’objets contenant le résultat de la transformation spécifiée du paramètre Object
sur le paramètre Array
.
Pris en charge par SQL la version 2016-03-23 et versions ultérieures.
- Chaîne
Le mode de transformation à utiliser. Reportez-vous au tableau suivant pour connaître les modes de transformation pris en charge et la manière dont ils créent le
Result
à partir des paramètresObject
etArray
.- Objet
Un objet qui contient les attributs à appliquer à chaque élément du
Array
.- Tableau
-
Tableau d’objets auxquels les attributs de
Object
sont appliqués.Chaque objet de ce tableau correspond à un objet dans la réponse de la fonction. Chaque objet de la réponse de la fonction contient les attributs présents dans l’objet d’origine et les attributs fournis par
Object
tels que déterminés par le mode de transformation spécifié dansString
.
|
|
|
Résultat |
---|---|---|---|
|
Objet |
Tableau d’objets |
Tableau d’objets dans lequel chaque objet contient les attributs d’un élément du paramètre |
Toute autre valeur |
N'importe quelle valeur |
N'importe quelle valeur |
Non défini |
Note
Le tableau renvoyé par cette fonction est limité à 128 KiB.
Exemple 1 de fonction de transformation
Cet exemple montre comment la fonction transform() produit un tableau unique d’objets à partir d’un objet de données et d’un tableau.
Dans cet exemple, le message suivant est publié dans le MQTT sujetA/B
.
{ "attributes": { "data1": 1, "data2": 2 }, "values": [ { "a": 3 }, { "b": 4 }, { "c": 5 } ] }
Cette SQL instruction pour une action de règle de sujet utilise la transform() fonction avec une String
valeur deenrichArray
. Dans cet exemple, Object
est la propriété attributes
de la charge utile du message et Array
est le tableau values
, qui contient trois objets.
select value transform("enrichArray", attributes, values) from 'A/B'
À la réception de la charge utile du message, l'SQLinstruction donne la réponse suivante.
[ { "a": 3, "data1": 1, "data2": 2 }, { "b": 4, "data1": 1, "data2": 2 }, { "c": 5, "data1": 1, "data2": 2 } ]
Exemple 2 de fonction de transformation
Cet exemple montre comment la fonction transform() peut utiliser des valeurs littérales pour inclure et renommer des attributs individuels à partir de la charge utile du message.
Dans cet exemple, le message suivant est publié dans le MQTT sujetA/B
. Il s’agit du même message que celui utilisé dans Exemple 1 de fonction de transformation.
{ "attributes": { "data1": 1, "data2": 2 }, "values": [ { "a": 3 }, { "b": 4 }, { "c": 5 } ] }
Cette SQL instruction pour une action de règle de sujet utilise la transform() fonction avec une String
valeur deenrichArray
. Le Object
dans la fonction transform() possède un seul attribut nommé key
avec la valeur de attributes.data1
dans la charge utile du message et Array
est le tableau values
qui contient les trois mêmes objets que ceux utilisés dans l’exemple précédent.
select value transform("enrichArray", {"key": attributes.data1}, values) from 'A/B'
À la réception de la charge utile du message, cette SQL instruction donne la réponse suivante. Notez comment la propriété data1
est nommée key
dans la réponse.
[ { "a": 3, "key": 1 }, { "b": 4, "key": 1 }, { "c": 5, "key": 1 } ]
Exemple 3 de fonction de transformation
Cet exemple montre comment la transform() fonction peut être utilisée dans des SELECT clauses imbriquées pour sélectionner plusieurs attributs et créer de nouveaux objets pour un traitement ultérieur.
Dans cet exemple, le message suivant est publié dans le MQTT sujetA/B
.
{ "data1": "example", "data2": { "a": "first attribute", "b": "second attribute", "c": [ { "x": { "someInt": 5, "someString": "hello" }, "y": true }, { "x": { "someInt": 10, "someString": "world" }, "y": false } ] } }
La fonction Object
for this transform est l'objet renvoyé par l'SELECTinstruction, qui contient les b
éléments a
et de l'data2
objet du message. Le paramètre Array
comprend les deux objets du tableau data2.c
figurant dans le message d’origine.
select value transform('enrichArray', (select a, b from data2), (select value c from data2)) from 'A/B'
Avec le message précédent, l'SQLinstruction donne la réponse suivante.
[ { "x": { "someInt": 5, "someString": "hello" }, "y": true, "a": "first attribute", "b": "second attribute" }, { "x": { "someInt": 10, "someString": "world" }, "y": false, "a": "first attribute", "b": "second attribute" } ]
Le tableau renvoyé dans cette réponse peut être utilisé avec des actions de règles de rubrique qui prennent en charge batchMode
.
trim(String)
Supprime tous les espaces de début et de fin de la valeur String
fournie. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemple :
Trim(" hi ")
= "bonjour"
Type d'argument | Résultat |
---|---|
Int |
La représentation String de Int avec tous les espaces de début et de fin supprimés. |
Decimal |
La représentation String de Decimal avec tous les espaces de début et de fin supprimés. |
Boolean |
La représentation String de la valeur Boolean (« vrai » ou « faux ») avec tous les espaces de début et de fin supprimés. |
String |
L'argument String avec tous les espaces de début et de fin supprimés. |
Tableau | La représentation String de la valeur Array à l'aide des règles de conversion standard. |
Objet | La représentation String de l'objet à l'aide des règles de conversion standard. |
Null | Undefined . |
Non défini | Undefined . |
trunc(Decimal, Int)
Tronque le premier argument du nombre de Decimal
, spécifié par le deuxième argument. Si le deuxième argument est inférieur à zéro, il est défini sur zéro. Si le deuxième argument est supérieur à 34, il est défini sur 34. Les zéros de fin sont supprimés du résultat. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemples :
trunc(2.3, 0)
= 2.
trunc(2.3123, 2)
= 2.31.
trunc(2.888, 2)
= 2.88.
trunc(2.00, 5)
= 2.
Type d'argument 1 | Type d'argument 2 | Résultat |
---|---|---|
Int |
Int |
La valeur source. |
Int /Decimal |
Int /Decimal |
Le premier argument est tronqué jusqu'à la longueur décrite par le deuxième argument. Le deuxième argument, s'il ne s'agit pas d'un Int , est arrondi à la valeur Int inférieure la plus proche. |
Int /Decimal /String |
Int /Decimal |
Le premier argument est tronqué jusqu'à la longueur décrite par le deuxième argument. Le deuxième argument, s'il ne s'agit pas d'un Int , est arrondi à la valeur Int inférieure la plus proche. Une valeur String est convertie en une valeur Decimal . Si la chaîne ne peut être pas convertie, le résultat est Undefined . |
Autre valeur | Undefined . |
upper(String)
Renvoie la version en majuscules de la valeur String
donnée. Les arguments non-String
sont convertis en valeurs String
à l'aide des règles de conversion standard. Pris en charge par SQL la version 2015-10-08 et versions ultérieures.
Exemples :
upper("hello")
= "HELLO"
upper(["hello"])
= "[\"HELLO\"]"