Ejecuta trabajos

En esta página, se describe cómo ejecutar trabajos de Cloud Run. La ejecución de un trabajo crea una ejecución de trabajo en la que todas las tareas deben ejecutarse hasta completarse con éxito para que la ejecución del trabajo se realice correctamente. Las ejecuciones de trabajos escriben registros en Cloud Logging y envían datos de supervisión a Cloud Monitoring.

Además de estas funciones de registro, también puedes ver los detalles de la ejecución de trabajos para las 1,000 ejecuciones más recientes de un trabajo mediante el panel de detalles de ejecución, junto con las ejecuciones que se produjeron en los últimos siete días. Se quitan los detalles más antiguos de ejecución y ya no son visibles en el panel de detalles de ejecución. Sin embargo, los registros y los datos de supervisión de las ejecuciones más antiguas aún están disponibles en Cloud Logging y Cloud Monitoring, sujetos a las políticas de retención de esos servicios. productos.

Roles obligatorios

Para obtener los permisos que necesitas para las operaciones descritas en esta página, pídele a tu administrador que te otorgue uno de los siguientes roles de IAM en tu trabajo de Cloud Run:

  • Para ejecutar trabajos con Google Cloud CLI: Invocador de Cloud Run (roles/run.invoker) en el trabajo de Cloud Run
  • Para ejecutar trabajos con la Google Cloud consola, anular configuraciones de trabajos o cancelar ejecuciones de trabajos: Desarrollador de Cloud Run (roles/run.developer) en el trabajo de Cloud Run

Para obtener una lista de los roles y los permisos de IAM asociados con Cloud Run, consulta los roles de IAM de Cloud Run y los permisos de IAM de Cloud Run. Si tu trabajo de Cloud Run interactúa con lasGoogle Cloud APIs, como las bibliotecas cliente de Cloud, consulta la guía de configuración de identidades del servicio. Para obtener más información sobre cómo otorgar roles, consulta los permisos de implementación y cómo administrar el acceso.

Ejecuta trabajos

Puedes ejecutar trabajos con la Google Cloud consola, Google Cloud CLI, las bibliotecas cliente o la API de REST.

Console

Para ejecutar un trabajo, sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página Trabajos de Cloud Run:

    Ir a Trabajos de Cloud Run

  2. Ubica el trabajo que te interesa.

  3. Haz clic en el trabajo para mostrar su página de detalles.

  4. Haz clic en Ejecutar.

gcloud

Para ejecutar un trabajo existente, sigue estos pasos:

gcloud run jobs execute JOB_NAME

Si quieres que el comando espere hasta que se complete la ejecución, usa lo siguiente:

gcloud run jobs execute JOB_NAME --wait --region=REGION

Reemplaza lo siguiente:

  • JOB_NAME: Es el nombre del trabajo.
  • REGION: Es la región en la que se puede encontrar el recurso. Por ejemplo, europe-west1. De manera alternativa, configura la propiedad run/region.

Bibliotecas cliente

Sigue estos pasos para ejecutar un trabajo existente a partir de código:

API de REST

Para ejecutar un trabajo existente, envía una solicitud HTTP POST al método de la API jobs.run.

Por ejemplo, con curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME:run

Reemplaza lo siguiente:

  • ACCESS_TOKEN: Es un token de acceso válido para una cuenta que tenga los permisos de IAM para ejecutar un trabajo. Por ejemplo, si accediste a gcloud, puedes recuperar un token de acceso con gcloud auth print-access-token. Desde una instancia de contenedor de Cloud Run, puedes recuperar un token de acceso a través del servidor de metadatos de instancias de contenedor.
  • JOB_NAME: Es el nombre del trabajo.
  • REGION: Es la Google Cloud región del trabajo.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud .

Ejecuta trabajos de inmediato

Console

Para ejecutar un trabajo de inmediato, sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página Trabajos de Cloud Run:

    Ir a Trabajos de Cloud Run

  2. Si tienes un trabajo existente, haz clic en él para mostrar la página de detalles y, luego, selecciona Ver y editar la configuración del trabajo. Si estás creando un trabajo nuevo, selecciona Implementar contenedor.

  3. Ve a la parte inferior de la página y marca la casilla Ejecutar trabajo de inmediato antes de crear o actualizar el trabajo.

gcloud

Puedes especificar la marca --execute-now cuando crees o actualices un trabajo:

  • Para crear un trabajo, sigue estos pasos:

    gcloud run jobs create JOB_NAME \
      --image IMAGE_URL \
      --execute-now \
      --region=REGION
  • Actualiza un trabajo:

    gcloud run jobs update JOB_NAME --execute-now --region=REGION

