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 MQTT message 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 :
-
IAMRôle qui AWS IoT peut assumer la réalisation de l'
iotsitewise:BatchPutAssetPropertyValue
opération. Pour de plus amples informations, veuillez consulter 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'
BatchPutAssetPropertyValue
opération. Pour plus d'informations, reportez-vous BatchPutAssetPropertyValueà la section AWS IoT SiteWise APIRéférence.
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 unassetId
et unpropertyId
. 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 unassetId
et unpropertyId
.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 unassetId
et unpropertyId
.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 nouveauUUID.Prend en charge les modèles de substitution : Oui
propertyValues
-
Une liste de valeurs de propriétés à insérer, chacune contenant 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
-
Le IAM rôle qui accorde ARN l' AWS IoT autorisation d'envoyer la valeur d'une propriété d'actif à AWS IoT SiteWise. Pour de plus amples informations, veuillez consulter Prérequis.
Prend en charge les modèles de substitution : Non
Exemples
L'JSONexemple 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'JSONexemple 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
-
Qu'est-ce que AWS IoT SiteWise ? dans le Guide de l'utilisateur AWS IoT SiteWise
-
Ingestion de données à l'aide AWS IoT Core des règles du guide de l'AWS IoT SiteWise utilisateur
-
Ingestion de données vers AWS IoT SiteWise des AWS IoT objets figurant dans le guide de l'AWS IoT SiteWise utilisateur
-
Résolution des problèmes liés à une action de AWS IoT SiteWise règle dans le guide de AWS IoT SiteWise l'utilisateur