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 Events Problèmes courants et solutions
Consultez la section suivante pour résoudre les erreurs et trouver des solutions possibles pour résoudre les problèmes liés à AWS IoT Events.
Erreurs
- Erreurs de création du modèle de détecteur
- Mises à jour depuis un modèle de détecteur supprimé
- Défaillance du déclencheur d'action (en cas de respect d'une condition)
- Défaillance du déclencheur de l'action (en cas de dépassement d'un seuil)
- Utilisation incorrecte de l'état
- Message de connexion
- InvalidRequestException message
- action.setTimerErreurs Amazon CloudWatch Logs
- Erreurs de CloudWatch charge utile Amazon
- Types de données incompatibles
- Impossible d'envoyer le message à AWS IoT Events
Erreurs de création du modèle de détecteur
Je reçois des erreurs lorsque je tente de créer un modèle de détecteur.
Lorsque vous créez un modèle de détecteur, vous devez tenir compte des limites suivantes.
-
Une seule action est autorisée dans chaque
action
champ. -
Le
condition
est requis pourtransitionEvents
. C'est facultatif pourOnEnter
OnInput
, et lesOnExit
événements. -
Si le
condition
champ est vide, le résultat évalué de l'expression de condition est équivalent àtrue
. -
Le résultat évalué de l'expression de condition doit être une valeur booléenne. Si le résultat n'est pas une valeur booléenne, il est équivalent à la valeur
nextState
spécifiée dans l'actions
événementfalse
et ne déclenche pas la transition vers celle-ci.
Pour de plus amples informations, veuillez consulter AWS IoT Events restrictions et limites du modèle de détecteur.
Mises à jour depuis un modèle de détecteur supprimé
J'ai mis à jour ou supprimé un modèle de détecteur il y a quelques minutes, mais je reçois toujours des mises à jour de l'état de l'ancien modèle de détecteur par le biais de MQTT messages ou d'SNSalertes.
Si vous mettez à jour, supprimez ou recréez un modèle de détecteur (voir UpdateDetectorModel), il y a un délai avant que toutes les instances de détecteur soient supprimées et que le nouveau modèle soit utilisé. Pendant ce temps, les entrées peuvent continuer à être traitées par les instances de la version précédente du modèle de détecteur. Il est possible que vous continuiez à recevoir les alertes définies par le modèle de détecteur précédent. Patientez au moins sept minutes avant de vérifier à nouveau la mise à jour ou de signaler une erreur.
Défaillance du déclencheur d'action (en cas de respect d'une condition)
Le détecteur ne parvient pas à déclencher une action ou à passer à un nouvel état lorsque la condition est remplie.
Vérifiez que le résultat évalué de l'expression conditionnelle du détecteur est une valeur booléenne. Si le résultat n'est pas une valeur booléenne, il est équivalent à la valeur nextState
spécifiée dans l'action
événement false
et ne déclenche pas la transition vers celle-ci. Pour plus d'informations, consultez Syntaxe des expressions conditionnelles.
Défaillance du déclencheur de l'action (en cas de dépassement d'un seuil)
Le détecteur ne déclenche pas d'action ou de transition d'événement lorsque la variable d'une expression conditionnelle atteint une valeur spécifiée.
Si vous effectuez setVariable
une mise à jour pour onInput
onEnter
, ouonExit
, la nouvelle valeur n'est pas utilisée lors de l'évaluation d'une valeur condition
au cours du cycle de traitement en cours. Au lieu de cela, la valeur d'origine est utilisée jusqu'à ce que le cycle en cours soit terminé. Vous pouvez modifier ce comportement en définissant le evaluationMethod
paramètre dans la définition du modèle de détecteur. Lorsque evaluationMethod
ce paramètre est défini surSERIAL
, les variables sont mises à jour et les conditions des événements sont évaluées dans l'ordre dans lequel les événements sont définis. Lorsque evaluationMethod
ce paramètre est défini sur BATCH
(valeur par défaut), les variables sont mises à jour et les événements ne sont exécutés qu'une fois que toutes les conditions de l'événement ont été évaluées.
Utilisation incorrecte de l'état
Le détecteur entre dans les mauvais états lorsque j'essaie d'envoyer des messages aux entrées en utilisantBatchPutMessage
.
Si vous avez l'BatchPutMessagehabitude d'envoyer plusieurs messages aux entrées, l'ordre dans lequel les messages ou les entrées sont traités n'est pas garanti. Pour garantir la commande, envoyez les messages un par un et attendez à chaque fois BatchPutMessage
de confirmer le succès.
Message de connexion
Je reçois un ('Connection aborted.', error(54,
'Connection reset by peer'))
message d'erreur lorsque j'essaie d'appeler ou d'invoquer unAPI.
Vérifiez qu'Open SSL utilise la version TLS 1.1 ou une version ultérieure pour établir la connexion. Cela devrait être la valeur par défaut dans la plupart des distributions Linux ou dans les versions 7 et ultérieures de Windows. Les utilisateurs de macOS devront peut-être effectuer la mise à niveau d'OpenSSL.
InvalidRequestException message
Je reçois InvalidRequestException quand j'essaie d'appeler CreateDetectorModel
et UpdateDetectorModel
APIs.
Vérifiez les points suivants pour résoudre le problème. Pour plus d’informations, consultez CreateDetectorModel et UpdateDetectorModel.
-
Assurez-vous de ne pas utiliser
seconds
les deuxdurationExpression
en même temps que les paramètres deSetTimerAction
. -
Assurez-vous que l'expression de chaîne pour
durationExpression
est valide. L'expression sous forme de chaîne peut contenir des nombres, des variables ($variable.<variable-name>
) ou des valeurs d'entrée ($input.<input-name>.<path-to-datum>
).
action.setTimer
Erreurs Amazon CloudWatch Logs
Vous pouvez configurer Amazon CloudWatch Logs pour surveiller les instances AWS IoT Events de modèles de détecteurs. Les erreurs suivantes sont courantes générées par AWS IoT Events, lorsque vous utilisezaction.setTimer
.
-
Erreur : votre expression de durée pour le temporisateur nommé n'a pas
pu être évaluée en nombre.<timer-name>
Assurez-vous que l'expression sous forme de chaîne pour
durationExpression
peut être convertie en nombre. Les autres types de données, tels que les données booléennes, ne sont pas autorisés. -
Erreur : le résultat évalué de votre expression de durée pour le temporisateur nommé
est supérieur à 31622440. Pour garantir l'exactitude, assurez-vous que votre expression de durée fait référence à une valeur comprise entre 60‐31622400.<timer-name>
Assurez-vous que la durée de votre chronomètre est inférieure ou égale à 31622400 secondes. Le résultat évalué de la durée est arrondi au nombre entier inférieur le plus proche.
-
Erreur : le résultat évalué de votre expression de durée pour le temporisateur nommé
est inférieur à 60. Pour garantir l'exactitude, assurez-vous que votre expression de durée fait référence à une valeur comprise entre 60‐31622400.<timer-name>
Assurez-vous que la durée de votre chronomètre est supérieure ou égale à 60 secondes. Le résultat évalué de la durée est arrondi au nombre entier inférieur le plus proche.
-
Erreur : votre expression de durée pour le temporisateur nommé n'a pas
pu être évaluée. Vérifiez les noms des variables, les noms des entrées et les chemins d'accès aux données pour vous assurer que vous faites référence aux variables et entrées existantes.<timer-name>
Assurez-vous que votre expression sous forme de chaîne fait référence aux variables et entrées existantes. L'expression sous forme de chaîne peut contenir des nombres, des variables (
$variable.
) et des valeurs d'entrée (variable-name
$input.
).input-name
.path-to-datum
-
Erreur : Impossible de définir le minuteur nommé
<timer-name>
. Vérifiez votre expression de durée, puis réessayez.Consultez l'SetTimerActionaction pour vous assurer que vous avez spécifié les bons paramètres, puis réglez à nouveau le minuteur.
Pour plus d'informations, consultez Activer la CloudWatch journalisation Amazon lors du développement de modèles AWS IoT Events de détecteurs.
Erreurs de CloudWatch charge utile Amazon
Vous pouvez configurer Amazon CloudWatch Logs pour surveiller les instances AWS IoT Events de modèles de détecteurs. Vous trouverez ci-dessous les erreurs et les avertissements courants générés par AWS IoT Events, lorsque vous configurez la charge utile de l'action.
-
Erreur : nous n'avons pas pu évaluer votre expression pour l'action. Assurez-vous que les noms des variables, les noms d'entrée et les chemins d'accès aux données font référence aux variables et aux valeurs d'entrée existantes. Vérifiez également que la taille de la charge utile est inférieure à 1 Ko, la taille maximale autorisée d'une charge utile.
Assurez-vous de saisir les noms de variables, les noms d'entrée et les chemins d'accès aux données corrects. Ce message d'erreur peut également s'afficher si la charge utile de l'action est supérieure à 1 Ko.
-
Erreur : nous n'avons pas pu analyser votre expression de contenu pour la charge utile de.
Entrez une expression de contenu avec la syntaxe correcte.<action-type>
L'expression de contenu peut contenir des chaînes (
'
), des variables (string
'$variable.
), des valeurs d'entrée (variable-name
$input.
), des concaténations de chaînes et des chaînes contenant.input-name
.path-to-datum
${}
-
Erreur : votre expression de charge utile {
expression
} n'est pas valide. Le type de charge utile défini estJSON. Vous devez donc spécifier une expression qui AWS IoT Events serait évaluée en chaîne.Si le type de charge utile spécifié estJSON, vérifiez AWS IoT Events d'abord si le service peut évaluer votre expression sous forme de chaîne. Le résultat évalué ne peut pas être un booléen ou un nombre. Si la validation échoue, il se peut que vous receviez cette erreur.
-
Avertissement : L'action a été exécutée, mais nous n'avons pas pu évaluer la validité JSON de la charge utile de l'action dans votre expression de contenu. Le type de charge utile défini estJSON.
Assurez-vous qu'il est en AWS IoT Events mesure d'évaluer votre expression de contenu pour que la charge utile de l'action soit valideJSON, si vous définissez le type de charge utile comme.
JSON
AWS IoT Events exécute l'action même si AWS IoT Events l'expression de contenu n'est pas valideJSON.
Pour plus d'informations, consultez Activer la CloudWatch journalisation Amazon lors du développement de modèles AWS IoT Events de détecteurs.
Types de données incompatibles
Message : types de données incompatibles [<inferred-types>
] trouvés <reference>
dans l'expression suivante : <expression>
Ce message d'erreur peut s'afficher pour l'une des raisons suivantes :
-
Les résultats évalués de vos références ne sont pas compatibles avec les autres opérandes de vos expressions.
-
Le type de l'argument transmis à une fonction n'est pas pris en charge.
Lorsque vous utilisez des références dans des expressions, vérifiez les points suivants :
-
Lorsque vous utilisez une référence comme opérande avec un ou plusieurs opérateurs, assurez-vous que tous les types de données auxquels vous faites référence sont compatibles.
Par exemple, dans l'expression suivante, le nombre entier
2
est un opérande des&&
opérateurs==
et. Pour garantir la compatibilité des opérandes,$variable.testVariable + 1
ils$variable.testVariable
doivent faire référence à un entier ou à un nombre décimal.De plus, le nombre entier
1
est un opérande de l'+
opérateur. Par conséquent,$variable.testVariable
doit faire référence à un entier ou à un nombre décimal.‘$variable.testVariable + 1 == 2 && $variable.testVariable’
-
Lorsque vous utilisez une référence comme argument transmis à une fonction, assurez-vous que celle-ci prend en charge les types de données auxquels vous faites référence.
Par exemple, la
timeout("
fonction suivante nécessite une chaîne avec des guillemets comme argument. Si vous utilisez une référence pour latime-name
")timer-name
valeur, vous devez référencer une chaîne entre guillemets.timeout("
timer-name
")Note
Pour la
convert(
fonction, si vous utilisez une référence pour latype
,expression
)type
valeur, le résultat évalué de votre référence doit êtreString
Decimal
, ouBoolean
.
Pour de plus amples informations, veuillez consulter AWS IoT Events référence pour les entrées et les variables dans les expressions.
Impossible d'envoyer le message à AWS IoT Events
Message : Impossible d'envoyer le message à Iot Events
Cette erreur peut se produire pour les raisons suivantes :
La charge utile du message d'entrée ne contient pas le
Input attribute Key
.Le n'
Input attribute Key
est pas dans le même JSON chemin que celui spécifié dans la définition d'entrée.Le message d'entrée ne correspond pas au schéma tel que défini dans l' AWS IoT Events entrée.
Note
L'ingestion de données provenant d'autres services échouera également.
Par exemple AWS IoT Core, dans, la AWS IoT règle échouera avec le message suivant Verify the Input Attribute key.
Pour résoudre ce problème, assurez-vous que le schéma du message de charge utile d'entrée est conforme à la définition AWS IoT Events d'entrée et que l'Input attribute Key
emplacement correspond. Pour plus d'informations, consultez Créez une entrée pour les modèles dans AWS IoT Events la section pour savoir comment définir les AWS IoT Events entrées.