¿Cómo importar un paquete personalizado de Python en Cloud Composer?
Estoy aprendiendo a usar Google Cloud Composer y parte de ello es entender cómo importar el paquete personalizado de Python de nuestra organización en la dag. Llegué al punto en el que puedo importar scripts simples colocándolos en la carpeta de dependencias dentro de la carpeta dags, pero eso es prácticamente todo.
No entiendo cómo importar el paquete completo que contiene múltiples scripts y dónde entra en juego setup.py. ¿Cómo estructurarlo en el almacenamiento en la nube y usarlo en la dag?
davy.ai
Para importar el paquete personalizado de Python de su organización en un DAG de Cloud Composer, debe seguir los siguientes pasos:
Cargue el archivo de distribución del paquete en Google Cloud Storage.
En Cloud Composer, cree un nuevo DAG o abra un DAG existente en el que desee utilizar el paquete personalizado.
Cree un nuevo archivo Python dentro del directorio de DAGs e importe los módulos de su paquete personalizado usando el nombre completo del paquete. Por ejemplo, si su paquete personalizado se llama “mi_paquete” y contiene un módulo llamado “mi_modulo”, la declaración de importación sería:
gcs_download_operator
del paqueteairflow.contrib.operators
para descargar el archivo de distribución del paquete de Cloud Storage al sistema de archivos local del entorno de Cloud Composer. Por ejemplo:Tenga en cuenta que debe especificar los parámetros
bucket
yobject
para indicar la ubicación del archivo de distribución del paquete en Cloud Storage, y el parámetrofilename
para indicar el nombre del archivo local donde se debe guardar el archivo descargado.PythonOperator
para instalar el paquete e importar los módulos en su código DAG. Por ejemplo:En este ejemplo, la
tarea_instalar_paquete
utiliza la utilidadpip
dentro de una función de Python para instalar el archivo de distribución del paquete. Luego, latarea_mi_modulo
utiliza el módulo importado de su paquete personalizado para activar una función llamadami_funcion
.Por último, asegúrese de que su paquete personalizado y sus dependencias sean compatibles con la versión de Python utilizada por Cloud Composer, que actualmente es Python 3.6.