¿Cómo utilizo AWS Batch como destino para mi regla de EventBridge?

Última actualización: 19-01-2022

Quiero utilizar AWS Batch como destino para mi regla de Amazon EventBridge.

Resolución

El siguiente ejemplo muestra cómo configurar Amazon EventBridge para que envíe un trabajo de AWS Batch cuando se cree un nuevo bucket de Amazon Simple Storage Service (Amazon S3).

Crear una definición de trabajo

1.    Abra la consola de AWS Batch.

2.    En la barra de navegación, seleccione su región de AWS.

3.    En el panel de navegación, elija Job definitions (Definiciones de trabajos) y, luego, Create (Crear).

4.    En Job definition name (Nombre de definición de trabajo), ingrese un nombre único para su definición de trabajo.

Nota: Puede usar hasta 128 letras (mayúsculas y minúsculas), números, guiones y guiones bajos en su nombre único.

5.    En Container image (Imagen de contenedor), ingrese amazonlinux.

6.    En Command (Comando), ingrese lo siguiente:

echo Ref::S3bucket

7.    En vCPUs (CPU virtuales), ingrese 2.

8.    En Memory (MiB) (Memoria (MiB)), ingrese 500.

9.    Elija Next (Siguiente) y, a continuación, seleccione Create (Crear).

Obtener el ARN de la cola de trabajos y la definición de trabajo

1.    Abra la consola de AWS Batch.

2.    En el panel de navegación, elija Job queues (Colas de trabajos).

3.    Elija su cola de trabajos.

4.    En la sección Job queue details (Detalles de la cola de trabajos), copie el Queue ARN (ARN de cola) y, después, guárdelo para más adelante.

5.    En el panel de navegación, elija Job definitions (Definiciones de trabajo) y, a continuación, elija la definición de trabajo que creó anteriormente.

6.    En la sección Job definition details (Detalles de la definición de trabajo), copie el Job definition ARN (ARN de definición de trabajo) y, después, guárdelo para más adelante.

Habilitar el registro de eventos de datos de CloudTrail para objetos en un bucket de S3

Para desencadenar trabajos de AWS Batch en operaciones de objetos de Simple Storage Service (Amazon S3), por ejemplo, cuando se carga un objeto nuevo en un bucket existente, consulte Habilitación del registro de eventos de CloudTrail para buckets y objetos de S3.

Crear la regla de EventBridge

1.    Abra la consola de EventBridge.

2.    Seleccione Create rule (Crear regla).

3.    Ingrese un nombre para su regla. Si lo desea, puede ingresar una Description (Descripción).

4.    En Define pattern (Definir patrón), seleccione Event pattern (Patrón de eventos).

5.    Seleccione Pre-defined pattern by service (Patrón predefinido por servicio).

6.    En Service provider (Proveedor de servicios), elija AWS.

7.    En Service name (Nombre del servicio), elija Simple Storage Service (S3).

8.    En Eventy type, elija Bucket-Level API Call via CloudTrail (Llamada a la API de buckets a través de CloudTrail).

9.    Elija Any operation (Cualquier operación).

10.    En la sección Select destinos (Seleccionar destinos), elija Batch job queue (Cola de trabajos por lotes) en la lista desplegable Target (Destino).

11.    En Job queue (Cola de trabajos), pegue el ARN de la cola de trabajos que copió anteriormente.

12.    En Job definition (Definición de trabajo), pegue el ARN de definición de trabajo que copió anteriormente.

13.    En Job name (Nombre del trabajo), ingrese un nombre para su trabajo de AWS Batch.

14.    En la sección Configure input (Configurar entrada), elija Input Transformer (Transformador de entrada).

15.    En el primer recuadro de entrada, ingrese los valores del bucket de S3 que se enviarán cuando se desencadene el evento:

{"S3BucketNameValue":"$.detail.requestParameters.bucketName"}

Nota: Reemplace S3BucketNameValue por su propio valor.

16.    En el segundo recuadro de entrada, ingrese la estructura Parameters (Parámetros) que se trasladará al trabajo de Batch:

{"Parameters" : {"S3bucket": S3BucketNameValue}}

Nota: Reemplace S3BucketNameValue por su propio valor. Reemplace S3bucket por el nombre del parámetro que desea definir en su trabajo de AWS Batch.

17.    Elija Create a new role for this specific resource (Crear un nuevo rol para este recurso específico) o Use existing role (Usar rol existente).

Nota: Si elige un rol existente, ese rol debe tener una política de AWS Identity and Access Management (IAM) que permita la acción batch:SubmitJob.

18.    Seleccione Create (Crear).

Pruebe la nueva regla que creó

1.    Abra la consola de Amazon S3.

2.    Elija Create bucket (Crear bucket).

3.    En el campo Bucket name (Nombre del bucket), ingrese un nombre que cumpla con DNS que sea único para su nuevo bucket.

4.    En Region (Región), elija la misma región en la que creó la regla de EventBridge.

5.    Elija Create (Crear).

Revise sus registros

1.    Abra la consola de AWS Batch.

2.    En el panel de navegación, elija Jobs (Trabajos).

3.    Elija su trabajo con un Status (Estado) SUCCEEDED (TUVO ÉXITO).

4.    En la página Job detailes, en la sección Attempts (Intentos), elija View logs (Ver registros). El registro muestra el nombre de su bucket en la consola de CloudWatch.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?