Creación de trabajos de operaciones por lotes de S3
Las Operaciones por lotes de Amazon S3 le permiten realizar operaciones por lotes a gran escala en una lista de objetos de Amazon S3 concretos. Esta sección contiene la información que necesita para crear un trabajo de Operaciones por lotes de S3 y los resultados de una solicitud CreateJob
. También proporciona instrucciones para crear un trabajo de la herramienta de operaciones por lotes con la consola, AWS Command Line Interface (AWS CLI) y AWS SDK for Java.
Cuando crea un trabajo de operaciones por lotes de S3, puede solicitar un reporte de finalización para todas las tareas o solo para las tareas que no se realicen. Siempre que se haya invocado correctamente al menos una tarea, Operaciones por lotes de S3 genera un informe para los trabajos que se han completado, que han fallado o que se han cancelado. Para obtener más información, consulte Ejemplos: informes de finalización de las operaciones por lotes de S3.
El siguiente video proporciona una breve demostración sobre cómo crear un trabajo de operaciones por lotes con la consola de Amazon S3.
Elementos de una solicitud de trabajo de Operaciones por lotes
Para crear un trabajo de Operaciones por lotes de S3 debe proporcionar la siguiente información:
- Operation
-
Especifique la operación que quiere que Operaciones por lotes de S3 ejecute en los objetos del manifiesto. Cada tipo de operación acepta parámetros específicos de dicha operación. Con Operaciones por lotes, puede realizar una operación por lotes con los mismos resultados que si realizase esa operación una por una en cada proyecto.
- Manifiesto
-
El manifiesto es una lista de todos los objetos en los que quiere que Operaciones por lotes de S3 ejecute la operación especificada. Puede usar los siguientes métodos para especificar un manifiesto para un trabajo de Operaciones por lotes:
-
Crear manualmente su propia lista de objetos personalizada con formato CSV.
-
Elegir un informe Catálogo y análisis de sus datos con Inventario de S3 existente con formato CSV.
-
Dirigir Operaciones por lotes para generar un manifiesto automáticamente en función de los criterios de filtro de objetos que especifique al crear su trabajo. Esta opción está disponible para trabajos de replicación por lotes que cree en la consola de Amazon S3 o para cualquier tipo de trabajo que cree mediante la AWS CLI, los SDK de AWS o la API de REST de Amazon S3.
nota
-
Independientemente de cómo especifique el manifiesto, la propia lista debe almacenarse en un bucket de uso general. Operaciones por lotes no puede importar los manifiestos existentes ni guardar los manifiestos generados en buckets de directorio. Sin embargo, los objetos descritos en el manifiesto se pueden almacenar en buckets de directorio. Para obtener más información, consulte Buckets de directorio.
-
Si los objetos del manifiesto están en un bucket versionado, especificar los ID de versión de los objetos dirige las Operaciones por lotes para realizar la operación en una versión específica. Si no se especifican los ID de versión, Operaciones por lotes realiza la operación en la versión más reciente de los objetos. Si el manifiesto incluye un campo de ID de versión, debe proporcionar un ID de versión para todos los objetos del manifiesto.
Para obtener más información, consulte Especificar un manifiesto.
-
- Prioridad
-
Utilice las prioridades de los trabajos para indicar la prioridad relativa de este trabajo con respecto a otros que se estén ejecutando en la cuenta. Cuanto más elevado sea el número, mayor será la prioridad.
Las prioridades de trabajo solo tienen significado en relación con las prioridades establecidas para otros trabajos de la misma cuenta y región. Puede elegir el sistema de numeración que mejor le convenga. Por ejemplo, es posible que desee asignar una prioridad de 1 todos los trabajos Restaurar (
RestoreObject
), una prioridad de 2 a todos los trabajos Copiar (CopyObject
) y una prioridad de 3 a todos los trabajos Reemplazar listas de control de acceso (ACL) (PutObjectAcl
)Operaciones por lotes de S3 establece la prioridad de los trabajos en función de los números asignados, pero el orden no siempre se mantiene de forma estricta. De este modo, no utilice prioridades de trabajo para garantizar que cualquier trabajo comience o finalice antes que cualquier otro trabajo. Si debe garantizar un orden estricto, debe esperar hasta que un trabajo finalice para comenzar el siguiente.
- RoleArn
-
Especifique un rol de AWS Identity and Access Management (IAM) que ejecute el trabajo. El rol de IAM que utilice debe tener permisos suficientes para realizar la operación especificada en el trabajo. Por ejemplo, para ejecutar un trabajo
CopyObject
, el rol de IAM debe tener el permisos3:GetObject
en el bucket de origen y el permisos3:PutObject
en el bucket de destino. El rol también necesita permisos para leer el manifiesto y escribir el informe de finalización del trabajo.Para obtener más información acerca de los roles de IAM, consulte Roles de IAM en Guía del usuario de IAM.
Para obtener más información sobre los permisos de Amazon S3, consulte Acciones de políticas para Amazon S3.
nota
Los trabajos de Operaciones por lotes que realizan acciones en buckets de directorio requieren permisos específicos. Para obtener más información, consulte AWS Identity and Access Management (IAM) para S3 Express One Zone.
- Informar
-
Especifique si desea que Operaciones por lotes de S3 genere un informe de finalización. Si solicita un informe de finalización del trabajo, tiene que proporcionar los parámetros del informe en este elemento. La información necesaria incluye lo siguiente:
-
el bucket donde desea almacenar el reporte,
nota
El informe debe almacenarse en un bucket de uso general. Operaciones por lotes no puede guardar los informes en los buckets de directorio. Para obtener más información, consulte Buckets de directorio.
-
el formato del reporte,
-
si desea que el reporte incluya los detalles de todas las tareas o solo las tareas con error,
-
una cadena de prefijo opcional.
nota
Los informes de finalización siempre se cifran con cifrado de servidor con claves administradas por Amazon S3 (SSE-S3).
-
- Tags (Etiquetas) (opcionales)
-
Para etiquetar y controlar el acceso a los trabajos de Operaciones por lotes de S3, puede añadir etiquetas. Puede utilizar etiquetas para identificar quien es el responsable de un trabajo de Operaciones por lotes, o bien para controlar cuántos usuarios interactúan con los trabajos de Operaciones por lotes. La presencia de etiquetas de trabajo puede conceder o limitar la capacidad de un usuario para cancelar un trabajo, activar un trabajo en estado de confirmación o cambiar el nivel de prioridad de un trabajo. Por ejemplo, puede conceder permiso a un usuario para invocar la operación
CreateJob
siempre que el trabajo se haya creado con la etiqueta"Department=Finance"
.Puede crear trabajos con etiquetas asociadas a ellos y puede añadir etiquetas a los trabajos después de crearlos.
Para obtener más información, consulte Controlar el acceso y etiquetar trabajos usando etiquetas.
- Descripción (opcional)
-
Para realizar un seguimiento y monitorear su trabajo también puede proporcionar una descripción de hasta 256 caracteres. Amazon S3 incluye esta descripción siempre que devuelve información sobre un trabajo o muestra los detalles del trabajo en la consola de Amazon S3. Puede ordenar y filtrar los trabajos fácilmente en función de las descripciones asignadas. Las descripciones no tienen que ser únicas, por lo que puede usar descripciones como categorías (por ejemplo: "trabajos de copia de registros semanales") que le ayuden a hacer un seguimiento de los grupos de trabajos parecidos.
Especificar un manifiesto
Un manifiesto es un objeto de Amazon S3 que contiene las claves de objeto sobre las que desea que actúe Amazon S3. Puede proporcionar un manifiesto de una de las siguientes formas:
-
Crear un nuevo archivo de manifiesto manualmente.
-
Usar un manifiesto existente.
-
Dirigir Operaciones por lotes para generar un manifiesto automáticamente en función de los criterios de filtro de objetos que especifique al crear su trabajo. Esta opción está disponible para trabajos de replicación por lotes que cree en la consola de Amazon S3 o para cualquier tipo de trabajo que cree mediante la AWS CLI, los SDK de AWS o la API de REST de Amazon S3.
nota
Operaciones por lotes de Amazon S3 no admite la generación de manifiestos entre regiones.
Independientemente de cómo especifique el manifiesto, la propia lista debe almacenarse en un bucket de uso general. Operaciones por lotes no puede importar los manifiestos existentes ni guardar los manifiestos generados en buckets de directorio. Sin embargo, los objetos descritos en el manifiesto se pueden almacenar en buckets de directorio. Para obtener más información, consulte Buckets de directorio.
Creación de un archivo de manifiesto
Si crea un archivo manifiesto manualmente, debe especificar la clave de objeto del manifiesto, una ETag (etiqueta de entidad) y un ID de versión opcional en una lista con formato CSV. El contenido del manifiesto debe tener codificación URL.
De forma predeterminada, Amazon S3 utiliza automáticamente el cifrado del servidor con claves administradas de Amazon S3 (SSE-S3) para cifrar un manifiesto que se carga en un bucket de Amazon S3. No se admiten los manifiestos que utilizan cifrado del lado del servidor con claves proporcionadas por el cliente (SSE-C). Solo se admiten los manifiestos que utilizan el cifrado del servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS) cuando se utilizan informes de inventario con formato CSV. No se admite el uso de un manifiesto creado manualmente con AWS KMS.
El manifiesto debe contener el nombre del bucket, la clave del objeto y, de manera opcional, la versión del objeto. Las operaciones por lotes de S3 no utilizan ninguno de los demás campos.
nota
Si los objetos del manifiesto están en un bucket versionado, especificar los ID de versión de los objetos dirige las Operaciones por lotes para realizar la operación en una versión específica. Si no se especifican los ID de versión, Operaciones por lotes realiza la operación en la versión más reciente de los objetos. Si el manifiesto incluye un campo de ID de versión, debe proporcionar un ID de versión para todos los objetos del manifiesto.
A continuación, se muestra un ejemplo de un manifiesto en formato CSV sin los ID de versión.
amzn-s3-demo-bucket1,objectkey1 amzn-s3-demo-bucket1,objectkey2 amzn-s3-demo-bucket1,objectkey3 amzn-s3-demo-bucket1,photos/jpgs/objectkey4 amzn-s3-demo-bucket1,photos/jpgs/newjersey/objectkey5 amzn-s3-demo-bucket1,object%20key%20with%20spaces
A continuación, se muestra un manifiesto de ejemplo en formato CSV que incluye los ID de versión.
amzn-s3-demo-bucket1,objectkey1,PZ9ibn9D5lP6p298B7S9_ceqx1n5EJ0p amzn-s3-demo-bucket1,objectkey2,YY_ouuAJByNW1LRBfFMfxMge7XQWxMBF amzn-s3-demo-bucket1,objectkey3,jbo9_jhdPEyB4RrmOxWS0kU0EoNrU_oI amzn-s3-demo-bucket1,photos/jpgs/objectkey4,6EqlikJJxLTsHsnbZbSRffn24_eh5Ny4 amzn-s3-demo-bucket1,photos/jpgs/newjersey/objectkey5,imHf3FAiRsvBW_EHB8GOu.NHunHO1gVs amzn-s3-demo-bucket1,object%20key%20with%20spaces,9HkPvDaZY5MVbMhn6TMn1YTb5ArQAo3w
Especificación de un archivo de manifiesto existente
Puede especificar un archivo de manifiesto en una solicitud de creación de trabajo utilizando uno de los dos formatos siguientes.
-
Informe de Inventario de Amazon S3: debe ser un informe de Inventario de Amazon S3 con formato CSV. Debe especificar el archivo
manifest.json
que está asociado con el informe de inventario. Para obtener más información sobre los informes de inventario, consulte Catálogo y análisis de sus datos con Inventario de S3. Si el informe de inventario incluye los identificadores de las versiones, las Operaciones por lotes de S3 se ejecutan en las versiones del objeto especificadas.nota
-
Las operaciones por lotes de S3 son compatibles con los informes de inventario que están cifrados con SSE-KMS.
-
Si envía un manifiesto de informe de inventario cifrado con SSE-KMS, su política de IAM debe incluir los permisos
"kms:GenerateDataKey"
ymanifest.json
para el objeto"kms:Decrypt"
y todos los archivos de datos CSV asociados.
-
-
Archivo CSV: cada fila del archivo debe incluir el nombre del bucket, la clave del objeto y, de manera opcional, la versión del objeto. Las claves de objeto deben estar codificadas como URL, tal y como se muestra en los siguientes ejemplos. El manifiesto debe incluir los ID de versión de todos los objetos u omitirlos. Para obtener más información acerca de el formato de manifiesto de CSV, consulte JobManifestSpec en la Referencia de la API de Amazon Simple Storage Service.
nota
Las Operaciones por lotes de S3 no admiten archivos de manifiesto CSV cifrados por SSE-KMS.
importante
Cuando utiliza un manifiesto creado manualmente y un bucket con control de versiones, le recomendamos que especifique los ID de versión de los objetos. Cuando se crea un objeto, las Operaciones por lotes de S3 analizan todo el manifiesto antes de ejecutar el trabajo. Sin embargo, no realizan una "instantánea" del estado del bucket.
Puesto que los manifiestos pueden contener miles de millones de objetos, los trabajos tardan mucho tiempo en ejecutarse, lo que puede afectar a la versión de un objeto sobre la que actúa el trabajo. Supongamos que sobrescribe un objeto con una versión nueva mientras un trabajo está en ejecución y no especificó el ID de versión de ese objeto. En este caso, Amazon S3 realiza la operación en la última versión del objeto, no en la versión que existe cuando se creó el trabajo. La única manera de evitar este comportamiento consiste en especificar los ID de versión de los objetos que aparecen en el manifiesto.
Generación automática de un manifiesto
Puede indicar a Amazon S3 que genere un manifiesto automáticamente en función de los criterios de filtro de objetos que especifique al crear su trabajo. Esta opción está disponible para trabajos de replicación por lotes que cree en la consola de Amazon S3 o para cualquier tipo de trabajo que cree mediante la AWS CLI, los SDK de AWS o la API de REST de Amazon S3. Para obtener más información sobre la replicación por lotes, consulte Replicación de objetos existentes con Replicación por lotes.
Para generar un manifiesto automáticamente, debe especificar los siguientes elementos como parte de su solicitud de creación de trabajo:
-
Información sobre el bucket que contiene los objetos de origen, incluidos el propietario del bucket y el nombre de recurso de Amazon (ARN)
-
Información sobre la salida del manifiesto, incluida una marca para crear un archivo de manifiesto, el propietario del bucket de salida, el ARN, el prefijo, el formato de archivo y el tipo de cifrado
-
Criterios opcionales para filtrar los objetos por fecha de creación, nombre de clave, tamaño y clase de almacenamiento. En el caso de trabajos de replicación, también puede utilizar etiquetas para filtrar objetos.
Criterios de filtro de objetos
Para filtrar la lista de objetos que se van a incluir en un manifiesto generado automáticamente, puede especificar los siguientes criterios. Para obtener más información, consulte JobManifestGeneratorFilter en la Referencia de la API de Amazon S3.
- CreatedAfter
-
Si se proporciona, el manifiesto generado incluye solo los objetos del bucket de origen que se crearon después de este tiempo.
- CreatedBefore
-
Si se proporciona, el manifiesto generado incluye solo los objetos del bucket de origen que se crearon antes de este tiempo.
- EligibleForReplication
-
Si se proporciona, el manifiesto generado incluye los objetos solo si son aptos para la replicación de acuerdo con la configuración de replicación del bucket de origen.
- KeyNameConstraint
-
Si se proporciona, el manifiesto generado incluye solo los objetos del bucket de origen cuyas claves de objeto coincidan con las restricciones de cadena especificadas para MatchAnySubstring, MatchAnyPrefix, and MatchAnySuffix
MatchAnySubstring si se proporciona, el manifiesto generado incluye objetos si la cadena especificada aparece en cualquier parte de la cadena de la clave del objeto.
MatchAnyPrefix: si se proporciona, el manifiesto generado incluye objetos si la cadena especificada aparece al principio de la cadena de la clave del objeto.
MatchAnySuffix: si se proporciona, el manifiesto generado incluye objetos si la cadena especificada aparece al final de la cadena de la clave del objeto.
- MatchAnyStorageClass
-
Si se proporciona, el manifiesto generado incluye solo los objetos del bucket de origen que se almacenan con la clase de almacenamiento especificada.
- ObjectReplicationStatuses
-
Si se proporciona, el manifiesto generado incluye solo los objetos del bucket de origen que tengan uno de los estados de replicación especificados.
- ObjectSizeGreaterThanBytes
-
Si se proporciona, el manifiesto generado incluye solo los objetos del bucket de origen cuyo tamaño de archivo sea superior al número de bytes especificado.
- ObjectSizeLessThanBytes
-
Si se proporciona, el manifiesto generado incluye solo los objetos del bucket de origen cuyo tamaño de archivo sea inferior al número de bytes especificado.
nota
No puede clonar la mayoría de los trabajos que tienen manifiestos generados automáticamente. Los trabajos de replicación por lotes se pueden clonar, excepto cuando utilizan los criterios de filtro de manifiesto KeyNameConstraint
, MatchAnyStorageClass
, ObjectSizeGreaterThanBytes
o ObjectSizeLessThanBytes
.
La sintaxis para especificar los criterios del manifiesto varía en función del método que utilice para crear el trabajo. Para ver ejemplos, consulte Creación de un trabajo.
Creación de un trabajo
Puede crear trabajos de operaciones por lotes de S3 mediante la consola de Amazon S3, AWS CLI, los SDK de AWS o la API de REST de Amazon S3.
Para obtener más información acerca de la creación de una solicitud de trabajo, consulte Elementos de una solicitud de trabajo de Operaciones por lotes.
Requisitos previos
Antes de crear un trabajo de operaciones por lotes, confirme que ha configurado los permisos pertinentes. Para obtener más información, consulte Concesión de permisos para Operaciones por lotes.
Para crear un trabajo por lotes
Inicie sesión AWS Management Console Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/
. -
En la barra de navegación de la parte superior de la página, elija el nombre de la Región de AWS que aparece. A continuación, elija en Region (Región) la región en la que desea crear el trabajo.
nota
Para las operaciones de copia, debe crear el trabajo en la misma región que el bucket de destino. Para las demás operaciones, debe crear el trabajo en la misma región que los objetos en el manifiesto.
-
Seleccione Batch Operations (Operaciones por lotes) en el panel de navegación izquierdo de la consola de Amazon S3.
-
Seleccione Crear trabajo.
-
Vea la Región de AWS en la que desea crear el trabajo.
-
En Manifest format (Formato del manifiesto), seleccione el tipo de objeto del manifiesto que desee usar.
-
Si elige S3 Inventory report (Informe de inventario de S3), escriba la ruta del objeto manifest.json que Amazon S3 ha generado con el informe de inventario con formato CSV. También puede seleccionar el ID de versión del objeto del manifiesto en caso de que desee utilizar otra versión que no sea la más reciente.
-
Si selecciona CSV, escriba la ruta del objeto del manifiesto con formato CSV. El objeto del manifiesto debe tener el mismo formato que se ha especificado en la consola. Si quiere utilizar otra versión que no sea la más reciente, puede incluir el ID de versión del objeto del manifiesto.
nota
La consola de Amazon S3 solo admite la generación automática de manifiestos para trabajos de replicación por lotes. Para el resto de tipos de trabajo, si desea que Amazon S3 genere un manifiesto automáticamente en función de los criterios de filtro que especifique, debe configurar el trabajo mediante la AWS CLI, los SDK de AWS o la API de REST de Amazon S3.
-
-
Elija Siguiente.
-
En Operation (Operación), seleccione la operación que desee en todos los objetos que aparecen en el manifiesto. Rellene los datos de la operación seleccionada y haga clic en Siguiente.
-
Rellene los datos de Configurar otras opciones y haga clic en Siguiente.
-
En Review (Revisar), compruebe la configuración. Si necesita realizar cambios, seleccione Anterior. De lo contrario, seleccione Crear trabajo.
Para crear su trabajo de Operaciones por lotes con la AWS CLI, elija uno de los siguientes ejemplos, en función de si está especificando un manifiesto existente o generando un manifiesto automáticamente.
Para crear su trabajo de Operaciones por lotes con la AWS SDK for Java, elija uno de los siguientes ejemplos, en función de si está especificando un manifiesto existente o generando un manifiesto automáticamente.
Puede utilizar la API de REST para crear un trabajo de operaciones por lotes. Para obtener más información, consulte CreateJob en la Referencia de la API de Amazon Simple Storage Service.
Respuestas del trabajo
Si la solicitud CreateJob
se realiza correctamente, Amazon S3 devuelve un ID de trabajo. El ID de trabajo es un identificador único que Amazon S3 genera automáticamente para que pueda identificar el trabajo de operaciones por lotes y monitorear su estado.
Cuando cree un trabajo a través de la AWS CLI, los SDK de AWS o la API de REST, puede definir Operaciones por lotes de S3 para comenzar a procesar el trabajo automáticamente. El trabajo se ejecuta en cuanto está listo en lugar de esperar a que se ejecuten otros trabajos de mayor prioridad.
Cuando cree un trabajo a través de la consola de Amazon S3, tendrá que revisar los detalles del trabajo y confirmar que desea ejecutarlo para que la herramienta de operaciones por lotes pueda comenzar a procesarlo. Si un trabajo permanece suspendido durante más de 30 días, no se ejecutará.