Seguimiento del estado del trabajo e informes de finalización
Con las operaciones por lotes de S3, puede ver y actualizar el estado del trabajo, agregar notificaciones y registros, realizar un seguimiento de los errores del trabajo y generar informes de finalización.
Estados de los trabajos
Cuando se crea y ejecuta un trabajo, este pasa por una serie de estados. En la siguiente tabla se describen los estados y las posibles transiciones entre ellos.
Estado | Descripción | Transiciones |
---|---|---|
New |
Cuando se crean, los trabajos tienen el estado New . |
Un trabajo pasa automáticamente al estado Preparing cuando Amazon S3 comienza a procesar el objeto del manifiesto. |
Preparing |
Amazon S3 está procesando el objeto del manifiesto y otros parámetros del trabajo para configurar y ejecutar el trabajo. | Los trabajos pasan automáticamente al estado Ready cuando Amazon S3 termina de procesar el manifiesto y otros parámetros. En ese momento, el trabajo está listo para ejecutar la operación especificada sobre los objetos que se muestran en el manifiesto.Si el trabajo necesita confirmación antes de ejecutarse (por ejemplo: cuando se crea un trabajo utilizando la consola de Amazon S3), el trabajo pasa de |
Suspended |
El trabajo necesita confirmación, pero aún no ha confirmado que desea ejecutarlo. Los únicos trabajos que necesitan confirmación son los que se crean con la consola de Amazon S3. Un trabajo que se crea con la consola pasa al estado Suspended inmediatamente después de Preparing . Una vez que confirme que desea ejecutar el trabajo y este pase al estado Ready , el trabajo nunca volverá a tener el estado Suspended . |
Cuando confirme que desea ejecutar el trabajo, el estado cambiará a Ready . |
Ready |
Amazon S3 está listo para comenzar a ejecutar las operaciones solicitadas en los objetos. | Los trabajos pasan automáticamente al estado Active cuando Amazon S3 comienza a ejecutarlos. El tiempo que un trabajo permanece en el estado Ready depende de si hay trabajos con una prioridad mayor que ya estén en ejecución y de lo que esos trabajos tarden en completarse. |
Active |
Amazon S3 está ejecutando la operación solicitada en los objetos que aparecen en el manifiesto. Mientras un trabajo está en el estado Active , puede monitorear su progreso mediante la consola de Amazon S3 o la operación DescribeJob a través de la API REST, la AWS CLI o los SDK de AWS. |
Un trabajo pasa al estado Active cuando ya no hay operaciones de objetos en ejecución. Este comportamiento puede producirse automáticamente; por ejemplo, cuando un trabajo se completa correctamente o encuentra un error. Este comportamiento también puede producirse como consecuencia de acciones de un usuario; por ejemplo, cuando se cancela un trabajo. El estado al que pasa el trabajo depende del motivo de la transición. |
Pausing |
El trabajo tenía otro estado y ha pasado a Paused . |
Los trabajos pasan automáticamente al estado Paused cuando finaliza la etapa de Pausing . |
Paused |
Los trabajos adoptan el estado Paused si se envía un trabajo con una prioridad mayor mientras el trabajo actual está en ejecución. |
Los trabajos con el estado Paused pasan automáticamente a Active cuando otros trabajos de mayor prioridad que impiden su ejecución se completan, encuentran un error o se suspenden. |
Complete |
El trabajo ha terminado de ejecutar la operación solicitada en todos los objetos del manifiesto. La operación puede haberse ejecutado correctamente o con errores en cada objeto. Si configuró el trabajo para que se generara un informe de finalización, dicho informe estará disponible tan pronto como el trabajo adopte el estado Complete . |
Complete es un estado terminal. Cuando un trabajo alcanza el estado Complete , ya no cambia a otros estados. |
Cancelling |
El trabajo ha adoptado el estado Cancelled . |
Los trabajos pasan automáticamente al estado Cancelled cuando finaliza la etapa de Cancelling . |
Cancelled |
Se ha solicitado la cancelación del trabajo y Operaciones por lotes de S3 lo ha cancelado con éxito. El trabajo ya no enviará ninguna solicitud nueva a Amazon S3. | Cancelled es un estado terminal. Cuando un trabajo alcanza el estado Cancelled , ya no pasará a ningún otro estado. |
Failing |
El trabajo ha adoptado el estado Failed . |
Los trabajos pasan automáticamente al estado Failed cuando finaliza la etapa de Failing . |
Failed |
Se ha producido un error en el trabajo y ya no está en ejecución. Para obtener más información acerca de los errores de los trabajos, consulte Seguimiento de los errores de los trabajos. | Failed es un estado terminal. Cuando un trabajo alcanza el estado Failed , ya no pasará a ningún otro estado. |
Actualización del estado del trabajo
Mediante los siguientes ejemplos de la AWS CLI y AWS SDK for Java, se actualiza el estado de un trabajo de Operaciones por lotes. Para obtener más información sobre uso de la consola de Amazon S3 para administrar trabajos de Operaciones por lotes, consulte Uso de la consola de Simple Storage Service (Amazon S3) para administrar sus trabajos de operaciones por lotes de S3.
Para utilizar los comandos de ejemplo siguientes, sustituya
con su información. user input
placeholders
-
Si no especificó el parámetro
--no-confirmation-required
en el comandocreate-job
, el trabajo permanece suspendido hasta que lo confirme estableciendo su estado enReady
. A continuación, Amazon S3 hace que el trabajo sea apto para su ejecución.aws s3control update-job-status \ --region
us-west-2
\ --account-id123456789012
\ --job-id00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c
\ --requested-job-status 'Ready' -
Para cancelar el trabajo, establezca su estado en
Cancelled
.aws s3control update-job-status \ --region
us-west-2
\ --account-id123456789012
\ --job-id00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c
\ --status-update-reason "No longer needed
" \ --requested-job-status Cancelled
En el siguiente ejemplo, se actualiza el estado de un trabajo de Operaciones por lotes de S3 mediante AWS SDK for Java.
Para obtener más información acerca del estado de un trabajo, consulte Seguimiento del estado del trabajo e informes de finalización.
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(); } } }
Notificaciones y registro
Además de solicitar informes de finalización, también puede obtener, revisar y auditar la actividad de Operaciones por lotes mediante AWS CloudTrail. Como Operaciones por lotes utiliza operaciones de API de Amazon S3 existentes para realizar tareas, esas tareas también emiten los mismos eventos que si se las llamara directamente. Por lo tanto, puede realizar un seguimiento y registrar el progreso de su trabajo y de todas sus tareas mediante las mismas herramientas y procesos de notificación, registro y auditoría que ya utiliza con Amazon S3. Para obtener más información, consulte los ejemplos de las siguientes secciones.
nota
Operaciones por lotes genera eventos de administración y datos en CloudTrail durante la ejecución del trabajo. El volumen de estos eventos se escala con el número de claves en el manifiesto de cada trabajo. Para obtener más información, consulte la página de Precios de CloudTrail
Para obtener más información acerca de los eventos de Amazon S3, consulte Notificaciones de eventos de Amazon S3.
Seguimiento de los errores de los trabajos
Si un trabajo de Operaciones por lotes de S3 se encuentra con un problema que impide su correcta ejecución (por ejemplo: no se puede leer el manifiesto especificado), se produce un error. Cuando un trabajo falla, genera uno o más códigos de error o motivos de error. Operaciones por lotes de S3 almacena los códigos de error y los motivos con el trabajo, para que pueda consultarlos solicitando los detalles del trabajo. Si solicitó un informe de finalización para el trabajo, los códigos de error y los motivos también aparecen aquí.
Para impedir que los trabajos ejecuten un número elevado de operaciones incorrectamente, Amazon S3 impone un umbral de errores de tareas en cada trabajo de Operaciones por lotes de S3. Una vez que un trabajo ha ejecutado al menos 1000 tareas, Amazon S3 monitoriza la tasa de errores de tareas. Si en algún momento la tasa de errores (el número de tareas con error en comparación con el número total de tareas ejecutadas) supera el 50 %, el trabajo genera un error. Si el trabajo deja de ejecutarse porque se ha superado el umbral de errores de tareas, es posible identificar la causa de dichos errores. Por ejemplo, podría ocurrir que, por accidente, haya incluido en el manifiesto algunos objetos que no existen en el bucket especificado. Después de solucionar los errores, podrá volver a enviar el trabajo.
nota
Operaciones por lotes de S3 se ejecuta de forma asincrónica y las tareas no tienen que ejecutarse necesariamente en el mismo orden en el que los objetos aparecen en el manifiesto. Por tanto, no puede utilizar el orden del manifiesto para determinar qué tareas de los objetos se ejecutaron o no correctamente. En su lugar, puede examinar el informe de finalización del trabajo (si solicitó uno) o ver los registros de eventos de AWS CloudTrail para tratar de determinar el origen de los errores.
Informes de finalización
Al crear un trabajo, puede solicitar un informe de finalización. Siempre que Operaciones por lotes de S3 invoque correctamente al menos una tarea, Amazon S3 genera un informe de finalización cuando las tareas terminen de ejecutarse, encuentren algún error o se cancelen. Puede configurar el informe de finalización para incluir todas las tareas o solo las tareas con error.
El informe de finalización incluye la configuración del trabajo, el estado y la información de cada tarea, incluidas la clave y la versión del objeto, el estado, los códigos de error y las descripciones de los errores. Los informes de finalización constituyen un mecanismo sencillo para ver los resultados de las tareas en un formato unificado sin necesidad de realizar ninguna configuración adicional. Los informes de finalización se cifran con cifrado de servidor con claves administradas por Amazon S3 (SSE-S3). Para ver un ejemplo de un informe de finalización, consulte Ejemplos: informes de finalización de las operaciones por lotes de S3.
Aunque no se configure un informe de finalización, es posible monitorizar y auditar el trabajo y las tareas con CloudTrail y Amazon CloudWatch. Para obtener más información, consulte los temas siguientes: