Publié le: Jan 12, 2021

AWS IoT SiteWise prend désormais en charge l'utilisation de méthodes dans les expressions de formule par le biais de la syntaxe d'appel de fonction uniforme (UFCS).

Auparavant, les utilisateurs pouvaient définir des expressions pour les transformations et les métriques dans AWS IoT SiteWise en utilisant des fonctions imbriquées, mais à partir d'aujourd'hui, ils peuvent également le faire en enchaînant les appels de méthode avec UFCS. Cette syntaxe facilite la lisibilité et la traçabilité des formules complexes pour les métriques et les transformations dans le modèle de ressources AWS IoT SiteWise. UFCS peut être utilisé avec tous les types de fonctions courants pris en charge dans AWS IoT SiteWise - fonctions communes, de comparaison, conditionnelles, de chaîne, d'agrégation et temporelles. UFCS peut être utilisé dans la console AWS IoT SiteWise ou dans l'interface de ligne de commande (CLI). Pour en savoir plus sur les SCFU et les types de fonctions, visitez expressions de formules AWS IoT SiteWise

La fonctionnalité UFCS permet aux utilisateurs de référencer toute fonction disponible dans AWS IoT SiteWise aujourd'hui, f(n) comme n.f() en utilisant des appels de méthode. Plus généralement, les utilisateurs peuvent remplacer les fonctions f(a,b,c...) en utilisant la syntaxe de l'enchaînement des méthodes comme a.f(b,c..) où « a » peut être une variable ou une fonction a= f1(x). Comme exemple de cas d'utilisation par le client, si un utilisateur veut définir une métrique qui renvoie le log d'une fonction cosinus, log(cos(a)), il peut maintenant l'exprimer sous la forme cos(a).log() en utilisant l'UFCS. AWS IoT SiteWise prend également en charge le chaînage des fonctions if-else à l'aide de l'UFCS, ce qui facilite la définition et le suivi de plusieurs niveaux de logique conditionnelle imbriquée. En tant que format générique, une déclaration if imbriquée écrite auparavant comme :

if(condition1, on_true_1, if(condition2, on_true_2, on_false_2))

peut maintenant aussi être écrite en utilisant l'imbrication if-elif sous le format UFCS comme :

if(condition1, on_true_1).elif(condition2, on_true_2, on_false_2)

Par exemple, si un opérateur de site d'énergie renouvelable veut tester si la puissance d'un panneau solaire se situe dans une certaine plage (1-4 kilowatts), il a la possibilité de l'encoder de deux façons : efficiency= if(power.lt(1000),0).elif(power.gt(4000),0,1) en utilisant l'UFCS ou if(lt(power, 1000), 0, if(gt(power,4000), 0,1)) en utilisant des fonctions imbriquées. De plus, UFCS peut être utilisé pour le chaînage de méthodes avec des opérations de chaînes de caractères. Par exemple, un utilisateur peut détecter le statut d'un équipement dans un message JSON comme status= contains(lower(jp(message, '$.status')),'fail') en utilisant des fonctions imbriquées, ou status= message.jp('$.status').lower().contains('fail') en utilisant la syntaxe UFCS. Cela permet une meilleure traçabilité et un meilleur diagnostic des problèmes dans les calculs avec plusieurs fonctions. 

AWS IoT SiteWise est un service géré pour collecter, stocker, organiser et surveiller les données des équipements industriels à grande échelle. Pour en savoir plus, consultez le site web d'AWS IoT SiteWise ou le guide du développeur. Pour obtenir la liste des régions où AWS IoT SiteWise est pris en charge, visitez Régions AWS