Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
MQTTArgomenti Device Shadow
Il servizio Device Shadow utilizza MQTT argomenti riservati per consentire ai dispositivi e alle app di ottenere, aggiornare o eliminare le informazioni sullo stato di un dispositivo (shadow).
Per la pubblicazione e la sottoscrizione negli argomenti delle copie shadow è richiesta l'autorizzazione basata su argomento. AWS IoT
si riserva il diritto di aggiungere nuovi argomenti alla struttura di argomenti esistente. Per questo motivo, è consigliabile evitare le sottoscrizioni con caratteri jolly degli argomenti delle copie shadow. Ad esempio, evita di iscriverti ai filtri per argomenti, $aws/things/thingName/shadow/#
perché il numero di argomenti che corrispondono a questo filtro per argomenti potrebbe aumentare man mano che AWS IoT vengono introdotti nuovi argomenti shadow. Per esempi di messaggi pubblicati in questi argomenti, consulta Interazione con le copia shadow.
Le copie shadow possono essere con nome o senza nome (classiche). Gli argomenti utilizzati da ciascuno differiscono solo nel prefisso dell'argomento. Questa tabella mostra il prefisso dell'argomento utilizzato da ogni tipo di copia shadow.
ShadowTopicPrefix value |
Tipo di copia shadow |
---|---|
$aws/things/ |
Copia shadow senza nome (classica) |
$aws/things/ |
Copia shadow con nome |
Per creare un argomento completo, selezionare
per il tipo di copia shadow a cui si desidera fare riferimento, sostituire ShadowTopicPrefix
e thingName
se applicabile, con i relativi valori corrispondenti, quindi aggiungerlo con lo stub dell'argomento, come illustrato nelle sezioni seguenti.shadowName
Di seguito sono riportati gli MQTT argomenti utilizzati per interagire con le ombre.
Argomenti
/get
Pubblica un messaggio vuoto in questo argomento per ottenere la copia shadow del dispositivo:
ShadowTopicPrefix
/get
AWS IoT risponde pubblicando su o. /get/accepted /get/rejected
Policy di esempio
Di seguito è illustrato un esempio della policy necessaria:
{ "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 pubblica un documento shadow di risposta a questo argomento quando restituisce l'ombra del dispositivo:
ShadowTopicPrefix
/get/accepted
Per ulteriori informazioni, consulta Documenti sullo stato della risposta.
Policy di esempio
Di seguito è illustrato un esempio della policy necessaria:
{ "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 pubblica un documento di risposta agli errori su questo argomento quando non può restituire l'ombra del dispositivo:
ShadowTopicPrefix
/get/rejected
Per ulteriori informazioni, consulta Documenti sulla risposta di errore.
Policy di esempio
Di seguito è illustrato un esempio della policy necessaria:
{ "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
Pubblica un documento sullo stato della richiesta in questo argomento per aggiornare la copia shadow del dispositivo:
ShadowTopicPrefix
/update
Il corpo del messaggio contiene un documento di stato della richiesta parziale.
Un client che tenta di aggiornare lo stato di un dispositivo invierebbe un documento sullo stato della JSON richiesta con una desired
proprietà simile alla seguente:
{ "state": { "desired": { "color": "red", "power": "on" } } }
Un dispositivo che aggiorna la propria shadow invierebbe un documento sullo stato della JSON richiesta con la reported
proprietà, come questo:
{ "state": { "reported": { "color": "red", "power": "on" } } }
AWS IoT risponde pubblicando su /update/accepted o/update/rejected.
Policy di esempio
Di seguito è illustrato un esempio della policy necessaria:
{ "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 pubblica un documento sullo stato della risposta a questo argomento quando accetta una modifica per l'shadow del dispositivo e il documento sullo stato della richiesta contiene valori desired
e reported
stati diversi per:
ShadowTopicPrefix
/update/delta
Il buffer dei messaggi contiene un /delta response state document.
Dettagli corpo del messaggio
-
Un messaggio pubblicato in
update/delta
include solo gli attributi desiderati diversi tra le sezionidesired
ereported
. Contiene tutti questi attributi, indipendentemente dal fatto che siano inclusi nel messaggio di aggiornamento corrente o siano già archiviati in AWS IoT. Gli attributi che non presentano differenze tra le sezionidesired
ereported
non sono inclusi. -
Se un attributo è nella sezione
reported
, ma non ha un equivalente nella sezionedesired
, non viene incluso. -
Se un attributo è nella sezione
desired
, ma non ha un equivalente nella sezionereported
, viene incluso. -
Se un attributo viene eliminato dalla sezione
reported
, ma è ancora presente nella sezionedesired
, viene incluso.
Policy di esempio
Di seguito è illustrato un esempio della policy necessaria:
{ "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 pubblica un documento sullo stato della risposta a questo argomento quando accetta una modifica per l'shadow del dispositivo:
ShadowTopicPrefix
/update/accepted
Il buffer dei messaggi contiene un /accepted response state document.
Policy di esempio
Di seguito è illustrato un esempio della policy necessaria:
{ "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 pubblica un documento di stato su questo argomento ogni volta che un aggiornamento dell'ombra viene eseguito correttamente:
ShadowTopicPrefix
/update/documents
Il corpo del messaggio contiene un /documents response state document.
Policy di esempio
Di seguito è illustrato un esempio della policy necessaria:
{ "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 pubblica un documento di risposta agli errori su questo argomento quando rifiuta una modifica all'ombra del dispositivo:
ShadowTopicPrefix
/update/rejected
Il corpo del messaggio contiene un Documenti sulla risposta di errore.
Policy di esempio
Di seguito è illustrato un esempio della policy necessaria:
{ "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
Per eliminare una copia shadow di un dispositivo, pubblica un messaggio vuoto nell'argomento delete:
ShadowTopicPrefix
/delete
Il contenuto del messaggio viene ignorato.
Si noti che l'eliminazione di una copia shadow non reimposta il suo numero di versione su 0.
AWS IoT risponde pubblicando su o. /delete/accepted /delete/rejected
Policy di esempio
Di seguito è illustrato un esempio della policy necessaria:
{ "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 pubblica un messaggio su questo argomento quando viene eliminata l'ombra di un dispositivo:
ShadowTopicPrefix
/delete/accepted
Policy di esempio
Di seguito è illustrato un esempio della policy necessaria:
{ "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 pubblica un documento di risposta agli errori su questo argomento quando non può eliminare l'ombra del dispositivo:
ShadowTopicPrefix
/delete/rejected
Il corpo del messaggio contiene un Documenti sulla risposta di errore.
Policy di esempio
Di seguito è illustrato un esempio della policy necessaria:
{ "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" ] } ] }