AWS IoT Events Problèmes courants et solutions - AWS IoT Events

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 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 pour OnEnterOnInput, et les OnExit é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énement false et ne déclenche pas la transition vers celle-ci.

Pour plus d’informations, consultez 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 messages MQTT ou d'alertes SNS.

Si vous mettez à jour, supprimez ou recréez un modèle de détecteur (voir UpdateDetectorModèle), 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 onInputonEnter, 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'à la fin du cycle en cours. 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 utilisez BatchPutMessage pour 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 je tente d'appeler ou d'invoquer une API.

Vérifiez qu'OpenSSL utilise le protocole 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 mettre à jour OpenSSL.

InvalidRequestException message

Je reçois des UpdateDetectorModel API InvalidRequestException lorsque j'essaie CreateDetectorModel d'appeler.

Vérifiez les points suivants pour résoudre le problème. Pour plus d'informations, voir CreateDetectorModèle et UpdateDetectormodèle.

  • Assurez-vous de ne pas utiliser seconds les deux durationExpression 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.setTimerErreurs 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 <timer-name> pu être évaluée en nombre.

    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é <timer-name> 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.

    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é <timer-name> 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.

    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 <timer-name> 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.

    Assurez-vous que votre expression 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.variable-name) et des valeurs d'entrée ($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'SetTimeraction Action 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. <action-type> Entrez une expression de contenu avec la syntaxe correcte.

    L'expression de contenu peut contenir des chaînes ('string'), des variables ($variable.variable-name), des valeurs d'entrée ($input.input-name.path-to-datum), des concaténations de chaînes et des chaînes contenant. ${}

  • Erreur : votre expression de charge utile {expression} n'est pas valide. Le type de charge utile défini est JSON. 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é est JSON, AWS IoT Events vérifiez 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 votre expression de contenu pour déterminer si la charge utile de l'action était au format JSON valide. Le type de charge utile défini est JSON.

    Assurez-vous qu'il AWS IoT Events peut évaluer votre expression de contenu pour que la charge utile de l'action soit au format JSON valide, si vous définissez le type de charge utile comme. JSON AWS IoT Events exécute l'action même s'il n'est pas AWS IoT Events possible d'évaluer l'expression de contenu en JSON valide.

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("time-name") fonction suivante nécessite une chaîne avec des guillemets comme argument. Si vous utilisez une référence pour la valeur du nom du minuteur, vous devez référencer une chaîne entre guillemets.

    timeout("timer-name")
    Note

    Pour la convert(type, expression) fonction, si vous utilisez une référence pour la valeur du type, le résultat évalué de votre référence doit être StringDecimal, ouBoolean.

Pour plus d’informations, consultez Références.

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 leInput attribute Key.

  • Le n'Input attribute Keyest pas dans le même chemin JSON 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 Keyemplacement correspond. Pour plus d'informations, Création d'une entrée dans le volet de navigation voir comment définir les AWS IoT Events entrées.