Avviso di fine del supporto: il 13 novembre 2025, il supporto per Amazon Elastic Transcoder AWS verrà interrotto. Dopo il 13 novembre 2025, non potrai più accedere alla console Elastic Transcoder o alle risorse Elastic Transcoder.
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à.
Gestione degli errori in Elastic Transcoder
Argomenti
Quando invii richieste e ricevi risposte dall'API Elastic Transcoder, potresti riscontrare due tipi di errori API:
-
Errori del client: gli errori del client sono indicati da un codice di risposta HTTP 4xx Gli errori del client indicano che Elastic Transcoder ha riscontrato un problema con la richiesta del client, ad esempio un errore di autenticazione o la mancanza di parametri obbligatori. Risolvi il problema nella tua applicazione client prima di inviare nuovamente la richiesta.
-
Errori del server: gli errori del server vengono indicati da un codice di risposta HTTP 5xx e devono essere risolti da Amazon. Puoi ripetere o rinviare la richiesta finché non va a buon fine.
Per ogni errore API, Elastic Transcoder restituisce i seguenti valori:
-
Un codice di stato, ad esempio
400
-
Un codice di errore, ad esempio
ValidationException
-
Un messaggio di errore, ad esempio
Supplied AttributeValue is empty, must contain exactly one of the supported datatypes
Per un elenco dei codici di errore restituiti da Elastic Transcoder per gli errori del client e del server, consultaCodici di errore API (Errori client e server).
Potrebbero inoltre verificarsi errori durante l'elaborazione del lavoro da parte di Elastic Transcoder. Per ulteriori informazioni, consulta Errori durante l'elaborazione del processo.
Codici di errore API (Errori client e server)
I codici di stato HTTP indicano se un'operazione è stata eseguita correttamente o no.
Il codice di risposta 200
indica che l'operazione è riuscita. Altri codici di errore indicano un errore del client (4xx) o un errore del server (5xx).
Nella tabella seguente sono elencati gli errori restituiti da Elastic Transcoder. Alcuni errori vengono risolti semplicemente ripetendo la stessa richiesta. Nella tabella sono indicati gli errori probabilmente risolvibili con ripetizioni successive. Se il valore della colonna Riprova è:
-
Sì: viene la stessa richiesta.
-
No: devi risolvere il problema sul lato client prima di inviare una nuova richiesta.
Per ulteriori informazioni sulla ripetizione delle richieste, consulta Ripetizione dei tentativi in caso di errore e backoff esponenziale.
Codice di stato HTTP | Codice di errore | Message | Causa | Riprova |
---|---|---|---|---|
400 | Eccezione per verifica condizionale non riuscita | La richiesta condizionale ha avuto esito negativo. | Esempio: il valore previsto non corrispondeva a quello memorizzato nel sistema. | No |
400 | Eccezione per firma incompleta | La firma della richiesta non è conforme agli standard AWS. | La firma nella richiesta non include tutti i componenti obbligatori. Consultare Contenuti nell'intestazione HTTP. | No |
403 | Eccezione per token di autenticazione mancante | La richiesta deve contenere un ID chiave di accesso AWS valido (registrato). | La richiesta non include x-amz-security-token , che è obbligatorio. Consultare Effettuare richieste HTTP a Elastic Transcoder. |
No |
400 | Eccezione per convalida | Diversi. | Uno o più valori in una richiesta è mancante o non valido; ad esempio un valore è vuoto o è superiore al valore massimo valido. | No |
403 | AccessDenied Eccezione |
|
Hai tentato di eliminare una preimpostazione di sistema, la firma in una chiamata all'API Elastic Transcoder non era valida o un utente non è autorizzato a eseguire l'operazione. |
No |
404 | ResourceNot Eccezione trovata |
|
Esempio: la pipeline a cui stai tentando di aggiungere un processo non esiste o è ancora in fase di creazione. | No |
409 | InUse Eccezione relativa alle risorse |
|
Esempio: tentativo di eliminazione di una pipeline attualmente in uso. | No |
429 | Eccezione per limite superato |
|
L'account AWS corrente ha superato i limiti per gli oggetti Elastic Transcoder. Per ulteriori informazioni, consulta Limiti al numero di pipeline, job e preset di Elastic Transcoder. | |
429 | Eccezione Provisioned Throughput Exceeded | È stato superato il throughput assegnato massimo consentito. |
Esempio: la frequenza di richieste è troppo elevata. Gli SDK AWS per Elastic Transcoder riprovano automaticamente le richieste che ricevono questa eccezione. La richiesta ha infine esito positivo, a meno che la coda dei tentativi ripetuti sia troppo estesa per terminare. Riduci la frequenza delle richieste. Per ulteriori informazioni, consulta Ripetizione dei tentativi in caso di errore e backoff esponenziale. Se stai eseguendo il polling per determinare lo stato di una richiesta, valuta la possibilità di farlo tramite le notifiche. Per ulteriori informazioni, consulta Notifiche sullo stato di un processo. |
Sì |
429 | Eccezione per throttling | La velocità delle richieste supera il throughput consentito. |
L'invio delle richieste, ad esempio per creare nuovi processi, è troppo rapido. Se stai eseguendo il polling per determinare lo stato di una richiesta, valuta la possibilità di farlo tramite le notifiche. Per ulteriori informazioni, consulta Notifiche sullo stato di un processo. |
Sì |
500 | Errore interno | Il server ha riscontrato un errore interno nel tentativo di soddisfare la richiesta. | Il server ha riscontrato un errore durante l'elaborazione della richiesta. | Sì |
500 | Errore interno del server | Il server ha riscontrato un errore interno nel tentativo di soddisfare la richiesta. | Il server ha riscontrato un errore durante l'elaborazione della richiesta. | Sì |
500 | Eccezione interna del servizio | Il servizio ha riscontrato un'eccezione imprevista nel tentativo di soddisfare la richiesta. | Sì | |
500 | Eccezione per servizio non disponibile | Il servizio è al momento occupato o non disponibile. | Si è verificato un errore imprevisto del server durante l'elaborazione della richiesta. | Sì |
Risposta di errore di esempio
Di seguito è riportata una risposta HTTP indicante che il valore di inputBucket
era null, che non è un valore valido.
HTTP/1.1 400 Bad Request x-amzn-RequestId: b0e91dc8-3807-11e2-83c6-5912bf8ad066 x-amzn-ErrorType: ValidationException Content-Type: application/json Content-Length: 124 Date: Mon, 26 Nov 2012 20:27:25 GMT {"message":"1 validation error detected: Value null at 'inputBucket' failed to satisfy constraint: Member must not be null"}
Errori durante l'elaborazione del processo
Quando Elastic Transcoder rileva un errore durante l'elaborazione del lavoro, lo segnala in due modi:
-
Stato del Job e stato di output: Elastic Transcoder imposta l'
Job:Status
oggetto e l'Outputs:Status
oggetto su cui l'output non riuscitoError
. Inoltre, Elastic Transcoder imposta l'oggettoOutputs:StatusDetail
JSON per l'output non riuscito su un valore che spiega l'errore. -
Notifica SNS: se hai configurato la pipeline per inviare una notifica SNS quando Elastic Transcoder rileva un errore durante l'elaborazione, Elastic Transcoder include un oggetto JSON nella notifica nel seguente formato:
{ "state" : "PROGRESSING|COMPLETED|WARNING|ERROR", "errorCode" : "
the code of any error that occurred
", "messageDetails" : "the notification message you created in Amazon SNS
", "version" : "API version that you used to create the job
", "jobId" : "value of Job:Id object that Elastic Transcoder returns in the response to a Create Job request
", "pipelineId" : "value of PipelineId object in the Create Job request
", "input" : {job Input settings
}, "outputKeyPrefix" : "prefix for file names in Amazon S3 bucket
", "outputs": [ {applicable job Outputs settings
, "status" : "Progressing|Complete|Warning|Error" }, {...} ], "playlists": [ {applicable job playlists settings
} ], "userMetadata": { "metadata key
": "metadata value
" } }
Valore di errorCode |
Valore di messageDetails |
Causa |
---|---|---|
1000 | Errore di convalida | Durante l'elaborazione del lavoro, Elastic Transcoder ha determinato che uno o più valori nella richiesta non erano validi. |
1001 | Errore di dipendenza | Elastic Transcoder non è riuscito a generare la playlist perché ha riscontrato un errore con una o più dipendenze delle playlist. |
2000 | Impossibile assumere il ruolo | Elastic Transcoder non può assumere ilAWS Identity and Access Management ruolo specificato nell'Role oggetto nella pipeline per questo lavoro. |
3000 | Errore di storage non classificato | |
3001 | Input non esistente | Non esistono file con il nome specificato nell'oggetto Input:Key per questo processo. Il file deve esistere nel bucket Amazon S3 specificato nell'InputBucket oggetto nella pipeline per questo job. |
3002 | Output già esistente | Esiste già un file con il nome specificato nell'oggetto Outputs:Key (o Output:Key ) per questo processo. Il file non può esistere nel bucket Amazon S3 specificato nell'OutputBucket oggetto nella pipeline per questo job. |
3003 | Autorizzazione in lettura mancante | Il ruolo IAM specificato nell'Role oggetto della pipeline che hai usato per questo lavoro non dispone dell'autorizzazione per leggere dal bucket Amazon S3 che contiene il file che desideri transcodificare. |
3004 | Autorizzazione in scrittura mancante | Il ruolo IAM specificato nell'Role oggetto della pipeline che hai usato per questo lavoro non dispone dell'autorizzazione per scrivere nel bucket Amazon S3 in cui desideri salvare file transcodificati o file di miniatura. |
3005 | Bucket non esistente | Il bucket S3 specificato non esiste: bucket= {1}. |
3006 | Autorizzazione in scrittura mancante | Elastic Transcoder non è riuscito a scrivere la chiave= {1} in bucket= {2}, poiché la chiave non si trova nella stessa regione del bucket |
4000 | File di input non valido | Il file specificato nell'Input:Key oggetto per questo lavoro è in un formato attualmente non supportato da Elastic Transcoder. |
4001 | File di input non valido | La dimensione larghezza x altezza del file specificato nell'oggetto Input:Key per questo processo supera la dimensione massima consentita in larghezza x altezza. |
4002 | File di input non valido | La dimensione del file specificato nell'oggetto Input:Key per questo processo supera la dimensione massima consentita. |
4003 | File di input non valido | Elastic Transcoder non è in grado di interpretare il file specificato in uno degliOutputs:Watermarks:InputKey oggetti per questo lavoro. |
4004 | File di input non valido | La dimensione larghezza x altezza di un file specificato in uno degli oggetti Outputs:Watermarks:InputKey per questo processo supera la dimensione massima consentita in larghezza x altezza. |
4005 | File di input non valido | La dimensione di un file che hai specificato per uno dei {1} oggetti supera la dimensione massima consentita: bucket= {2}, key= {3}, size {4}, dimensione massima= {5}. |
4006 | File di input non valido | Elastic Transcoder non è riuscito a transcodificare il file di input perché il formato non è supportato. |
4007 | File di input non gestito | Elastic Transcoder ha rilevato un tipo di file generalmente supportato, ma non è stato in grado di elaborarlo correttamente. Questo errore ha aperto automaticamente una pratica di supporto e abbiamo avviato la ricerca della causa del problema. |
4008 | File di input non valido |
La causa alla base di questo errore è la mancata corrispondenza tra il set di impostazioni e il file di input. Esempi includono:
|
4009 | File di input non valido | Elastic Transcoder non è riuscito a inserire tutte le copertine dei tuoi album nel file di output perché hai superato il numero massimo di stream di grafica. |
4010 | File di input non valido | Elastic Transcoder non è in grado di interpretare il file grafico per il quale hai specificatoAlbumArt:Artwork:InputKey . |
4011 | File di input non valido | Elastic Transcoder ha rilevato un flusso di grafica incorporato, ma non è riuscito a interpretarlo. |
4012 | File di input non valido | L'immagine specificata per AlbumArt:Artwork supera le dimensioni massime consentite in larghezza x altezza: 4096 x 3072. |
4013 | File di input non valido | Le dimensioni in larghezza x altezza dell'immagine incorporata superano le dimensioni massime consentite in larghezza x altezza: 4096 x 3072. |
4014 | Input non valido | Il valore specificato per l'ora di inizio di una clip è successivo alla fine del file di input. Elastic Transcoder non è riuscito a creare un file di output. |
4015 | Input non valido | Elastic Transcoder non è riuscito a generare un file manifest perché i segmenti generati non corrispondevano. |
4016 | Input non valido | Elastic Transcoder non è riuscito a decrittografare il file di input da {1} utilizzando {2}. |
4017 | Input non valido | La chiave AES è stata crittografata con una chiave di crittografia a {2} bit. AES supporta solo chiavi di crittografia a 128, 192 e 256 bit. MD5= {1}. |
4018 | Input non valido | Elastic Transcoder non è riuscito a decrittografare la chiave cifrata con MD5= {1} |
4019 | Input non valido | Elastic Transcoder non è stato in grado di generare una chiave dati utilizzando la chiave KMS ARN {0}. |
4020 | Input non valido | Per la crittografia AES-128 la chiave deve essere a 128 bit. MD5= {1}, {2} bit. |
4021 | Input non valido | La tua chiave deve essere a 128 bit per il PlayReady DRM. MD5= {1}, resistenza= {2} bit. |
4022 | Input non valido | La dimensione combinata dei {1} file multimediali specificati supera la dimensione massima consentita: bucket= {2}, size= {3}. |
4023 | Input non valido | I file di input {1} specificati per la concatenazione non creeranno un output con una risoluzione coerente con il preset specificato. Utilizza un set con impostazioni diverse per PaddingPolicy , SizingPolicy , MaxWidth e MaxHeight . |
4024 | Input non valido | I file di input {1} specificati per la concatenazione non creeranno miniature con una risoluzione coerente con il preset specificato. Utilizza un set con impostazioni di anteprima diverse per PaddingPolicy , SizingPolicy , MaxWidth e MaxHeight . |
4025 | Input non valido | Almeno un file multimediale (input # {1}) non corrisponde agli altri. Il video deve essere contenuto in tutti i file multimediali o in nessuno. |
4026 | Input non valido | Almeno un file multimediale (input # {1}) non corrisponde agli altri. L'audio deve essere contenuto in tutti i file multimediali o in nessuno. |
4100 | File di input non valido | Elastic Transcoder ha rilevato una traccia di didascalie incorporata ma non è riuscita a interpretarla. |
4101 | File di input non valido | Elastic Transcoder non è in grado di interpretare il file di didascalie specificato per Amazon S3 bucket= {1}, key= {2}. |
4102 | File di input non valido | Elastic Transcoder non è riuscito a interpretare il file di didascalie specificato poiché non era codificato in UTF-8: Amazon S3 bucket= {1}, key= {2}. |
4103 | File di input non valido | Elastic Transcoder non è riuscito a elaborare tutte le tracce dei sottotitoli perché hai superato {1}, il numero massimo di tracce di sottotitoli. |
4104 | File di input non valido | Elastic Transcoder non è in grado di generare una playlist principale perché l'output desiderato contiene {1} didascalie incorporate, quando il massimo è 4. |
4105 | File di input non valido | Elastic Transcoder non può incorporare le tracce dei sottotitoli perché il frame rate {1} non è supportato per CEA-708, ma sono supportati solo i frame rate [29.97, 30]. |
4106 | File di input non valido | Elastic Transcoder non può incorporare le tracce dei sottotitoli perché format {1} supporta solo {2} tracce di sottotitoli. |
9000 | Errore interno del servizio | |
9001 | Errore interno del servizio | |
9999 | Errore interno del servizio |
Intercettazione di errori
Per il buon funzionamento dell'applicazione, devi integrare la logica che permette di intercettare gli errori e rispondere in modo adeguato. Un approccio tipico consiste nell'implementare la tua richiesta all'interno di un blocco try
o di un'istruzione if-then
.
Gli SDK AWS eseguono le proprie ripetizioni di tentativi e le proprie verifiche degli errori. Se rilevi un errore durante l'utilizzo di uno degli SDK AWS, dovresti visualizzare il codice e la descrizione dell'errore, nonché un valore Request ID
. IlRequest ID
valore può aiutare a risolvere i problemi con il supporto di Elastic Transcoder.
L'esempio seguente impiega il kit SDK AWS per Java per eliminare una voce all'interno di un blocco try
e utilizza un blocco catch
per rispondere all'errore. In questo caso, avvisa che la richiesta non è riuscita. L'esempio utilizza la classe AmazonServiceException
per recuperare informazioni su eventuali errori operativi, incluso il Request ID
. L'esempio utilizza inoltre la classe AmazonClientException
nel caso in cui la richiesta non sia riuscita per altri motivi.
try { DeleteJobRequest request = new DeleteJobRequest(jobId); DeleteJobResult result = ET.deleteJob(request); System.out.println("Result: " + result); // Get error information from the service while trying to run the operation } catch (AmazonServiceException ase) { System.err.println("Failed to delete job " + jobId); // Get specific error information System.out.println("Error Message: " + ase.getMessage()); System.out.println("HTTP Status Code: " + ase.getStatusCode()); System.out.println("AWS Error Code: " + ase.getErrorCode()); System.out.println("Error Type: " + ase.getErrorType()); System.out.println("Request ID: " + ase.getRequestId()); // Get information in case the operation is not successful for other reasons } catch (AmazonClientException ace) { System.out.println("Caught an AmazonClientException, which means"+ " the client encountered " + "an internal error while trying to " + "communicate with Elastic Transcoder, " + "such as not being able to access the network."); System.out.println("Error Message: " + ace.getMessage()); }
Ripetizione dei tentativi in caso di errore e backoff esponenziale
Numerosi componenti di una rete, ad esempio server DNS, switch, sistemi di bilanciamento del carico e altri, possono generare errori in qualsiasi fase del ciclo di vita di una richiesta specifica.
La tecnica che viene generalmente utilizzata per gestire queste risposte di errore in un ambiente di rete consiste nell'implementare nuovi tentativi nell'applicazione client. Questa tecnica aumenta l'affidabilità dell'applicazione e consente di ridurre i costi operativi per lo sviluppatore.
Ogni SDK AWS che supporta Elastic Transcoder implementa una logica di ripetizione automatica. Il kit SDK AWS per Java ripete automaticamente le richieste e le impostazioni relative alle ripetizioni sono configurabili tramite la classe ClientConfiguration
. Ad esempio in alcune occasioni, come nel caso di una pagina Web che fa una richiesta con latenza minima e senza ulteriori tentativi, è possibile disattivare la logica di ripetizione. Usa la classe ClientConfiguration
e specifica per maxErrorRetry
il valore 0
per disattivare i tentativi.
Se non utilizzi un SDK AWS, dovresti riprovare le richieste originali che ricevono errori del server (5xx). Tuttavia, gli errori del client (4xx, tranne ThrottlingException
o ProvisionedThroughputExceededException
) indicano che è necessario modificare la richiesta per correggere il problema prima di riprovare.
Nota
Se stai eseguendo un sondaggio per determinare lo stato di una richiesta e se Elastic Transcoder restituisce il codice di stato HTTP 429 con un codice di errore pari aProvisioned Throughput Exceeded
Exception
oThrottling Exception
, considera l'utilizzo delle notifiche anziché del polling per determinare lo stato. Per ulteriori informazioni, consulta Notifiche sullo stato di un processo.
Oltre a semplici tentativi, consigliamo di utilizzare un algoritmo di backoff esponenziale per migliorare il controllo del flusso. L'idea che sottende al backoff esponenziale è di utilizzare attese progressivamente più lunghe tra i tentativi per le risposte di errore consecutive. Ad esempio è possibile lasciar passare un secondo prima del primo nuovo tentativo, quattro secondi prima del secondo, 16 secondi prima del terzo e così via. Tuttavia, se la richiesta non è riuscita dopo un minuto, il problema potrebbe essere dovuto a un limite rigido e non alla frequenza della richiesta. Ad esempio potresti aver raggiunto il numero massimo di pipeline consentite. Imposta l'arresto del numero massimo di tentativi a circa un minuto.
Di seguito è riportato un flusso di lavoro che illustra una logica di ripetizione dei tentativi. Per prima cosa la logica del flusso di lavoro determina se si tratta di un errore del server (5xx). In caso affermativo, il codice ripete la richiesta originale.
currentRetry = 0 DO set retry to false execute Elastic Transcoder request IF Exception.errorCode = ProvisionedThroughputExceededException set retry to true ELSE IF Exception.httpStatusCode = 500 set retry to true ELSE IF Exception.httpStatusCode = 400 set retry to false fix client error (4xx) IF retry = true wait for (2^currentRetry * 50) milliseconds currentRetry = currentRetry + 1 WHILE (retry = true AND currentRetry < MaxNumberOfRetries) // limit retries