Monitoraggio dei rapporti sullo stato e sul completamento dei processi - Amazon Simple Storage Service

Monitoraggio dei rapporti sullo stato e sul completamento dei processi

Con le operazioni in batch S3 è possibile visualizzare e aggiornare lo stato del processo, aggiungere notifiche e registrazione, tenere traccia degli errori di processo e generare report di completamento.

Stati del processo

Una volta creato e avviato, un processo passa attraverso una serie di stati. Nella tabella seguente vengono descritti gli stati e le possibili transizioni tra di essi.

Stato Descrizione Transizioni
New Quando viene creato, un processo è nello stato New. Un processo passa automaticamente allo stato Preparing quando Amazon S3 inizia a elaborare l'oggetto manifest.
Preparing Amazon S3 sta elaborando l'oggetto manifest e altri parametri allo scopo di configurare ed eseguire il processo. Un processo passa automaticamente allo stato Ready quando Amazon S3 termina l'elaborazione del manifest e di altri parametri. A questo punto è pronto per iniziare a eseguire l'operazione specificata sugli oggetti elencati nel file manifest.

Se il processo richiede una conferma prima dell'esecuzione, ad esempio quando si crea un processo mediante la console Amazon S3, il processo passa dallo stato Preparing allo stato Suspended. Rimane nello stato Suspended finché non confermi di eseguirlo.

Suspended Il processo richiede una conferma, ma l'utente non ha ancora confermato di eseguirlo. La conferma viene richiesta solo per i processi creati mediante la console Amazon S3. Un processo creato mediante la console entra nello stato Suspended subito dopo lo stato Preparing. Dopo aver confermato l'esecuzione del processo e quando il processo passa allo stato Ready, non torna mai allo stato Suspended. Una volta confermata l'esecuzione del processo, lo stato cambia in Ready.
Ready Amazon S3 è pronto per iniziare l'esecuzione delle operazioni richieste sugli oggetti. Un processo passa automaticamente allo stato Active quando Amazon S3 inizia a eseguirlo. La quantità di tempo durante il quale un processo rimane nello stato Ready dipende dalla presenza o meno di processi con priorità più alta già in esecuzione e dal tempo necessario per completare questi processi.
Active Amazon S3 sta eseguendo un'operazione richiesta sugli oggetti elencati nel manifest. Mentre un processo è nello stato Active, è possibile monitorarne l'avanzamento mediante la console Amazon S3 oppure tramite l'operazione DescribeJob mediante l'API REST, AWS CLI o gli SDK AWS. Un processo esce dallo stato Active quando non esegue più operazioni sugli oggetti. Questo può avvenire automaticamente, ad esempio in seguito all'esito positivo o negativo di un processo, oppure può essere il risultato di azioni dell'utente come l'annullamento di un processo. Lo stato successivo del processo dipende dal motivo della transizione.
Pausing Il processo sta passando allo stato Paused da un altro stato. Un processo passa automaticamente allo stato Paused al termine della fase Pausing.
Paused Un processo può passare allo stato Paused se si invia un altro processo con priorità più alta mentre il processo corrente è in esecuzione. Un processo Paused torna automaticamente allo stato Active quando i processi con priorità più alta che ne stanno bloccando l'esecuzione vengono completati, sospesi o hanno esito negativo.
Complete Il processo ha terminato l'esecuzione dell'operazione richiesta su tutti gli oggetti elencati nel manifest. Per ogni oggetto, l'operazione potrebbe aver avuto esito positivo o negativo. Se il processo è stato configurato in modo da generare un rapporto di completamento, tale rapporto sarà disponibile non appena il processo sarà passato allo stato Complete. Complete è uno stato terminale. Quando un processo raggiunge lo stato Complete, non esegue più la transizione ad altri stati.
Cancelling Il processo sta passando allo stato Cancelled. Un processo passa automaticamente allo stato Cancelled al termine della fase Cancelling.
Cancelled Hai richiesto l'annullamento del processo e le operazioni in batch S3 lo hanno eseguito con successo. Il processo non invierà nuove richieste ad Amazon S3. Cancelled è uno stato terminale. Quando un processo raggiunge lo stato Cancelled, non esegue più la transizione ad altri stati.
Failing Il processo sta passando allo stato Failed. Un processo passa automaticamente allo stato Failed al termine della fase Failing.
Failed Il processo ha avuto esito negativo e non è più in esecuzione. Per ulteriori informazioni sugli errori dei processi, consulta Monitoraggio degli errori dei processi. Failed è uno stato terminale. Quando un processo raggiunge lo stato Failed, non esegue più la transizione ad altri stati.

Aggiornamento dello stato del processo

I seguenti esempi di AWS CLI e SDK per Java aggiornano lo stato di un processo di operazioni in batch. Per ulteriori informazioni sull'utilizzo della console S3 per gestire i processi delle operazioni in batch, consulta Utilizzo della console Amazon S3 per gestire i processi S3 Batch Operations.

  • Se non è stato specificato il parametro --no-confirmation-required nel precedente esempio create-job, il processo rimane in uno stato di sospensione finché non viene confermato impostando lo stato su Ready. Amazon S3 rende quindi il processo idoneo per l'esecuzione.

    aws s3control update-job-status \ --region us-west-2 \ --account-id 181572960644 \ --job-id 00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c \ --requested-job-status 'Ready'

  • Annullare il processo impostandone lo stato su Cancelled.

    aws s3control update-job-status \ --region us-west-2 \ --account-id 181572960644 \ --job-id 00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c \ --status-update-reason "No longer needed" \ --requested-job-status Cancelled

