Soluciona problemas

En esta página, se muestra cómo resolver problemas con Batch.

Si intentas solucionar un trabajo para el que no tienes un mensaje de error, debes describir el trabajo mediante la CLI de gcloud o la API de Batch y verificar si el campo statusEvents contiene mensajes de error antes de revisar este documento.

A fin de obtener más información para solucionar problemas de un trabajo, consulta Cuotas y límites de lotes.

Errores de creación de trabajos

Si no puedes crear un trabajo, es posible que se deba a uno de los errores de esta sección.

Cuota insuficiente

Problema

Uno de los siguientes problemas ocurre cuando intentas crear un trabajo:

RESOURCE_NAME creation failed:
Quota QUOTA_NAME exceeded. Limit: QUOTA_LIMIT in region REGION
RESOURCE_NAME creation failed:
Quota QUOTA_NAME exceeded. Limit: QUOTA_LIMIT in zone ZONE

Solución

Este problema indica que una solicitud de recursos excede tu cuota.

Para resolver el problema, espera a que se divulgue más cuota o solicita un límite de cuota más alto. Para obtener más información, consulta Cuotas y límites de lotes y Solicita una cuota mayor.

No tienes permisos suficientes para actuar como la cuenta de servicio

Problema

El siguiente problema ocurre cuando intentas crear un trabajo:

  • Si el trabajo no usa una plantilla de instancias, el problema aparece de la siguiente manera:

    caller does not have access to act as the specified service account: SERVICE_ACCOUNT_NAME
    
  • Si el trabajo usa una plantilla de instancias, el problema aparece de la siguiente manera:

    Error: code - CODE_SERVICE_ACCOUNT_MISMATCH, description - The service account specified in the instance template INSTANCE_TEMPLATE_SERVICE_ACCOUNT doesn't match the service account specified in the job JOB_SERVICE_ACCOUNT for JOB_UID, project PROJECT_NUMBER
    

Solución

Por lo general, este problema se produce porque el usuario que crea el trabajo no tiene permisos suficientes para actuar como la cuenta de servicio que usa el trabajo, que se controla mediante el permiso iam.serviceAccounts.actAs.

Para solucionar el problema, haz lo siguiente:

  1. Si el trabajo usa una plantilla de instancias, verifica que la cuenta de servicio especificada en la plantilla de instancias coincida con la cuenta de servicio especificada en la definición del trabajo.
  2. Asegúrate de que al usuario que crea el trabajo se le haya otorgado la función de usuario de cuenta de servicio (roles/iam.serviceAccountUser) en la cuenta de servicio especificada para el trabajo. Para obtener más información, consulta Administra el acceso.
  3. Vuelve a crear el trabajo.

Errores de falla del trabajo

Si tienes problemas con un trabajo que no se ejecuta de forma correcta o falló por motivos poco claros, es posible que se deba a uno de los errores de esta sección.

No hay registros en Cloud Logging

Problema

Debes depurar un trabajo, pero no aparecen registros para el trabajo en Cloud Logging.

Solución

Este problema suele ocurrir por los siguientes motivos:

  • El trabajo no se configuró para producir registros. Para producir registros en Cloud Logging, un trabajo debe tener habilitado Cloud Logging. Los objetos ejecutables del trabajo también deben configurarse para escribir cualquier información que desees que aparezca en los registros en las transmisiones de salida estándar (stdout) y de error estándar (stderr). Para obtener más información, consulta Analiza un trabajo mediante registros.
  • Las tareas no se ejecutaron. Los registros no se pueden producir hasta que las tareas se asignen a los recursos y comiencen a ejecutarse.

Para resolver el problema, describe el trabajo con la CLI de gcloud o la API de Batch. En particular, el campo status del trabajo proporciona información que puedes usar para depurarlo. Además, describir el trabajo también puede ayudarte a comprender por qué no produjo registros.

No hay informes de agentes

Problema

El siguiente problema aparece en el campo statusEvents de un trabajo que no se ejecuta de forma correcta o que falló antes de crear las VM:

No VM has agent reporting correctly within time window NUMBER_OF_SECONDS seconds, VM state for instance VM_NAME is TIMESTAMP,agent,start

El problema indica que ninguna de las VM de un trabajo informa al agente de servicio por lotes.

Solución

Este problema suele ocurrir por los siguientes motivos:

  • Las VM del trabajo no tienen permisos suficientes. En particular, este problema sugiere que las VM del trabajo no tienen los permisos para informar su estado al agente de servicio de Batch. Las VM de un trabajo pueden obtener estos permisos si otorgan la función de informante de agente por lotes (roles/batch.agentReporter) a la cuenta de servicio del trabajo.
  • Las VM del trabajo tienen problemas de red. Las VM del trabajo no pueden informar al agente de servicio de Batch debido a un problema de red.

Para solucionar el problema, haz lo siguiente:

  1. Verifica que las VM del trabajo tengan los permisos necesarios para informar su estado al agente de servicio de Batch.

    1. Para identificar la cuenta de servicio del trabajo, descríbelo con la CLI de gcloud o la API de Batch. Si no se muestra ninguna cuenta de servicio, el trabajo usa la cuenta de servicio predeterminada de Compute Engine de forma predeterminada.
    2. Confirma que la cuenta de servicio del trabajo tenga permisos para la función de informante de agente por lotes (roles/batch.agentReporter). Si deseas obtener más información, consulta Administra el acceso y Restringe el uso de la cuenta de servicio.

      Por ejemplo, para otorgar los permisos necesarios a la cuenta de servicio predeterminada de Compute Engine, usa el siguiente comando:

      gcloud projects add-iam-policy-binding /
      --role roles/batch.agentReporter /
      --member serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com
      

      Reemplaza PROJECT_NUMBER por el número de proyecto.

  2. Si las VM del trabajo ya tenían suficientes permisos, verifica que las VM tengan acceso a la red adecuado. Para obtener más información, consulta Soluciona problemas comunes de red.

  3. Vuelve a crear el trabajo.

Se infringió la restricción de las direcciones IP externas de las VM

Problema

El siguiente problema aparece en el campo statusEvents de un trabajo con errores:

Instance VM_NAME creation failed: Constraint constraints/compute.vmExternalIpAccess violated for project PROJECT_NUMBER.
Add instance VM_NAME to the constraint to use external IP with it.

Solución

Este problema se produce porque tu organización o proyecto estableció la restricción de la política de la organización compute.vmExternalIpAccess para permitir que las VM incluidas en la lista de entidades permitidas usen direcciones IP externas.

Para resolver el problema, vuelve a crear el trabajo y realiza una de las siguientes acciones:

El trabajo falló mientras se usaba una plantilla de instancias

Problema

El siguiente problema aparece en el campo statusEvents de un trabajo con errores que usa una plantilla de instancias:

INVALID_FIELD_VALUE,BACKEND_ERROR

Solución

Este problema se produce debido a problemas poco claros con la plantilla de instancias del trabajo.

Para depurar el problema, haz lo siguiente:

  1. Crea un MIG con la plantilla de instancias y observa si se producen errores con más detalles.
  2. Para buscar más información, consulta la operación de larga duración que crea el MIG en Google Cloud Console (opcional).

    Ir a Operaciones de Compute Engine

¿Qué sigue?