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.
Groupes d'objets dynamiques
Les groupes d'objets dynamiques sont créés à partir de requêtes de recherche spécifiques dans le registre. Les paramètres de requête de recherche tels que la connectivité des appareils, la création d'ombres sur les appareils et les données relatives aux AWS IoT Device Defender violations le confirment. Les groupes d'objets dynamiques nécessitent l'activation de l'indexation du parc pour indexer, rechercher et agréger les données de vos appareils. Vous pouvez prévisualiser les éléments d'un groupe d'objets dynamique à l'aide d'une requête de recherche d'indexation de flotte avant de le créer. Pour plus d’informations, consultez Indexation de la flotte et Syntaxe de requête.
Note
Les opérations de groupes d'objets dynamiques sont mesurées dans le cadre des opérations de registre. Pour plus d'informations, consultez AWS IoT Core
additional metering details
Voici les raisons qui différencient les groupes d'objets dynamiques des groupes d'objets statiques :
-
L'appartenance des objets n'est pas explicitement définie. Pour créer un groupe d'objets dynamique, définissez une chaîne de requête de recherche afin de déterminer l'appartenance au groupe.
-
Les groupes d'objets dynamiques ne peuvent pas faire partie d'une hiérarchie.
-
Les groupes d’objets dynamiques ne peuvent pas avoir de politiques qui leur sont appliquées.
-
Vous utilisez un ensemble de commandes différent pour créer, mettre à jour et supprimer des groupes d'objets dynamiques. Pour toutes les autres opérations, vous utilisez les mêmes commandes pour les deux types de groupes d'objets.
-
Le nombre de groupes dynamiques par groupe Compte AWS est limité.
-
N'utilisez pas d'informations personnellement identifiables dans le nom de votre groupe d'objets. Le nom de groupe d'objet peut apparaître dans les communications et les rapports non chiffrés.
Pour plus d'informations sur les groupes d'objets statiques, consultez Groupes d’objets statiques.
Cas d'utilisation de groupes d'objets dynamiques
Vous pouvez utiliser des groupes d'objets dynamiques dans les cas d'utilisation suivants :
Spécifier un groupe d'objets dynamique comme cible pour une tâche
La création d'une tâche continue avec un groupe d'objets dynamique comme cible vous permet de cibler automatiquement les appareils lorsqu'ils répondent aux critères souhaités. Les critères peuvent être l'état de connectivité ou tout autre critère stocké dans le registre ou dans le shadow, tel que la version ou le modèle du logiciel. Si un objet n'apparaît pas dans le groupe d'objets dynamique, il ne recevra pas le document correspondant au travail.
Par exemple, si votre parc d'appareils nécessite une mise à jour du microprogramme afin de minimiser le risque d'interruption pendant le processus de mise à jour, et que vous souhaitez uniquement mettre à jour le microprogramme sur les appareils dont l'autonomie de la batterie est supérieure à 80 %. Vous pouvez créer un groupe d'objets dynamique appelé 80 PercentBatteryLife qui inclut uniquement les appareils dont l'autonomie de la batterie est supérieure à 80 % et l'utiliser comme cible pour votre travail. Seuls les appareils répondant à vos critères d'autonomie recevront la mise à jour du microprogramme. Lorsque les appareils atteignent le seuil d'autonomie de la batterie de 80 %, ils sont automatiquement ajoutés au groupe d'objets dynamiques et reçoivent la mise à jour du microprogramme.
Vous pouvez également avoir plusieurs modèles d'appareils dotés de microprogrammes ou de systèmes d'exploitation différents, ce qui nécessite différentes versions des nouvelles mises à jour logicielles. Il s'agit du cas d'utilisation le plus courant pour les groupes dynamiques avec des tâches continues, dans lesquels vous pouvez créer un groupe dynamique pour chaque combinaison de modèle d'appareil, de microprogramme et de système d'exploitation. Vous pouvez ensuite configurer des tâches continues pour chacun de ces groupes dynamiques afin de diffuser les mises à jour logicielles au fur et à mesure que les appareils deviennent membres de ces groupes en fonction des critères définis.
Pour de plus amples informations sur la spécification de groupes de choses en tant que cibles de travail, veuillez consulter CreateJob.
Utilisez les modifications dynamiques de l'appartenance à un groupe pour effectuer les actions souhaitées
Chaque fois qu'un appareil est ajouté ou supprimé d'un groupe d'objets dynamique, une notification est envoyée à une MQTT rubrique dans le cadre des mises à jour des événements du registre. Vous pouvez configurer AWS IoT Core des règles pour interagir avec les AWS services en fonction des mises à jour dynamiques de l'appartenance aux groupes et prendre les mesures souhaitées. Les actions incluent par exemple l'écriture Amazon DynamoDB, l'appel d'une fonction Lambda ou l'envoi d'une notification à Amazon. SNS
Ajoutez des appareils à un groupe d'objets dynamique pour une détection automatique des violations
AWS IoT Device Defender Les clients de Detect peuvent définir un profil de sécurité sur un groupe d'objets dynamique. Les appareils du groupe d'objets dynamique sont automatiquement détectés en cas de violation par le profil de sécurité défini dans le groupe.
Définissez des niveaux de journalisation sur des groupes d'objets dynamiques afin d'observer les appareils grâce à une journalisation précise
Vous pouvez spécifier un niveau de journalisation pour un groupe d'objets dynamique. Cela est utile si vous souhaitez uniquement personnaliser le niveau de journalisation et les détails pour les appareils répondant à certains critères. Par exemple, si vous pensez que des appareils dotés d'une certaine version du microprogramme sont à l'origine d'erreurs dans le sujet publié d'une règle spécifique, vous pouvez définir une journalisation détaillée pour résoudre ces problèmes. Dans ce cas, vous pouvez créer un groupe dynamique pour tous les appareils dotés de cette version du microprogramme, qui, nous le supposons, est stockée sous forme d'attribut de registre ou dans un espace virtuel. Vous pouvez ensuite définir un niveau de débogage, la cible de journalisation étant définie comme ce groupe d'objets dynamique. Pour plus d'informations sur la journalisation précise, consultez la section Surveillance à AWS IoT l'aide CloudWatch des journaux. Pour plus d'informations sur la manière de spécifier un niveau de journalisation pour un groupe d'objets spécifique, voir Configurer la connexion spécifique aux ressources. AWS IoT
Créer un groupe d'objets dynamique
Utilisez la commande CreateDynamicThingGroup pour créer un groupe d'objets dynamique. Pour créer un groupe d'objets dynamique pour le PercentBatteryLife scénario 80, utilisez la create-dynamic-thing-group CLI commande :
$ aws iot create-dynamic-thing-group --thing-group-name "80PercentBatteryLife" --query-string "attributes.batterylife80"
Note
N'utilisez pas d'informations personnellement identifiables dans les noms de vos groupes d'objets dynamiques.
La CreateDynamicThingGroup commande renvoie une réponse. La réponse contient le nom de l'index, la chaîne de requête, la version de la requête, le nom du groupe d'objets, l'ID du groupe d'objets et le nom de ressource Amazon (ARN) de votre groupe d'objets :
{ "indexName": "AWS_Things", "queryVersion": "2017-09-30", "thingGroupName": "80PercentBatteryLife", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/80PercentBatteryLife", "queryString": "attributes.batterylife80\n", "thingGroupId": "abcdefgh12345678ijklmnop12345678qrstuvwx" }
La création de groupes d'objets dynamiques ne se fait pas en une seule fois. Le remplissage complet d'un groupe d'objets dynamique prend un certain temps. Lorsque vous créez un groupe d'objets dynamique, le statut du groupe est défini surBUILDING
. Une fois le remplissage terminé, l'état passe à ACTIVE
. Pour vérifier l'état de votre groupe d'objets dynamique, utilisez la DescribeThingGroupcommande.
Décrire un groupe d'objets dynamique
Utilisez la commande DescribeThingGroup pour obtenir des informations sur un groupe d'objets dynamique :
$ aws iot describe-thing-group --thing-group-name "80PercentBatteryLife"
La commande DescribeThingGroup renvoie des informations sur le groupe spécifié :
{ "status": "ACTIVE", "indexName": "AWS_Things", "thingGroupName": "80PercentBatteryLife", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/80PercentBatteryLife", "queryString": "attributes.batterylife80\n", "version": 1, "thingGroupMetadata": { "creationDate": 1548716921.289 }, "thingGroupProperties": {}, "queryVersion": "2017-09-30", "thingGroupId": "84dd9b5b-2b98-4c65-84e4-be0e1ecf4fd8" }
L'exécution DescribeThingGroup sur un groupe d'objets dynamique renvoie des attributs spécifiques aux groupes d'objets dynamiques. Les exemples d'attributs de retour sont le queryString et le statut.
Le statut d'un groupe d'objets dynamique peut avoir les valeurs suivantes :
ACTIVE
-
Le groupe d'objets dynamique est prêt à l'emploi.
BUILDING
-
Le groupe d'objets dynamique est en cours de création et l'appartenance des objets est en cours de traitement.
REBUILDING
-
L'appartenance au groupe d'objets dynamique est en cours de mise à jour, en fonction de l'ajustement de la requête de recherche du groupe.
Note
Après avoir créé un groupe d'objets dynamique, utilisez-le quel que soit son statut. Seuls les groupes d'objets dynamiques ayant le statut ACTIVE
incluent tous les objets qui correspondent à la requête de recherche de ce groupe d'objets dynamique. Les groupes d'objets dynamiques ayant les statuts BUILDING
et REBUILDING
peuvent ne pas inclure tous les objets correspondant à la requête de recherche.
Mettre à jour un groupe d'objets dynamique
Utilisez la commande UpdateDynamicThingGroup pour mettre à jour les attributs d'un groupe d'objets dynamique, y compris la requête de recherche du groupe. La commande suivante met à jour deux attributs. L'une est la description du groupe d'objets, et l'autre est la chaîne de requête qui modifie les critères d'adhésion à une autonomie de batterie supérieure à 85 :
$ aws iot update-dynamic-thing-group --thing-group-name "80PercentBatteryLife" --thing-group-properties "thingGroupDescription=\"This thing group contains devices with a battery life greater than 85 percent.\"" --query-string "attributes.batterylife85"
La commande UpdateDynamicThingGroup renvoie une réponse qui contient le numéro de version du groupe après la mise à jour :
{ "version": 2 }
La mise à jour d'un groupe d'objets dynamique ne se fait pas en une seule fois. Le remplissage complet d'un groupe d'objets dynamique prend un certain temps. Lorsque vous mettez à jour un groupe d'objets dynamique, le statut du groupe devient REBUILDING
alors que le groupe met à jour ses membres. Une fois le remplissage terminé, l'état passe à ACTIVE
. Pour vérifier l'état de votre groupe d'objets dynamique, utilisez la DescribeThingGroupcommande.
Supprimer un groupe d'objets dynamique
Utilisez la commande DeleteDynamicThingGroup pour supprimer un groupe d'objets dynamique :
$ aws iot delete-dynamic-thing-group --thing-group-name "80PercentBatteryLife"
La DeleteDynamicThingGroup commande ne génère pas de sortie.
Les commandes qui affichent à quels groupes un objet appartient (par exemple, ListGroupsForThing) peuvent continuer à afficher le groupe pendant que les enregistrements sont mis à jour sur le cloud.
Limitations des groupes d'objets dynamiques et statiques
Les groupes d'objets dynamiques et les groupes d'objets statiques présentent les limites suivantes :
Limites relatives aux groupes d'objets dynamiques
Les groupes d'objets dynamiques présentent les limites suivantes :
Indexation de la flotte
Lorsque le service d'indexation de flotte est activé, vous pouvez effectuer des requêtes de recherche sur votre parc d'appareils. Vous pouvez créer et gérer des groupes d'objets dynamiques une fois le remblayage d'indexation de la flotte terminé. Le délai d'exécution du processus de remblayage dépend directement de la taille de votre parc d'appareils enregistré auprès du. AWS Cloud Une fois que vous avez activé le service d'indexation de flotte pour les groupes d'objets dynamiques, vous ne pouvez pas le désactiver tant que vous n'avez pas supprimé tous vos groupes d'objets dynamiques.
Note
Si vous disposez d'autorisations pour interroger l'index de la flotte, vous pouvez accéder aux données d'objets dans la totalité de la flotte.
Le nombre de groupes d’objets dynamiques est limité
Le nombre de groupes d'objets dynamiques est limité.
Les commandes réussies peuvent enregistrer les erreurs
Lorsque vous créez ou mettez à jour un groupe d'objets dynamique, il est possible que certains éléments soient éligibles à l'inclusion dans un groupe d'objets dynamique, mais qu'ils n'y soient pas ajoutés. Ce scénario entraînera le succès d'une commande de création ou de mise à jour lors de la journalisation d'une erreur et de la génération d'une AddThingToDynamicThingGroupsFailed métrique. Une seule métrique peut représenter plusieurs entrées de journal.
Une entrée du journal des erreurs est créée dans le CloudWatch journal lorsque les événements suivants se produisent :
-
Un objet éligible ne peut pas être ajouté à un groupe d'objets dynamique.
-
Un objet est supprimé d'un groupe d'objets dynamique pour l'ajouter à un autre groupe.
Lorsqu'un objet peut être ajouté à un groupe d'objets dynamique, tenez compte des points suivants :
-
Est-ce que l’objet est déjà contenu dans autant de groupes que possible ? (Consultez la section limites)
-
NON : L’objet est ajouté au groupe d’objets dynamiques.
-
YES: L'objet appartient-il à des groupes d'objets dynamiques ?
-
NON : L’objet ne peut pas être ajouté au groupe d’objets dynamiques, une erreur est enregistrée et une métrique AddThingToDynamicThingGroupsFailed est générée.
-
YES: Le groupe d'objets dynamiques à rejoindre est-il plus ancien que les groupes d'objets dynamiques dont l'objet est déjà membre ?
-
NON : L’objet ne peut pas être ajouté au groupe d’objets dynamiques, une erreur est enregistrée et une métrique AddThingToDynamicThingGroupsFailed est générée.
-
YES: supprimez l'objet du groupe d'objets dynamiques le plus récent, enregistrez une erreur et ajoutez-le au groupe d'objets dynamique. Cela génère une erreur et une métrique AddThingToDynamicThingGroupsFailed pour le groupe d’objets dynamiques duquel l’objet a été supprimé.
-
-
-
Lorsqu'un objet d'un groupe d'objets dynamique ne répond plus à la requête de recherche, il est retiré du groupe d'objets dynamique. De même, lorsqu'un objet est mis à jour pour répondre à la requête de recherche d'un groupe d'objets dynamique, l'objet est ensuite ajouté au groupe comme décrit précédemment. Ces ajouts et suppressions sont normaux et ne produisent pas d'entrées de journal des erreurs.
Si l'attribut overrideDynamicGroups
est activé, les groupes statiques sont prioritaires par rapport aux groupes dynamiques
Le nombre de groupes auxquels un objet peut appartenir est limité. Lorsque vous utilisez les UpdateThingGroupsForThingcommandes AddThingToThingGroupou pour mettre à jour l'appartenance à un objet, l'ajout du --overrideDynamicGroups
paramètre donne la priorité aux groupes d'objets statiques par rapport aux groupes d'objets dynamiques.
Lorsque vous ajoutez un objet à un groupe d'objets statique, tenez compte des points suivants :
-
Est-ce que l’objet appartient déjà au nombre maximal de groupes ?
-
NON : La chose est ajoutée au groupe d’objets statiques.
-
YES: Est-ce que le truc se trouve dans des groupes dynamiques ?
-
NON : L’objet ne peut pas être ajouté au groupe d’objets. La commande déclenche une exception.
-
YES: A été --overrideDynamicGroups activé ?
-
NON : L’objet ne peut pas être ajouté au groupe d’objets. La commande déclenche une exception.
-
YES: L'objet est supprimé du dernier groupe d'objets dynamiques créé, une erreur est enregistrée et une AddThingToDynamicThingGroupsFailedmétrique est générée pour le groupe d'objets dynamiques dont l'objet a été supprimé. Ensuite, l’objet est ajouté au groupe d’objets statiques.
-
-
-
Les groupes d'objets dynamiques plus anciens sont prioritaires par rapport aux groupes d'objets plus récents.
Le nombre de groupes auxquels un objet peut appartenir est limité. Lorsqu'une opération de création ou de mise à jour crée une éligibilité de groupe supplémentaire pour un objet et que l'objet a atteint sa limite de groupe, il est possible de le supprimer d'un autre groupe d'objets dynamique pour activer cet ajout. Pour plus d'informations sur la façon de procéder, consultez Les commandes réussies peuvent enregistrer les erreurs et Si l'attribut overrideDynamicGroups est activé, les groupes statiques sont prioritaires par rapport aux groupes dynamiques pour obtenir des exemples.
Lorsqu'un objet est supprimé d'un groupe d'objets dynamique, une erreur est enregistrée et un événement est déclenché.
Vous ne pouvez pas appliquer de politique à des groupes d’objets dynamiques
Le fait de tenter d’appliquer une stratégie à un groupe d’objets dynamiques génère une exception.
L'appartenance à un groupe d'objets dynamique est cohérente à terme
Seul le dernier état d'un objet est évalué pour le registre. Les états intermédiaires peuvent être ignorés s'ils sont mis à jour rapidement. Évitez d'associer une règle ou une tâche à un groupe d'objets dynamique dont l'appartenance dépend d'un état intermédiaire.