Interagir avec la configuration des composants - AWS IoT Greengrass

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.

Interagir avec la configuration des composants

Le service IPC de configuration des composants vous permet d'effectuer les opérations suivantes :

  • Obtenez et définissez les paramètres de configuration des composants.

  • Abonnez-vous aux mises à jour de configuration des composants.

  • Validez les mises à jour de configuration des composants avant que le noyau ne les applique.

Versions minimales du SDK

Le tableau suivant répertorie les versions minimales Kit SDK des appareils AWS IoT que vous devez utiliser pour interagir avec la configuration des composants.

GetConfiguration

Obtient une valeur de configuration pour un composant du périphérique principal. Vous spécifiez le chemin clé pour lequel vous souhaitez obtenir une valeur de configuration.

Demande

La demande de cette opération comporte les paramètres suivants :

componentName(Python :component_name)

(Facultatif) Le nom du composant.

La valeur par défaut est le nom du composant qui fait la demande.

keyPath(Python :key_path)

Le chemin clé vers la valeur de configuration. Spécifiez une liste dans laquelle chaque entrée est la clé d'un seul niveau de l'objet de configuration. Par exemple, spécifiez ["mqtt", "port"] d'obtenir la valeur de port dans la configuration suivante.

{ "mqtt": { "port": 443 } }

Pour obtenir la configuration complète du composant, spécifiez une liste vide.

Réponse

La réponse de cette opération contient les informations suivantes :

componentName(Python :component_name)

Le nom du composant.

value

La configuration demandée sous forme d'objet.

UpdateConfiguration

Met à jour une valeur de configuration pour ce composant sur le périphérique principal.

Demande

La demande de cette opération comporte les paramètres suivants :

keyPath(Python :key_path)

