¿Cómo transfiero parámetros desde un desencadenador programado de EventBridge a un trabajo de AWS Batch?

Última actualización: 20/01/2022

Quiero pasar parámetros de un desencadenador programado en Amazon EventBridge a un trabajo de AWS Batch.

Descripción corta

En AWS Batch, susparámetros son marcadores de posición para las variables que define en la sección decommand (comandos) de su definición de trabajo de AWS Batch. Estos marcadores de posición le permiten:

  • Usar la misma definición de trabajo para varios trabajos que usen el mismo formato.
  • Cambiar los valores del command (comando) de forma programática en el momento del envío.

Se recomienda definir el parámetro como un par clave-valor. Por ejemplo:

"Parameters" : {"test" : "abc"}

Si registra una definición de trabajo o envía un trabajo, utilice marcadores de posición de sustitución de parámetros en el campo de comando de las propiedades del contenedor del trabajo. Por ejemplo:

"Command" : [ "echo” "Ref::test" ]

Al enviar el trabajo anterior, el argumento Ref::test en el command (comando) del contenedor se reemplaza por el valor predeterminado (abc).

Puede definir un valor de parámetro diferente para la misma clave de parámetro cuando envía un trabajo. Por ejemplo:

"Parameters" : {"test" : "hello"}

Cuando envía el trabajo anterior, el argumento Ref::test en el command (comando) del contenedor se reemplaza por el valor personalizado (hello (hola)) que definió durante el envío del trabajo.

Resolución

Configure su entorno de AWS Batch

1.    Cree un entorno informático.

2.    Create a job queue (Cree una cola de trabajos) y, a continuación, asocie su cola de trabajos con el entorno informático que creó en el paso 1.

3.    Create a job definition (Cree una definición de trabajo) con una imagen (por ejemplo: nginx).

Cree una 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 descripción.

4.    En Define pattern (Definir patrón), seleccioneEvent pattern (Patrón de eventos) o Schedule (Programación) , según su caso de uso.

5.    En Select event bus (Seleccionar bus de eventos), seleccione la opción predeterminada del AWS default event bus (bus de eventos predeterminado de AWS).

6.    En la sección Select targets (Seleccionar destinos), elija Batch job queue (Cola de trabajo por lote) en la lista desplegable Trget (Destino).

7.    ParaJob queue (Cola de trabajos), ingrese el ARN de la cola de trabajos que creó anteriormente.

8.    En Job definition (Definición de trabajo), ingrese el nombre de la definición de trabajo que creó anteriormente.

9.    En Job name (Nombre de trabajo), ingrese un nombre para su trabajo.

10.    Expanda la sección Configure input (Configurar entrada) y seleccioneConstant (JSON text) (Constante (texto de JSON)).

11.    En el cuadro de texto que aparece, ingrese lo siguiente:

{"Parameters": {"name":"test"}, "ContainerOverrides": { "Command": ["echo","Ref::name"] } }

La regla envía un trabajo de AWS Batch cuando EventBridge invoca la regla. Si el trabajo se realiza correctamente, los registros de CloudWatch imprimen «prueba» en las siguientes ubicaciones:

Log Group: /aws/batch/job
Log Stream: yourJobDefinitionName/default/your-ecs-task-ID

Importante: Debe usar el letra de caja camello para el texto JSON en tus reglas de EventBridge.

12.    Seleccione Create (Crear).


¿Le resultó útil este artículo?


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