

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

# Risoluzione dei problemi
<a name="s3-image-troubleshooting"></a>

## Immagini non inviate al bucket Amazon S3
<a name="s3-images-not-delivered"></a>

Per risolvere questo problema, ci sono alcune cose a cui prestare attenzione:

1. Autorizzazioni mancanti

1. La configurazione di generazione dell'immagine non è corretta

1. Il tag non è stato aggiunto al frammento

### Autorizzazioni mancanti
<a name="s3-missing-permissions"></a>

Se utilizzi una chiave KMS gestita dal cliente, assicurati che il ruolo che esegue le `PutMedia` chiamate (uploader) disponga delle autorizzazioni di crittografia e decrittografia appropriate e abbia accesso al bucket Amazon S3, come segue:
+ `kms:Encrypt`
+ `kms:GenerateDataKey`
+ `kms:Decrypt`
+ `s3:PutObject`

Per ulteriori informazioni, consulta [Come posso iniziare a usare la crittografia lato server?](how-kms.md#getting-started-with-sse-akvs).

### Verifica la destinazione
<a name="s3-verify-destination"></a>

Usa AWS CLI per chiamare l' DescribeImageGenerationConfiguration API per il tuo stream.

```
aws kinesisvideo describe-image-generation-configuration \
  --stream-name "{{demo-stream}}"
```

Controlla `DestinationConfig` la risposta e conferma che sia corretta.

### Verifica che il tag di generazione dell'immagine sia stato aggiunto al frammento
<a name="s3-verify-tag-added"></a>

1. Verifica che la `putKinesisVideoEventMetadata` chiamata sia riuscita.

   Il `putKinesisVideoEventMetadata` metodo restituisce un codice di stato 0 in caso di successo. Si consiglia di controllare i valori restituiti dalle funzioni per 0. Se viene restituito un codice di stato diverso da zero, convertilo in esadecimale e controlla [Riferimento al codice di errore](producer-sdk-errors.md) per ulteriori informazioni.

   Assicurati di aver attivato i log degli errori e controlla i log per eventuali altri errori nell'applicazione. Esamina e confronta lo schema di chiamata all'invio dei frame della tua applicazione con l'implementazione consigliata:. [Aggiungere tag di generazione di immagini ai frammenti](s3-real-time-image-create.md#s3-adding-image-tags)

1. Verifica il file MKV generato localmente

   Verifica che Producer SDK o Sample Application abbiano aggiunto i tag correttamente.

   1. Imposta la variabile di ambiente `KVS_DEBUG_DUMP_DATA_FILE_DIR`. Se questo valore è impostato, Producer SDK scrive i file multimediali che avrebbe inviato a Kinesis Video Streams nella posizione specificata.

      ```
      export KVS_DEBUG_DUMP_DATA_FILE_DIR=/path/to/output/directory
      ```
**Nota**  
L'SDK non creerà una nuova directory se il percorso non esiste. Crea la cartella se necessario.

   1. Esegui nuovamente l'applicazione. Dovresti vedere `.mkv` i file scritti nella directory di output specificata.

   1. Verifica il contenuto per assicurarti che il tag sia presente utilizzando MKVToolNix o altro software.

      1. Installa MKVToolNix: `brew install mkvtoolnix`

      1. Esegui MKVToolNix con uno dei `.mkv` file nella directory di output.

         ```
         mkvinfo -v ./path/to/video/file
         ```

      1. Rivedi l' MKVToolNix output. Se il metodo `KinesisVideoStream::PutFragmentMetadata` producer SDK è stato richiamato correttamente, dovresti vedere il seguente tag MKV.

         ```
         |+ Tags
         | + Tag
         |  + Simple
         |   + Name: AWS_KINESISVIDEO_IMAGE_GENERATION
         ```
**Nota**  
I tag appartengono al Cluster precedente.

   1. Se il tag MKV non è presente, assicuratevi che il metodo `KinesisVideoStream::PutEventMetadata` producer SDK sia stato chiamato con l'`STREAM_EVENT_TYPE_IMAGE_GENERATION`argomento e che abbia restituito un codice di successo (0).