(Facultatif) Le chemin clé vers le nœud de conteneur (l'objet) à mettre à jour. Spécifiez une liste dans laquelle chaque entrée est la clé d'un seul niveau de l'objet de configuration. Par exemple, spécifiez le chemin clé ["mqtt"] et la valeur de fusion { "port": 443 } dont vous souhaitez définir la valeur port dans la configuration suivante.

{ "mqtt": { "port": 443 } }

Le chemin clé doit spécifier un nœud de conteneur (un objet) dans la configuration. Si le nœud n'existe pas dans la configuration du composant, cette opération le crée et attribue sa valeur à l'objet dansvalueToMerge.

La valeur par défaut est la racine de l'objet de configuration.

timestamp

Durée actuelle de l'époque Unix en millisecondes. Cette opération utilise cet horodatage pour résoudre les mises à jour simultanées de la clé. Si la clé de la configuration du composant possède un horodatage supérieur à celui de la demande, la demande échoue.

valueToMerge(Python :value_to_merge)

L'objet de configuration à fusionner à l'emplacement que vous spécifiezkeyPath. Pour plus d’informations, consultez Mettre à jour les configurations des composants.

Réponse

Cette opération ne fournit aucune information dans sa réponse.

SubscribeToConfigurationUpdate

Abonnez-vous pour recevoir des notifications lorsque la configuration d'un composant est mise à jour. Lorsque vous vous abonnez à une clé, vous recevez une notification lorsqu'un enfant porteur de cette clé est mis à jour.

Il s'agit d'une opération d'abonnement dans le cadre de laquelle vous vous abonnez à un flux de messages d'événements. Pour utiliser cette opération, définissez un gestionnaire de réponse au flux avec des fonctions qui gèrent les messages d'événements, les erreurs et la fermeture du flux. Pour plus d’informations, consultez Abonnez-vous aux diffusions IPC d'événements.

Type de message d'événement : ConfigurationUpdateEvents

Demande

La demande de cette opération comporte les paramètres suivants :

componentName(Python :component_name)

(Facultatif) Le nom du composant.

La valeur par défaut est le nom du composant qui fait la demande.

keyPath(Python :key_path)

Le chemin clé vers la valeur de configuration à laquelle vous souhaitez vous abonner. Spécifiez une liste dans laquelle chaque entrée est la clé d'un seul niveau de l'objet de configuration. Par exemple, spécifiez ["mqtt", "port"] d'obtenir la valeur de port dans la configuration suivante.

{ "mqtt": { "port": 443 } }

Pour vous abonner aux mises à jour pour toutes les valeurs de la configuration du composant, spécifiez une liste vide.

Réponse

La réponse de cette opération contient les informations suivantes :

messages

Le flux de messages de notification. Cet objet contient ConfigurationUpdateEvents les informations suivantes :

configurationUpdateEvent(Python :configuration_update_event)

L'événement de mise à jour de configuration. Cet objet contient ConfigurationUpdateEvent les informations suivantes :

componentName(Python :component_name)

Le nom du composant.

keyPath(Python :key_path)

Le chemin clé vers la valeur de configuration mise à jour.

SubscribeToValidateConfigurationUpdates

Abonnez-vous pour recevoir des notifications avant les mises à jour de configuration de ce composant. Cela permet aux composants de valider les mises à jour de leur propre configuration. Utilisez cette SendConfigurationValidityReport opération pour indiquer au noyau si la configuration est valide ou non.

Important

Les déploiements locaux n'informent pas les composants des mises à jour.

Il s'agit d'une opération d'abonnement dans le cadre de laquelle vous vous abonnez à un flux de messages d'événements. Pour utiliser cette opération, définissez un gestionnaire de réponse au flux avec des fonctions qui gèrent les messages d'événements, les erreurs et la fermeture du flux. Pour plus d’informations, consultez Abonnez-vous aux diffusions IPC d'événements.

Type de message d'événement : ValidateConfigurationUpdateEvents

Demande

La demande de cette opération ne comporte aucun paramètre.

Réponse

La réponse de cette opération contient les informations suivantes :

messages

Le flux de messages de notification. Cet objet contient ValidateConfigurationUpdateEvents les informations suivantes :

validateConfigurationUpdateEvent(Python :validate_configuration_update_event)

L'événement de mise à jour de configuration. Cet objet contient ValidateConfigurationUpdateEvent les informations suivantes :

deploymentId(Python :deployment_id)

ID du AWS IoT Greengrass déploiement qui met à jour le composant.

configuration

L'objet qui contient la nouvelle configuration.

SendConfigurationValidityReport

Indiquez au noyau si une mise à jour de configuration de ce composant est valide ou non. Le déploiement échoue si vous indiquez au noyau que la nouvelle configuration n'est pas valide. Utilisez l'SubscribeToValidateConfigurationUpdatesopération pour vous abonner afin de valider les mises à jour de configuration.

Si un composant ne répond pas à une notification de mise à jour de configuration validée, le noyau attend le délai que vous spécifiez dans la politique de validation de configuration du déploiement. Après ce délai, le noyau procède au déploiement. Le délai de validation du composant par défaut est de 20 secondes. Pour plus d'informations, reportez-vous à la section Créer des déploiements et à l'DeploymentConfigurationValidationPolicyobjet que vous pouvez fournir lorsque vous appelez l'CreateDeploymentopération.

Demande

La demande de cette opération comporte les paramètres suivants :

configurationValidityReport(Python :configuration_validity_report)

Le rapport qui indique au noyau si la mise à jour de configuration est valide ou non. Cet objet contient ConfigurationValidityReport les informations suivantes :

status

Le statut de validité. Cette énumération possède ConfigurationValidityStatus les valeurs suivantes :

  • ACCEPTED— La configuration est valide et le noyau peut l'appliquer à ce composant.

  • REJECTED— La configuration n'est pas valide et le déploiement échoue.

deploymentId(Python :deployment_id)

ID du AWS IoT Greengrass déploiement qui a demandé la mise à jour de configuration.

message

(Facultatif) Message indiquant pourquoi la configuration n'est pas valide.

Réponse

Cette opération ne fournit aucune information dans sa réponse.