Programa trabajos dependientes

En este documento, se describe cómo crear y ejecutar un trabajo que no está programado hasta que se completen o se produzcan errores en trabajos específicos. Para obtener más información sobre los estados de los trabajos, consulta Descripción general de la creación y ejecución de trabajos.

Si tienes una carga de trabajo con diferentes requisitos de recursos, considera usar trabajos dependientes para crear una cadena automatizada de trabajos que usen VMs independientes. Por ejemplo, separa los tipos de VMs que se usan para operaciones de baja demanda (como la preparación de datos) y las operaciones intensivas en procesamiento (como el procesamiento de datos). Si usas trabajos dependientes para optimizar el consumo de recursos, puedes reducir los costos y el uso de la cuota.

Antes de comenzar

  1. Si nunca antes usaste Batch, consulta Cómo comenzar a usar Batch y habilita Batch completando los requisitos previos para proyectos y usuarios.
  2. Para obtener los permisos que necesitas para crear un trabajo, pídele a tu administrador que te otorgue los siguientes roles de IAM:

    Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

    También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Restricciones

Los trabajos dependientes tienen las siguientes restricciones:

  • Un trabajo dependiente puede tener hasta cuatro dependencias. Cada dependencia debe contener un nombre de trabajo único y uno de los siguientes estados obligatorios:

    • SUCCEEDED: Se realizó correctamente.
    • FAILED: con errores
    • FINISHED: Si se realizó correctamente o no
  • Cuando creas un trabajo dependiente, deben existir todos sus trabajos de dependencia.

  • Un trabajo dependiente no puede ingresar al estado programado (SCHEDULED) hasta que cada trabajo de dependencia haya ingresado al estado requerido. Si se vuelve imposible que un trabajo de dependencia ingrese a su estado requerido, el trabajo dependiente falla de inmediato sin programarse.

Crea un trabajo dependiente

Puedes crear un trabajo que dependa de los siguientes métodos:

Para especificar que una tarea es dependiente, incluye el campo dependencies[].items, que admite una o más dependencias especificadas como pares clave-valor, en el cuerpo principal del archivo JSON:

"dependencies": [
  {
    "items": {
      "DEPENDENCY_JOB_NAME": "REQUIRED_STATE"
    }
  }
]

Reemplaza lo siguiente:

  • DEPENDENCY_JOB_NAME: Es el nombre de un trabajo de dependencia, que debe alcanzar su estado requerido antes de que se pueda programar.

  • REQUIRED_STATE: Es el estado requerido para el trabajo de dependencia correspondiente, que debe ser SUCCEEDED, FAILED o FINISHED.

Por ejemplo, un trabajo dependiente con tres dependencias puede tener un archivo de configuración JSON similar al siguiente:

{
  "taskGroups": [
    {
      "taskSpec": {
        "runnables": [
          {
            "script": {
              "text": "echo Hello World! This is task $BATCH_TASK_INDEX."
            }
          }
        ]
      },
      "taskCount": 3
    }
  ],
  "dependencies": [
    {
      "items": {
        "DEPENDENCY_JOB_NAME_1": "REQUIRED_STATE_1",
        "DEPENDENCY_JOB_NAME_2": "REQUIRED_STATE_2",
        "DEPENDENCY_JOB_NAME_3": "REQUIRED_STATE_3"
      }
    }
  ]
}

¿Qué sigue?