AWS IoT SiteWise - AWS IoT Core

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.

AWS IoT SiteWise

L'action AWS IoT SiteWise (iotSiteWise) envoie les données d'un message MQTT aux propriétés des actifs dans AWS IoT SiteWise.

Vous pouvez suivre un didacticiel qui explique comment ingérer des données provenant d' AWS IoT objets. Pour plus d'informations, consultez le didacticiel Ingestion de données vers AWS IoT SiteWise des AWS IoT objets ou la section Ingestion de données à l'aide des règles de AWS IoT base du guide de l'AWS IoT SiteWise utilisateur.

Prérequis

Cette action réglementaire est assortie des exigences suivantes :

  • Rôle IAM qui AWS IoT peut assumer la réalisation de l'iotsitewise:BatchPutAssetPropertyValueopération. Pour plus d’informations, consultez Accorder à une AWS IoT règle l'accès dont elle a besoin.

    Vous pouvez attacher l'exemple suivant de politique de confiance au rôle.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotsitewise:BatchPutAssetPropertyValue", "Resource": "*" } ] }

    Pour améliorer la sécurité, vous pouvez spécifier un chemin hiérarchique des AWS IoT SiteWise actifs dans la Condition propriété. L'exemple suivant est une stratégie d'approbation qui spécifie un chemin de hiérarchie de ressource.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotsitewise:BatchPutAssetPropertyValue", "Resource": "*", "Condition": { "StringLike": { "iotsitewise:assetHierarchyPath": [ "/root node asset ID", "/root node asset ID/*" ] } } } ] }
  • Lorsque vous envoyez des données à AWS IoT SiteWise avec cette action, celles-ci doivent répondre aux exigences de l'BatchPutAssetPropertyValueopération. Pour plus d'informations, consultez BatchPutAssetPropertyValuela référence de AWS IoT SiteWise l'API.

Paramètres

Lorsque vous créez une AWS IoT règle avec cette action, vous devez spécifier les informations suivantes :

putAssetPropertyValueEntries

Une liste d'entrées de valeurs de propriétés de ressources dont chaque entrée contient les informations suivantes :

propertyAlias

(Facultatif) l'alias de propriété associé à votre propriété de ressources. Vous devez spécifier un propertyAlias ou à la fois un assetId et un propertyId. Pour plus d'informations sur les alias de propriété, veuillez consulter Mappage de flux de données industrielles en propriétés de ressource dans le Guide de l'utilisateur AWS IoT SiteWise .

Prend en charge les modèles de substitution : Oui

assetId

(Facultatif) L'ID de l' AWS IoT SiteWise actif. Vous devez spécifier un propertyAlias ou à la fois un assetId et un propertyId.

Prend en charge les modèles de substitution: Oui

propertyId

(Facultatif) ID d'une propriété d'actif. Vous devez spécifier un propertyAlias ou à la fois un assetId et un propertyId.

Prend en charge les modèles de substitution: Oui

entryId

(Facultatif) Un identifiant unique pour cette entrée. Définir le entryId pour mieux savoir quel message a provoqué une erreur en cas de défaillance. La valeur par défaut est un nouvel UUID.

Prend en charge les modèles de substitution : Oui

propertyValues

Liste des valeurs de propriété à insérer, contenant chacune l'horodatage, la qualité et la valeur (TQV) au format suivant :

timestamp

Structure d'horodatage contenant les informations suivantes :

timeInSeconds

Chaîne contenant l’heure en secondes au format d'heure Unix epoch. Si votre charge utile de message n'a pas d'horodatage, vous pouvez utiliser timestamp(), qui renvoie l'heure actuelle en millisecondes. Pour convertir cette heure en secondes, vous pouvez utiliser le modèle de substitution suivant : ${floor(timestamp() / 1E3)}.

Prend en charge les modèles de substitution : Oui

offsetInNanos

(Facultatif) Chaîne contenant le décalage de nanoseconde par rapport à l’heure en secondes. Si votre charge utile de message n'a pas d'horodatage, vous pouvez utiliser timestamp(), qui renvoie l'heure actuelle en millisecondes. Pour calculer le décalage de nanosecondes à partir de cette heure, vous pouvez utiliser le modèle de substitution suivant : ${(timestamp() % 1E3) * 1E6}.

Prend en charge les modèles de substitution : Oui

En ce qui concerne Unix Epoch Time, n' AWS IoT SiteWise accepte que les entrées dont l'horodatage est compris entre 7 jours et 5 minutes dans le futur.

quality

(Facultatif) Chaîne qui décrit la qualité de la valeur. Valeurs valides : GOOD, BAD, UNCERTAIN.

Prend en charge les modèles de substitution : Oui

value

Structure de valeur qui contient l'un des champs de valeur suivants, en fonction du type de données de la propriété de la ressource :

booleanValue

(Facultatif) Chaîne qui contient la valeur booléenne de l'entrée de valeur.

Prend en charge les modèles de substitution : Oui

doubleValue

(Facultatif) Chaîne qui contient la valeur double de l'entrée de valeur.

Prend en charge les modèles de substitution : Oui

integerValue

(Facultatif) Chaîne qui contient la valeur d'entier de l'entrée de valeur.

Prend en charge les modèles de substitution : Oui

stringValue

(Facultatif) Valeur de chaîne de l'entrée de valeur.

Prend en charge les modèles de substitution : Oui

roleArn

L'ARN du rôle IAM qui AWS IoT autorise l'envoi d'une valeur de propriété d'actif à AWS IoT SiteWise. Pour plus d’informations, consultez Prérequis.

Prend en charge les modèles de substitution : Non

Exemples

L'exemple JSON suivant définit une SiteWise action IoT de base dans une AWS IoT règle.

{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "iotSiteWise": { "putAssetPropertyValueEntries": [ { "propertyAlias": "/some/property/alias", "propertyValues": [ { "timestamp": { "timeInSeconds": "${my.payload.timeInSeconds}" }, "value": { "integerValue": "${my.payload.value}" } } ] } ], "roleArn": "arn:aws:iam::123456789012:role/aws_iot_sitewise" } } ] } }

L'exemple JSON suivant définit une SiteWise action IoT dans une AWS IoT règle. Cet exemple utilise la rubrique comme alias de propriété et la fonction timestamp(). Par exemple, si vous publiez des données vers /company/windfarm/3/turbine/7/rpm, cette action envoie les données à la propriété de ressource avec un alias de propriété identique à la rubrique que vous avez spécifiée.

{ "topicRulePayload": { "sql": "SELECT * FROM '/company/windfarm/+/turbine/+/+'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "iotSiteWise": { "putAssetPropertyValueEntries": [ { "propertyAlias": "${topic()}", "propertyValues": [ { "timestamp": { "timeInSeconds": "${floor(timestamp() / 1E3)}", "offsetInNanos": "${(timestamp() % 1E3) * 1E6}" }, "value": { "doubleValue": "${my.payload.value}" } } ] } ], "roleArn": "arn:aws:iam::123456789012:role/aws_iot_sitewise" } } ] } }

Consultez aussi