Reemplaza lo siguiente:

  • JOB_NAME: Es el nombre del trabajo.
  • IMAGE_URL: Es una referencia a la imagen del contenedor, por ejemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
  • REGION: Es la región en la que se puede encontrar el recurso. Por ejemplo, europe-west1.

YAML

Puedes almacenar la especificación de trabajo en un archivo YAML y, luego, implementarla con gcloud CLI.

  1. Si creas un trabajo nuevo, omite este paso. Si actualizas un trabajo existente, descarga su configuración de YAML:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Configura el atributo startExecutionToken como se muestra a continuación:

    apiVersion: run.googleapis.com/v2
    kind: Job
    metadata:
      name: JOB_NAME
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE_URL
      startExecutionToken: START_EXECUTION_SUFFIX

    Reemplaza lo siguiente:

    • JOB_NAME por el nombre del trabajo de Cloud Run. Los nombres de trabajos deben tener 49 caracteres o menos, y deben ser únicos por región y proyecto.
    • IMAGE_URL: Es una referencia a la imagen del contenedor, por ejemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • START_EXECUTION_SUFFIX: Es una cadena única que se usa como sufijo para crear una nueva ejecución. El trabajo estará listo cuando se inicie la ejecución correctamente. La suma del nombre del trabajo y la longitud del token debe ser inferior a 63 caracteres.

    También puedes especificar más opciones de configuración, como variables de entorno o límites de memoria.

  3. Crea o actualiza el servicio con el siguiente comando:

    gcloud run jobs replace job.yaml

Terraform

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.

Agrega lo siguiente a un recurso google_cloud_run_v2_job en tu configuración de Terraform:
resource "google_cloud_run_v2_job" "default" {
   name     = "cloudrun-job"
   location = "REGION"
   deletion_protection = false
   start_execution_token = "START_EXECUTION_SUFFIX"
   template {
      template {
         containers {
         image = "us-docker.pkg.dev/cloudrun/container/job"
         }
      }
   }
}

Reemplaza lo siguiente:

  • REGION: La Google Cloud región Por ejemplo, europe-west1.
  • START_EXECUTION_SUFFIX: Es una cadena única que se usa como sufijo para crear una nueva ejecución. El trabajo estará listo cuando se inicie la ejecución correctamente. La suma del nombre del trabajo y la longitud del token debe ser inferior a 63 caracteres.

Bibliotecas cliente

Para ejecutar un trabajo de inmediato desde el código con las bibliotecas cliente de Cloud, haz lo siguiente:

API de REST

Para ejecutar trabajos inmediatamente después de su creación, envía una solicitud HTTP POST al extremo jobs de la API de Cloud Run Admin.

Por ejemplo, con curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '{
     "template": {
        "template": {
           "containers":
              {
                 "image": "IMAGE_URL"
              }
        }
     },
     "startExecutionToken": "START_EXECUTION_SUFFIX"
  }' \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs?jobId=JOB_NAME"

Reemplaza lo siguiente:

  • ACCESS_TOKEN: Es un token de acceso válido para una cuenta que tenga los permisos de IAM para crear trabajos. Por ejemplo, si accediste a gcloud, puedes recuperar un token de acceso con gcloud auth print-access-token. Desde una instancia de contenedor de Cloud Run, puedes recuperar un token de acceso a través del servidor de metadatos de instancias de contenedor.
  • IMAGE_URL: Es una referencia a la imagen del contenedor, por ejemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
  • START_EXECUTION_SUFFIX: Es una cadena única que se usa como sufijo para crear una nueva ejecución. El trabajo estará listo cuando se inicie la ejecución correctamente. La suma del nombre del trabajo y la longitud del token debe ser inferior a 63 caracteres.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • REGION: Es la Google Cloud región del trabajo.
  • JOB_NAME: Es el nombre del trabajo que deseas crear.

Anula la configuración del trabajo para una ejecución específica

Puedes anular los argumentos, las variables de entorno, la cantidad de tareas y el tiempo de espera de la tarea configurados para un trabajo cuando ejecutas un trabajo si configuras estos parámetros cuando inicias una nueva ejecución de trabajo. Los parámetros que especificas solo afectan a esta ejecución y no a los posteriores, ya que la definición del trabajo subyacente permanece sin cambios.

