Azure Batch errori di attività e processi
Possono verificarsi diversi errori quando si aggiungono, pianificano o si eseguono Azure Batch processi e attività. È semplice rilevare gli errori che si verificano quando si aggiungono processi e attività. L'API, la riga di comando o l'interfaccia utente restituisce in genere eventuali errori immediatamente. Questo articolo illustra come verificare e gestire gli errori che si verificano dopo l'invio di processi e attività.
Errori dei processi
Un processo è un gruppo di una o più attività, che specificano le righe di comando da eseguire. Quando si aggiunge un processo, è possibile specificare i parametri facoltativi seguenti. Questi parametri influiscono sul modo in cui il processo può avere esito negativo.
JobConstraints. Facoltativamente, è possibile utilizzare la
maxWallClockTime
proprietà per impostare la quantità massima di tempo per cui un processo può essere attivo o in esecuzione. Se il processo superamaxWallClockTime
, il processo termina con laterminateReason
proprietà impostata suMaxWallClockTimeExpiry
in JobExecutionInformation.JobPreparationTask. Facoltativamente, è possibile specificare un'attività di preparazione del processo da eseguire in ogni nodo di calcolo pianificato per eseguire un'attività di processo. Il nodo esegue l'attività di preparazione del processo prima della prima esecuzione di un'attività per il processo. Se l'attività di preparazione del processo ha esito negativo, l'attività non viene eseguita e il processo non viene completato.
JobReleaseTask. Facoltativamente, è possibile specificare un'attività di rilascio del processo per i processi con un'attività di preparazione del processo. Quando un processo viene terminato, l'attività di rilascio del processo viene eseguita in ogni nodo del pool che ha eseguito un'attività di preparazione del processo. Se un'attività di rilascio del processo non riesce, il processo passa comunque a uno
completed
stato.
Nella portale di Azure è possibile impostare questi parametri in Gestione processi, attività di preparazione e rilascio e sezioni Avanzate della schermata Aggiungi processo batch.
Proprietà dei processi
Controllare le proprietà del processo seguenti in JobExecutionInformation per verificare la presenza di errori:
La
terminateReason
proprietà indicaMaxWallClockTimeExpiry
se il processo ha superato l'oggettomaxWallClockTime
specificato nei vincoli del processo e pertanto il processo è terminato. Questa proprietà può essere impostata anche sutaskFailed
se l'attributo delonTaskFailure
processo è impostato superformExitOptionsJobAction
e un'attività ha esito negativo con una condizione di uscita che specifica unjobAction
diterminatejob
.La proprietà JobSchedulingError viene impostata se si è verificato un errore di pianificazione.
Attività di preparazione del processo
Un'istanza di un'attività di preparazione del processo viene eseguita in ogni nodo di calcolo la prima volta che il nodo esegue un'attività per il processo. È possibile considerare l'attività di preparazione del processo come modello di attività, con più istanze in esecuzione, fino al numero di nodi in un pool. Controllare le istanze dell'attività di preparazione del processo per determinare se si sono verificati errori.
È possibile usare l'API Stato attività Processo - Elenco e Preparazione rilascio per elencare lo stato di esecuzione di tutte le istanze delle attività di preparazione e rilascio del processo per un processo specificato. Come per altre attività, JobPreparationTaskExecutionInformation è disponibile con proprietà come failureInfo
, exitCode
e result
.
Quando viene eseguita un'attività di preparazione del processo, l'attività che ha attivato l'attività di preparazione del processo passa a un taskState di preparing
. Se l'attività di preparazione del processo ha esito negativo, l'attività di attivazione torna allo active
stato e non viene eseguita.
Se un'attività di preparazione del processo ha esito negativo, l'attività di attivazione del processo non viene eseguita. Il processo non viene completato ed è bloccato. Se non sono presenti altri processi con attività pianificabili, è possibile che il pool non venga usato.
Attività di rilascio del processo
Un'istanza di un'attività di rilascio del processo viene eseguita quando il processo viene terminato in ogni nodo che ha eseguito un'attività di preparazione del processo. Controllare le istanze dell'attività di rilascio del processo per determinare se si sono verificati errori.
È possibile usare l'API Stato attività Processo - Elenco e Preparazione rilascio per elencare lo stato di esecuzione di tutte le istanze delle attività di preparazione e rilascio del processo per un processo specificato. Come per altre attività, JobReleaseTaskExecutionInformation è disponibile con proprietà come failureInfo
, exitCode
e result
.
Se una o più attività di rilascio del processo hanno esito negativo, il processo viene ancora terminato e passa a uno completed
stato.
Errori delle attività
Le attività di processo possono non riuscire per i motivi seguenti:
- La riga di comando dell'attività ha esito negativo e restituisce un codice di uscita diverso da zero.
- Uno o più
resourceFiles
specificati per un'attività non vengono scaricati. - Uno o più
outputFiles
specificati per un'attività non vengono caricati. - Il tempo trascorso per l'attività supera la
maxWallClockTime
proprietà specificata in TaskConstraints.
In tutti i casi, controllare le proprietà seguenti per individuare errori e informazioni sugli errori:
La proprietà TaskExecutionInformation ha più proprietà che forniscono informazioni su un errore. TaskExecutionResult indica se l'attività non è riuscita per qualsiasi motivo e
exitCode
failureInfo
fornisce altre informazioni sull'errore.L'attività
completed
passa sempre a TaskState, indipendentemente dal fatto che abbia avuto esito positivo o negativo.
Prendere in considerazione l'impatto degli errori delle attività sul processo e su eventuali dipendenze delle attività. È possibile specificare ExitConditions per configurare le azioni per le dipendenze e per il processo.
- DependencyAction controlla se bloccare o eseguire attività che dipendono dall'attività non riuscita.
- JobAction controlla se l'attività non riuscita fa sì che il processo venga disabilitato, terminato o invariato.
Righe di comando dell'attività
Le righe di comando delle attività non vengono eseguite in una shell nei nodi di calcolo, quindi non possono usare in modo nativo le funzionalità della shell, ad esempio l'espansione delle variabili di ambiente. Per sfruttare i vantaggi di queste funzionalità, è necessario richiamare la shell nella riga di comando. Per altre informazioni, vedere Espansione della riga di comando delle variabili di ambiente.
L'output della riga di comando dell'attività scrive in stderr.txt e stdout.txt file. L'applicazione potrebbe anche scrivere in file di log specifici dell'applicazione. Assicurarsi di implementare un controllo degli errori completo per l'applicazione per rilevare e diagnosticare tempestivamente i problemi.
Log attività
Se il nodo del pool che ha eseguito un'attività esiste ancora, è possibile ottenere e visualizzare i file di log attività. Diverse API consentono di elencare e ottenere file di attività, ad esempio File - Recupera da attività. È anche possibile elencare e visualizzare i file di log per un'attività o un nodo usando il portale di Azure.
Nella parte superiore della pagina Panoramica per un nodo selezionare Carica log batch.
Nella pagina Carica log batch selezionare Seleziona contenitore di archiviazione, selezionare un contenitore di Archiviazione di Azure in cui caricare e quindi selezionare Avvia caricamento.
È possibile visualizzare, aprire o scaricare i log dalla pagina del contenitore di archiviazione.
File di output
Poiché i pool di Batch e i nodi del pool sono spesso temporanei, con nodi aggiunti ed eliminati in modo continuo, è consigliabile salvare i file di log durante l'esecuzione del processo. I file di output delle attività offrono un modo pratico per salvare i file di log nell'Archiviazione di Azure. Per altre informazioni, vedere Rendere persistenti i dati di attività in Archiviazione di Azure con l'API del servizio Batch.
In ogni caricamento di file, Batch scrive due file di log nel nodo di calcolo, fileuploadout.txt e fileuploaderr.txt. È possibile esaminare questi file di log per ottenere ulteriori informazioni su un errore specifico. Se il caricamento del file non è stato tentato, ad esempio perché l'attività stessa non è stata eseguita, questi file di log non esistono.
Passaggi successivi
- Altre informazioni su processi e attività batch eattività di preparazione e rilascio dei processi.
- Informazioni sugli errori del pool e del nodo di Batch.