Nell'esempio seguente viene aggiornato lo stato di un processo di operazioni in batch S3 tramite la AWS SDK for Java.

Per ulteriori informazioni sullo stato dei processi, consulta Monitoraggio dei rapporti sullo stato e sul completamento dei processi.

package aws.example.s3control; import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3control.AWSS3Control; import com.amazonaws.services.s3control.AWSS3ControlClient; import com.amazonaws.services.s3control.model.UpdateJobStatusRequest; import static com.amazonaws.regions.Regions.US_WEST_2; public class UpdateJobStatus { public static void main(String[] args) { String accountId = "Account ID"; String jobId = "00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c"; try { AWSS3Control s3ControlClient = AWSS3ControlClient.builder() .withCredentials(new ProfileCredentialsProvider()) .withRegion(US_WEST_2) .build(); s3ControlClient.updateJobStatus(new UpdateJobStatusRequest() .withAccountId(accountId) .withJobId(jobId) .withRequestedJobStatus("Ready")); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it and returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }

Notifiche e registrazione

Oltre a richiedere report di completamento, è anche possibile acquisire, esaminare e controllare l'attività delle operazioni in batch utilizzando AWS CloudTrail. Poiché Batch Operations utilizza le API Amazon S3 esistenti per eseguire le attività, tali attività generano gli stessi eventi di quando vengono chiamate direttamente. Pertanto, puoi tracciare e registrare l'avanzamento del processo e di tutte le attività relative utilizzando gli stessi strumenti e processi di notifica, registrazione e controllo già utilizzati con Amazon S3. Per ulteriori informazioni, consulta gli esempi nelle sezioni seguenti.

Nota

Amazon S3 Batch Operations genera eventi di gestione e dati in CloudTrail durante l'esecuzione del processo. Il volume di questi eventi viene ridimensionato con il numero di chiavi nel manifest di ogni processo. Consulta la pagina dei prezzi di CloudTrail per maggiori dettagli, tra cui esempi di come cambiano i prezzi a seconda del numero di trail configurati nel tuo account. Per informazioni su come configurare e registrare gli eventi in base alle tue esigenze, consulta Creazione del primo trail nella Guida per l'utente di AWS CloudTrail.

Per ulteriori informazioni sugli eventi Amazon S3, consulta Notifiche di eventi Amazon S3.

Monitoraggio degli errori dei processi

Se si verifica un problema con un processo di operazioni in batch Amazon S3 che ne impedisce l'esecuzione, ad esempio non riesce a leggere il manifest specificato, il processo non riesce. Quando un processo non riesce, genera uno o più codici o motivi di errore. Le operazioni in batch S3 archiviano i codici e i motivi di errore con il processo in modo da poterli visualizzare richiedendo i dettagli del processo. Se è stato richiesto un rapporto di completamento per il processo, deve contenere anche i codici e i motivi di errore.

Per impedire che i processi eseguano un numero elevato di operazioni non riuscite, Amazon S3 impone una soglia di errore attività su ogni processo di operazioni in batch S3. Dopo che un processo ha eseguito almeno 1000 attività, Amazon S3 monitora il tasso di errore delle attività. Se, in qualsiasi momento, la percentuale di errore (il numero di attività non andate a buon fine espresso come proporzione del numero totale di attività eseguite) supera il 50%, il lavoro non riesce. Se il processo non riesce perché ha superato la soglia di errore attività, è possibile identificare la causa degli errori. È ad esempio possibile che nel manifest siano stati involontariamente inclusi alcuni oggetti che non esistono nel bucket specificato. Dopo aver risolto gli errori, è possibile inviare nuovamente il processo.

Nota

Le operazioni in batch S3 funzionano in modo asincrono e non eseguono necessariamente le attività nell'ordine in cui gli oggetti sono elencati nel manifest. Pertanto non puoi utilizzare l'ordinamento del manifest per determinare quali attività degli oggetti sono riuscite e quali no. Invece, puoi esaminare il rapporto di completamento del processo (se uno è stato richiesto) o visualizzare i log di eventi AWS CloudTrail per determinare l'origine degli errori.

Rapporti di completamento

Quando crei un processo, puoi richiedere un rapporto di completamento. Fintantoché le operazioni in batch S3 invocano correttamente almeno un'attività, Amazon S3 genera un report di completamento quando termina l'esecuzione dell'attività o quando non riesce a eseguirla o viene annullato. Puoi configurare il rapporto di completamento per includere tutte le attività o solo quelle non riuscite.

Il rapporto di completamento include la configurazione del processo e lo stato e le informazioni per ogni attività, inclusi la chiave e la versione dell'oggetto, lo stato, i codici di errore e le descrizioni degli errori. I report di completamento offrono un modo semplice per visualizzare i risultati delle attività in un formato consolidato, senza ulteriori operazioni di configurazione. Per un esempio di report di completamento, consulta Esempi: report di completamento delle operazioni in batch S3.

Se non configuri un report di completamento, puoi comunque monitorare e controllare il processo e le relative attività utilizzando CloudTrail e Amazon CloudWatch. Per ulteriori informazioni, consulta la sezione seguente.