Repositorio de código de Airflow de Cloud Composer

En esta página se describe el repositorio que almacena el código parcheado de Apache Airflow que se usa en Cloud Composer.

Acerca del repositorio

El repositorio Composer-Airflow es un repositorio de solo lectura que contiene el código parcheado de Apache Airflow que se ejecuta en Cloud Composer.

Una versión concreta de Apache Airflow que se encuentra en Cloud Composer no siempre coincide exactamente con la versión correspondiente de Airflow upstream, ya que Cloud Composer usa una versión parcheada de Airflow. Este repositorio contiene el código de todas las versiones parcheadas de Airflow que se usan en Cloud Composer. Para obtener información sobre las versiones de Airflow que se encuentran en Cloud Composer, consulta la lista de versiones de Cloud Composer.

Colaboración

Este código no es una bifurcación de Apache Airflow. El código que se encuentra en este repositorio procede directamente del repositorio de Apache Airflow, pero en una cronología diferente a la de las versiones normales de Apache Airflow.

Si quieres contribuir a esta base de código, contribuye directamente a Airflow. No lo hagas en este repositorio porque no se aceptan solicitudes de extracción.

Problemas y asistencia

El repositorio tiene una rama por cada versión de Airflow disponible en Cloud Composer. No todas las versiones de Airflow son compatibles con Cloud Composer. Puedes consultar qué versiones de Airflow son compatibles con una versión concreta de Cloud Composer en la lista de versiones de Cloud Composer.

Ejemplos de uso

En esta sección se muestran ejemplos de uso del repositorio.

¿Esta confirmación del repositorio de Airflow está en mi versión de Cloud Composer?

Los SHA-1 de las confirmaciones del repositorio Composer-Airflow no se corresponden con los SHA-1 de las confirmaciones del repositorio de Airflow upstream. Una de las formas de buscar un commit específico es buscar el mensaje de commit correspondiente.

No se puede usar la interfaz de usuario de GitHub para buscar en los mensajes de confirmación de ramas que no sean la predeterminada, pero sí se puede hacer con la CLI de git. Para buscar una confirmación concreta en este repositorio, debes tener git instalado.

Para buscar un mensaje de confirmación con la CLI de git:

  1. Clona el repositorio y cambia al directorio del repositorio con el siguiente comando:

    git clone git@github.com:GoogleCloudPlatform/composer-airflow.git && \
    cd composer-airflow
    
  2. Busca el mensaje de confirmación:

    git log --source --grep="COMMIT_MESSAGE" --all
    

    En este comando:

    • --source muestra la rama en la que se encuentra la confirmación.
    • --grep especifica el mensaje que se debe buscar en el registro.
    • --all busca en todas las ramas
  3. La rama se encuentra junto al hash de la confirmación en la primera línea de cada resultado. Si el comando devuelve una confirmación, significa que está en tu versión de Cloud Composer. Además, si la versión de Airflow de tu entorno es posterior a la versión de la rama, se usará la confirmación en la versión de Airflow de tu entorno.

Por ejemplo, si quieres buscar el mensaje de confirmación Force explicit choice on GPL dependency, el comando sería el siguiente:

git log --source --grep="Force explicit choice on GPL dependency" --all

Si hay una confirmación coincidente, los resultados serán similares al siguiente ejemplo. Puede haber más de un resultado.

