Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
En esta página, se proporciona información para solucionar problemas relacionados con problemas que puedes encontrar cuando actualizas entornos de Cloud Composer.
Para obtener información sobre la solución de problemas relacionados con la creación de entornos, consulta Solución de problemas de creación de entornos.
Cuando se actualizan los entornos de Cloud Composer, la mayoría de los problemas ocurren debido a los siguientes motivos:
- Problemas de permisos de la cuenta de servicio
- Problemas de dependencia de PyPI
- Tamaño de la base de datos de Airflow
No tienes permisos suficientes para actualizar un entorno
Si Cloud Composer no puede actualizar un entorno debido a permisos insuficientes, se mostrará el siguiente mensaje de error:
ERROR: (gcloud.composer.environments.update) PERMISSION_DENIED: The caller does not have permission
Solución: Asigna roles a tu cuenta y a la cuenta de servicio de tu entorno como se describe en Control de acceso.
La cuenta de servicio del entorno no tiene permisos suficientes.
Cuando creas un entorno de Cloud Composer, especificas una cuenta de servicio que realiza la mayoría de las operaciones del entorno. Si esta cuenta de servicio no tiene suficientes permisos para la operación solicitada, Cloud Composer genera un error:
UPDATE operation on this environment failed 3 minutes ago with the
following error message:
Composer Backend timed out. Currently running tasks are [stage:
CP_COMPOSER_AGENT_RUNNING
description: "No agent response published."
response_timestamp {
seconds: 1618203503
nanos: 291000000
}
].
Solución: Asigna roles a tu Cuenta de Google y a la cuenta de servicio de tu entorno como se describe en Control de acceso.
El tamaño de la base de datos de Airflow es demasiado grande para realizar la operación.
Es posible que una operación de actualización no se realice de forma correcta porque el tamaño de la base de datos de Airflow es demasiado grande para que las operaciones de actualización se realicen con éxito.
Si el tamaño de la base de datos de Airflow supera los 20 GB, Cloud Composer genera el siguiente error:
Airflow database uses more than 20 GB. Please clean the database before upgrading.
Solución: Realiza la limpieza de la base de datos de Airflow, como se describe en Cómo limpiar la base de datos de Airflow.
Una actualización a una versión nueva de Cloud Composer falla debido a conflictos de paquetes de PyPI.
Cuando actualizas un entorno con paquetes PyPI personalizados instalados, es posible que encuentres errores relacionados con conflictos de paquetes de PyPI. Esto puede suceder porque la compilación nueva de Airflow contiene versiones posteriores de paquetes preinstalados. Esto puede causar conflictos de dependencias con los paquetes de PyPI que instalaste en tu entorno.
Solución:
- Para obtener información detallada sobre los conflictos de paquetes, ejecuta una verificación de actualización.
- Disminuye las restricciones de versiones para los paquetes personalizados de PyPI instalados. Por ejemplo, en lugar de especificar una versión como
==1.0.1
, especifícala como>=1.0.1
. - Para obtener más información sobre cómo cambiar los requisitos de versión para resolver dependencias en conflicto, consulta la documentación de pip.
Inspecciona las advertencias de migración fallida
Cuando se actualiza Airflow a una versión posterior, a veces se aplican nuevas restricciones a la base de datos de Airflow. Si no se pueden aplicar estas restricciones, Airflow crea tablas nuevas para almacenar las filas para las que no se pudieron aplicar las restricciones. La IU de Airflow muestra un mensaje de advertencia hasta que se cambie el nombre de las tablas de datos que se movieron o se descarten.
Solución:
Puedes usar los siguientes dos DAG para inspeccionar los datos que se movieron y cambiar el nombre de las tablas.
El DAG de list_moved_tables_after_upgrade_dag
enumera las filas que se movieron de
cada tabla en la que no se pudieron aplicar las restricciones. Inspecciona los datos y decide si quieres conservarlos. Para conservarlo, debes corregir los datos de forma manual en
la base de datos de Airflow. Por ejemplo, volviendo a agregar las filas con los datos correctos.
Si no necesitas los datos o ya los corregiste, puedes ejecutar el DAG de rename_moved_tables_after_upgrade_dag
. Este DAG cambia el nombre de las tablas movidas.
Las tablas y sus datos no se borran, por lo que puedes revisarlos más adelante.