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.
MQTTSujets relatifs à Device Shadow
Le service Device Shadow utilise des MQTT rubriques réservées pour permettre aux appareils et aux applications d'obtenir, de mettre à jour ou de supprimer les informations d'état d'un appareil (shadow).
La publication et l'abonnement à des rubriques shadow nécessite une autorisation basée sur les rubriques. AWS IoT
se réserve le droit d'ajouter de nouvelles rubriques à la structure de rubriques existante. C'est pourquoi nous vous recommandons d'éviter les abonnements de caractère générique aux rubriques shadow. Par exemple, évitez de vous abonner à des filtres de sujets, $aws/things/thingName/shadow/#
car le nombre de sujets correspondant à ce filtre de sujet peut augmenter à mesure que de nouveaux AWS IoT sujets secondaires seront introduits. Pour consulter des messages publiés dans ces rubriques, consultez Interaction avec les shadows.
Les shadows peuvent être nommés ou non (classique). Les rubriques utilisées par chacun d'eux ne diffèrent que par le préfixe de rubrique. Ce tableau indique le préfixe de rubrique utilisé par chaque type de shadow.
ShadowTopicPrefix value |
Type de shadow |
---|---|
$aws/things/ |
Shadow non nommé (classique) |
$aws/things/ |
Shadow nommé |
Pour créer une rubrique complète, sélectionnez le
pour le type de shadow auquel vous souhaitez faire référence, remplacez ShadowTopicPrefix
, et thingName
le cas échéant, par leurs valeurs correspondantes, puis ajoutez cela au stub de rubrique comme indiqué dans les sections suivantes.shadowName
Les MQTT sujets suivants sont utilisés pour interagir avec les ombres.
Rubriques
/get
Publier un message vide dans cette rubrique pour obtenir le shadow d'appareil :
ShadowTopicPrefix
/get
AWS IoT répond en publiant à l'un /get/accepted ou à l'autre/get/rejected.
Exemple de stratégie
Voici un exemple de document de stratégie requise :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:
region
:account
:topic/$aws/things/thingName
/shadow/get" ] } ] }
/get/accepted
AWS IoT publie un document d'ombre de réponse dans cette rubrique lors du renvoi de l'ombre de l'appareil :
ShadowTopicPrefix
/get/accepted
Pour de plus amples informations, veuillez consulter Documents d'état de la réponse.
Exemple de stratégie
Voici un exemple de document de stratégie requise :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/get/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/get/accepted" ] } ] }
/get/rejected
AWS IoT publie un document de réponse aux erreurs dans cette rubrique lorsqu'il ne parvient pas à renvoyer l'ombre de l'appareil :
ShadowTopicPrefix
/get/rejected
Pour de plus amples informations, veuillez consulter Document de réponse d'erreur.
Exemple de stratégie
Voici un exemple de document de stratégie requise :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/get/rejected" ] }, { "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/get/rejected" ] } ] }
/update
Publier un document d'état de la demande dans cette rubrique pour mettre à jour l'objet d'appareil :
ShadowTopicPrefix
/update
Le corps du message contient un document d'état de demande partiel.
Un client essayant de mettre à jour l'état d'un appareil enverrait un document d'état de JSON demande avec la desired
propriété suivante :
{ "state": { "desired": { "color": "red", "power": "on" } } }
Un appareil mettant à jour son ombre enverrait un document d'état de JSON demande contenant la reported
propriété, tel que celui-ci :
{ "state": { "reported": { "color": "red", "power": "on" } } }
AWS IoT répond en publiant à l'un /update/accepted ou à l'autre/update/rejected.
Exemple de stratégie
Voici un exemple de document de stratégie requise :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:
region
:account
:topic/$aws/things/thingName
/shadow/update" ] } ] }
/update/delta
AWS IoT publie un document d'état de réponse dans cette rubrique lorsqu'il accepte une modification de l'ombre du périphérique, et le document d'état de la demande contient des valeurs desired
et des reported
états différents :
ShadowTopicPrefix
/update/delta
Le tampon de messages contient un /documents d'état de la réponse delta.
Détails du corps de message
-
Un message publié dans
update/delta
comprend uniquement les attributs « souhaité » qui diffèrent entre les sectionsdesired
etreported
. Il contient tous ces attributs, indépendamment qu'ils aient été contenus dans le message de mise à jour actuel ou qu'ils aient déjà été stockés dans AWS IoT. Les attributs qui ne diffèrent pas entre les sectionsdesired
etreported
ne sont pas inclus. -
Si un attribut figure dans la section
reported
, mais qu'il n'a aucun équivalent dans la sectiondesired
, il n'est pas inclus. -
Si un attribut figure dans la section
desired
, mais qu'il n'a aucun équivalent dans la sectionreported
, il n'est pas inclus. -
Si un attribut est supprimé de la section
reported
, mais qu'il existe toujours dans la sectiondesired
, il est inclus.
Exemple de stratégie
Voici un exemple de document de stratégie requise :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/update/delta" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/update/delta" ] } ] }
/update/accepted
AWS IoT publie un document d'état de réponse dans cette rubrique lorsqu'il accepte une modification de l'ombre de l'appareil :
ShadowTopicPrefix
/update/accepted
Le tampon de messages contient un /document d'état de la réponse accepté.
Exemple de stratégie
Voici un exemple de document de stratégie requise :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/update/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/update/accepted" ] } ] }
/update/documents
AWS IoT publie un document d'état sur cette rubrique chaque fois qu'une mise à jour du shadow est effectuée avec succès :
ShadowTopicPrefix
/update/documents
Le corps du message contient un /documents d'état de la réponse documents.
Exemple de stratégie
Voici un exemple de document de stratégie requise :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/update/documents" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/update/documents" ] } ] }
/update/rejected
AWS IoT publie un document de réponse aux erreurs dans cette rubrique lorsqu'il rejette une modification concernant l'ombre de l'appareil :
ShadowTopicPrefix
/update/rejected
Le corps du message contient un Document de réponse d'erreur.
Exemple de stratégie
Voici un exemple de document de stratégie requise :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/update/rejected" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/update/rejected" ] } ] }
/delete
Pour supprimer un shadow d'appareil, publiez un message vide dans la rubrique delete :
ShadowTopicPrefix
/delete
Le contenu du message est ignoré.
Notez que la suppression d'une ombre ne rétablit pas son numéro de version à 0.
AWS IoT répond en publiant à l'un /delete/accepted ou à l'autre/delete/rejected.
Exemple de stratégie
Voici un exemple de document de stratégie requise :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:
region
:account
:topic/$aws/things/thingName
/shadow/delete" ] } ] }
/delete/accepted
AWS IoT publie un message dans cette rubrique lorsque l'ombre d'un appareil est supprimée :
ShadowTopicPrefix
/delete/accepted
Exemple de stratégie
Voici un exemple de document de stratégie requise :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/delete/accepted" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/delete/accepted" ] } ] }
/delete/rejected
AWS IoT publie un document de réponse aux erreurs dans cette rubrique lorsqu'il ne parvient pas à supprimer l'ombre de l'appareil :
ShadowTopicPrefix
/delete/rejected
Le corps du message contient un Document de réponse d'erreur.
Exemple de stratégie
Voici un exemple de document de stratégie requise :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:
region
:account
:topicfilter/$aws/things/thingName
/shadow/delete/rejected" ] }, { "Effect": "Allow", "Action": [ "iot:Receive" ], "Resource": [ "arn:aws:iot:region
:account
:topic/$aws/things/thingName
/shadow/delete/rejected" ] } ] }