Estos son algunos casos de uso comunes:

  • Debes ejecutar el trabajo de manera programática desde tu código y deseas anular argumentos o variables de entorno, por ejemplo, para indicarle al trabajo dónde se encuentran los datos de entrada para esta ejecución.
  • Tienes un trabajo en el que cada tarea tiene como objetivo procesar solo un dato de entrada. Deseas anular la cantidad de tareas según la cantidad de entradas que se procesarán.
  • El tiempo de ejecución de tu trabajo varía entre ejecuciones. Deseas anular el tiempo de espera de las tareas según el tiempo de ejecución esperado del trabajo.

Para anular la configuración de trabajo de una ejecución, sigue estos pasos:

Console

  1. Ir a la página de trabajos de Cloud Run

  2. Ubica el trabajo que te interesa.

  3. Haz clic en el trabajo para mostrar su página de detalles.

  4. Haz clic en la flecha desplegable delante del botón Editar y, luego, en Ejecutar con anulaciones para mostrar el formulario Ejecutar trabajo con anulaciones.

    imagen

  5. Cambia los argumentos, las variables de entorno, la cantidad de tareas o la configuración del tiempo de espera de la tarea para esta ejecución como desees y haz clic en Ejecutar.

gcloud

Usa el comando:

gcloud run jobs execute JOB_NAME \
     --args ARGS \
     --update-env-vars KEY=VALUE>,KEY_N=VALUE_N \
     --tasks TASKS \
     --task-timeout TIMEOUT

Reemplaza lo siguiente:

Bibliotecas cliente

Para ejecutar un trabajo existente a partir de código, anula la configuración del trabajo:

API de REST

Si deseas anular la configuración de trabajo para un trabajo existente, envía una solicitud HTTP POST a fin de solicitar al extremo jobs de la API de Cloud Run Admin

Por ejemplo, con curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '{"overrides": {"containerOverrides": [{"args": ["ARGS"], "env": [{"name": "KEY", "value": "VALUE"}]}], "taskCount": TASKS, "timeout": "TIMEOUT" }}' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME:run

Reemplaza lo siguiente:

Cancelar la ejecución del trabajo

Para detener la ejecución del trabajo de Cloud Run que se está realizando, usa la función de cancelación. Cancelar la ejecución de un trabajo detiene la ejecución actual del trabajo. Las ejecuciones canceladas tienen el estado cancelado. Todavía podrás ver la ejecución, incluidos sus datos de configuración, registros y datos de supervisión.

Cancelar la ejecución de un trabajo no revierte los cargos por cualquier uso de trabajos de Cloud Run durante el tiempo en que se estaba ejecutando el trabajo.

Para cancelar una ejecución, sigue estos pasos:

Console

  1. Ir a la página de trabajos de Cloud Run

  2. Haz clic en el trabajo para abrir su panel de detalles.

  3. Selecciona la ejecución del trabajo que deseas cancelar.

  4. En el menú Acciones, haz clic en el ícono de puntos suspensivos y, luego, en Cancelar.

gcloud

Usa el comando:

gcloud run jobs executions cancel EXECUTION_NAME

Reemplaza EXECUTION_NAME por el nombre de la ejecución.

Este comando solicita confirmación, por lo que debes responder la solicitud; para ello, ingresa y para confirmar.

Bibliotecas cliente

Para cancelar la ejecución de un trabajo a partir de código, sigue estos pasos:

API de REST

Para cancelar la ejecución de un trabajo, envía una solicitud HTTP POST a fin de solicitar al extremo jobs de la API de Cloud Run Admin.

Por ejemplo, con curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME/executions/EXECUTION-NAME:cancel

Reemplaza lo siguiente:

  • ACCESS_TOKEN: Es un token de acceso válido para una cuenta que tenga los permisos de IAM para cancelar ejecuciones de trabajos. Por ejemplo, si accediste a gcloud, puedes recuperar un token de acceso con gcloud auth print-access-token. Desde una instancia de contenedor de Cloud Run, puedes recuperar un token de acceso a través del servidor de metadatos de instancias de contenedor.
  • JOB_NAME: Es el nombre del trabajo.
  • EXECUTION-NAME: Es el nombre de la ejecución del trabajo.
  • REGION: Es la Google Cloud región del trabajo.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud .

Borra la ejecución de un trabajo

Puedes borrar la ejecución de un trabajo, incluso si se está realizando en este momento. Si borras una ejecución, se impide que la ejecución continúe. Para obtener más información, consulta Borra la ejecución de un trabajo.

¿Qué sigue?

Después de ejecutar un trabajo, puedes hacer lo siguiente: