

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à.

# Argomenti MQTT di Device Shadow
<a name="device-shadow-mqtt"></a>

Il servizio Device Shadow usa argomenti MQTT riservati per permettere alle applicazioni e ai dispositivi di ottenere, aggiornare o eliminare le informazioni sullo stato per un dispositivo (copia 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, evitate di abbonarvi 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 ombra. Per esempi di messaggi pubblicati in questi argomenti, consulta [Interazione con le copia shadow](device-shadow-data-flow.md).

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 | 
| --- | --- | 
| \$1aws/things/thingName/shadow | Copia shadow senza nome (classica) | 
| \$1aws/things/thingName/shadow/name/shadowName | Copia shadow con nome | 

Per creare un argomento completo, selezionare `ShadowTopicPrefix` per il tipo di copia shadow a cui si desidera fare riferimento, sostituire `thingName` e `shadowName` se applicabile, con i relativi valori corrispondenti, quindi aggiungerlo con lo stub dell'argomento, come illustrato nelle sezioni seguenti.

Di seguito sono elencati gli argomenti MQTT usati per l'interazione con le copie shadow.

**Topics**
+ [/get](#get-pub-sub-topic)
+ [/get/accepted](#get-accepted-pub-sub-topic)
+ [/get/rejected](#get-rejected-pub-sub-topic)
+ [/update](#update-pub-sub-topic)
+ [/update/delta](#update-delta-pub-sub-topic)
+ [/update/accepted](#update-accepted-pub-sub-topic)
+ [/update/documents](#update-documents-pub-sub-topic)
+ [/update/rejected](#update-rejected-pub-sub-topic)
+ [/delete](#delete-pub-sub-topic)
+ [/delete/accepted](#delete-accepted-pub-sub-topic)
+ [/delete/rejected](#delete-rejected-pub-sub-topic)

## /get
<a name="get-pub-sub-topic"></a>

Pubblica un messaggio vuoto in questo argomento per ottenere la copia shadow del dispositivo:

```
ShadowTopicPrefix/get
```

AWS IoT risponde pubblicando su uno o. [/get/accepted](#get-accepted-pub-sub-topic) [/get/rejected](#get-rejected-pub-sub-topic)

### Policy di esempio
<a name="get-policy"></a>

Di seguito è illustrato un esempio della policy necessaria:

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingName/shadow/get"
            ]
        }
    ]
}
```

## /get/accepted
<a name="get-accepted-pub-sub-topic"></a>

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](device-shadow-document.md#device-shadow-example-response-json).

### Policy di esempio
<a name="get-accepted-policy"></a>

Di seguito è illustrato un esempio della policy necessaria:

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingName/shadow/get/accepted"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingName/shadow/get/accepted"
            ]
        }
    ]
}
```

## /get/rejected
<a name="get-rejected-pub-sub-topic"></a>

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](device-shadow-document.md#device-shadow-example-error-json).

### Policy di esempio
<a name="get-rejected-policy"></a>

Di seguito è illustrato un esempio della policy necessaria:

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:Subscribe"
      ],
      "Resource": [
        "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingName/shadow/get/rejected"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "iot:Receive"
      ],
      "Resource": [
        "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingName/shadow/get/rejected"
      ]
    }
  ]
}
```

## /update
<a name="update-pub-sub-topic"></a>

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](device-shadow-document.md#device-shadow-example-request-json).

Un client che tenta di aggiornare lo stato di un dispositivo invierebbe un documento di stato della richiesta JSON con la proprietà `desired` come questa:

```
{
  "state": {
    "desired": {
      "color": "red",
      "power": "on"
    }
  }
}
```

Un dispositivo che aggiorna la sua copia shadow invierebbe un documento di stato della richiesta JSON con la proprietà `reported`, ad esempio:

```
{
  "state": {
    "reported": {
      "color": "red",
      "power": "on"
    }
  }
}
```

AWS IoT risponde pubblicando su o[/update/accepted](#update-accepted-pub-sub-topic). [/update/rejected](#update-rejected-pub-sub-topic)

### Policy di esempio
<a name="update-policy"></a>

Di seguito è illustrato un esempio della policy necessaria:

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingName/shadow/update"
            ]
        }
    ]
}
```

## /update/delta
<a name="update-delta-pub-sub-topic"></a>

AWS IoT pubblica un documento sullo stato di risposta a questo argomento quando accetta una modifica per l'ombra del dispositivo e il documento sullo stato di risposta contiene valori `desired` e `reported` stati diversi per:

```
ShadowTopicPrefix/update/delta
```

Il buffer dei messaggi contiene un file [/delta response state document](device-shadow-document.md#device-shadow-example-response-json-delta).

### Dettagli corpo del messaggio
<a name="update-delta-rules"></a>
+ Un messaggio pubblicato in `update/delta` include solo gli attributi desiderati diversi tra le sezioni `desired` e `reported`. 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 sezioni `desired` e `reported` non sono inclusi.
+ Se un attributo è nella sezione `reported`, ma non ha un equivalente nella sezione `desired`, non viene incluso.
+ Se un attributo è nella sezione `desired`, ma non ha un equivalente nella sezione `reported`, viene incluso.
+ Se un attributo viene eliminato dalla sezione `reported`, ma è ancora presente nella sezione `desired`, viene incluso.

### Policy di esempio
<a name="update-delta-policy"></a>

Di seguito è illustrato un esempio della policy necessaria:

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingName/shadow/update/delta"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingName/shadow/update/delta"
            ]
        }
    ]
}
```

## /update/accepted
<a name="update-accepted-pub-sub-topic"></a>

AWS IoT pubblica un documento sullo stato della risposta a questo argomento quando accetta una modifica per l'ombra del dispositivo:

```
ShadowTopicPrefix/update/accepted
```

Il buffer dei messaggi contiene un file [/accepted response state document](device-shadow-document.md#device-shadow-example-response-json-accepted).

### Policy di esempio
<a name="update-accepted-policy"></a>

Di seguito è illustrato un esempio della policy necessaria:

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingName/shadow/update/accepted"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingName/shadow/update/accepted"
            ]
        }
    ]
}
```

## /update/documents
<a name="update-documents-pub-sub-topic"></a>

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](device-shadow-document.md#device-shadow-example-response-json-documents).

### Policy di esempio
<a name="update-documents-policy"></a>

Di seguito è illustrato un esempio della policy necessaria:

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingName/shadow/update/documents"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingName/shadow/update/documents"
            ]
        }
    ]
}
```

## /update/rejected
<a name="update-rejected-pub-sub-topic"></a>

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](device-shadow-document.md#device-shadow-example-error-json).

### Policy di esempio
<a name="update-rejected-policy"></a>

Di seguito è illustrato un esempio della policy necessaria:

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingName/shadow/update/rejected"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingName/shadow/update/rejected"
            ]
        }
    ]
}
```

## /delete
<a name="delete-pub-sub-topic"></a>

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-accepted-pub-sub-topic) [/delete/rejected](#delete-rejected-pub-sub-topic)

### Policy di esempio
<a name="delete-policy"></a>

Di seguito è illustrato un esempio della policy necessaria:

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Publish"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingName/shadow/delete"
            ]
        }
    ]
}
```

## /delete/accepted
<a name="delete-accepted-pub-sub-topic"></a>

AWS IoT pubblica un messaggio su questo argomento quando viene eliminata l'ombra di un dispositivo:

```
ShadowTopicPrefix/delete/accepted
```

### Policy di esempio
<a name="delete-accepted-policy"></a>

Di seguito è illustrato un esempio della policy necessaria:

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingName/shadow/delete/accepted"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingName/shadow/delete/accepted"
            ]
        }
    ]
}
```

## /delete/rejected
<a name="delete-rejected-pub-sub-topic"></a>

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](device-shadow-document.md#device-shadow-example-error-json).

### Policy di esempio
<a name="delete-rejected-policy"></a>

Di seguito è illustrato un esempio della policy necessaria:

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:Subscribe"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/things/thingName/shadow/delete/rejected"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:Receive"
            ],
            "Resource": [
                "arn:aws:iot:us-east-1:123456789012:topic/$aws/things/thingName/shadow/delete/rejected"
            ]
        }
    ]
}
```