commit 64ff1089e30e80b08bf5155edd9e49f5293ebbe4 refs/heads/<strong>1.10.2</strong>
Author: example_airflow_committer <example_airflow_committer@users.noreply.github.com>
Date:   Wed Aug 1 11:25:31 2018 +0200

    [AIRFLOW-2817] Force explicit choice on GPL dependency (#3660)

    By default one of Apache Airflow's dependencies pulls in a GPL
    library. Airflow should not install (and upgrade) without an explicit choice.

    This is part of the Apache requirements as we cannot depend on Category X
    software.

    (cherry picked from commit c37fc0b6ba19e3fe5656ae37cef9b59cef3c29e8)
    Signed-off-by: Example Airflow Committer  <example_airflow_committer@users.noreply.github.com>
    (cherry picked from commit b39e4532d9d1086c60b31553d08972bcc68df641)
    Signed-off-by: Example Airflow Committer  <example_airflow_committer@users.noreply.github.com>
    GitOrigin-RevId: cefcf4c61f64be3792cbfed509b82a9eb4cc47be

¿Cómo es este operador de Airflow en mi versión de Cloud Composer?

Los operadores de Airflow y el código correspondiente se empaquetan y se lanzan por separado del núcleo de Airflow en paquetes de PyPI denominados paquetes de proveedores.

Algunos de estos paquetes se instalan de forma predeterminada en Cloud Composer. Para saber qué versión está instalada en tu entorno, consulta la lista de paquetes de la versión de Cloud Composer de tu entorno en la lista de versiones.

Interfaz de usuario de GitHub

Para ver el código de un operador en una versión concreta de un paquete de proveedor, sigue estos pasos:

  1. Ve al repositorio de Airflow upstream.

  2. Escribe el nombre del operador que buscas en la barra de búsqueda de GitHub.

  3. Si se devuelve más de un archivo, haz clic en el archivo de código con una ruta que empiece por airflow/providers.

    Por ejemplo, si buscas GoogleCloudStorageCreateBucketOperator y, a continuación, eliges airflow/providers/google/cloud/operators/gcs.py.

  4. Haz clic en el selector de rama, que abre la lista desplegable Cambiar de rama o etiqueta.

  5. Haz clic en la pestaña Etiquetas.

  6. En el caso de los paquetes providers, busca el nombre de tu proveedor y la versión escribiendo providers-PROVIDER_NAME/PROVIDER_VERSION en la barra de búsqueda de la lista desplegable, donde PROVIDER_NAME es el nombre del proveedor y PROVIDER_VERSION es el nombre de la versión que buscas.

    Por ejemplo, si quieres ver la versión 10.0.0 del paquete apache-airflow-providers-google, debes buscar providers-google/10.0.0.

  7. En el caso de los paquetes backport-providers, que se usan en Airflow 1, busca backport-providers-PROVIDER_VERSION en la barra de búsqueda de la lista desplegable.

    Por ejemplo, si quieres ver la versión 2021.3.3 del paquete apache-airflow-backport-providers-google, busca backport-providers-2021.3.3.

  8. Haz clic en el resultado que coincida con tu consulta.

  9. El código que aparece en la pantalla es el que se está ejecutando en tu versión de ese operador. También puedes hacer clic en Historial para ver el historial de confirmaciones hasta este punto.

CLI de Git

Para ver el código de un operador en una versión concreta de un paquete de proveedor, sigue estos pasos:

  1. Clona el repositorio de Airflow upstream.

  2. En el caso de los paquetes providers, ejecuta git checkout providers-PROVIDER_NAME/PROVIDER_VERSION, donde PROVIDER_NAME es el nombre del proveedor y PROVIDER_VERSION es el nombre de la versión que buscas.

    Por ejemplo, si quieres ver la versión 10.0.0 del paquete apache-airflow-providers-google, ejecuta git checkout providers-google/10.0.0.

  3. En el caso de los paquetes backport-providers, que se usan en Airflow 1, ejecuta git checkout backport-providers-PROVIDER_VERSION.

    Por ejemplo, si quieres ver la versión 2021.3.3 del paquete apache-airflow-backport-providers-google,ejecuta git checkout backport-providers-2021.3.3.

  4. Si no sabes la ruta del archivo del operador, puedes buscarla con el comando git grep. En el siguiente ejemplo se muestra cómo buscar GoogleCloudStorageCreateBucketOperator.

    git grep GoogleCloudStorageCreateBucketOperator
    

    El resultado es una lista de archivos en los que se puede encontrar la cadena (en este caso, el nombre del operador). En esa lista, ve al archivo y examina su contenido.

    airflow/contrib/operators/gcs_operator.py:class
    GoogleCloudStorageCreateBucketOperator(BaseOperator):
    
    airflow/contrib/operators/gcs_operator.py:            CreateBucket =
    GoogleCloudStorageCreateBucketOperator(
    
    airflow/contrib/operators/gcs_operator.py:        super(
    GoogleCloudStorageCreateBucketOperator, self).__init__(*args, **kwargs)
    docs/code.rst:.. autoclass:: airflow.contrib.operators.gcs_operator.Google
    CloudStorageCreateBucketOperator
    docs/integration.rst:- :ref:`GoogleCloudStorageCreateBucketOperator` :
    Creates a new cloud storage bucket.
    docs/integration.rst:.. _GoogleCloudStorageCreateBucketOperator:
    docs/integration.rst:GoogleCloudStorageCreateBucketOperator
    docs/integration.rst:.. autoclass:: airflow.contrib.operators.gcs_operator
    .GoogleCloudStorageCreateBucketOperator
    tests/contrib/operators/test_gcs_operator.py:from
    airflow.contrib.operators.gcs_operator import
    GoogleCloudStorageCreateBucketOperator
    tests/contrib/operators/test_gcs_operator.py:        operator =
    GoogleCloudStorageCreateBucketOperator(
    

Siguientes pasos