Repositorio de código de Airflow de Cloud Composer

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

Información acerca del repositorio

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

Una versión particular de Apache Airflow que se encuentra en Cloud Composer no siempre es una coincidencia exacta de la versión correspondiente en Airflow ascendente porque Cloud Composer usa una versión con parche de Airflow. Este repositorio contiene el código para cada versión con parche de Airflow que se usa en Cloud Composer. Para obtener información sobre qué versiones de Airflow se encuentran en Cloud Composer, consulta la lista de versiones de Cloud Composer.

Contribuyendo

Este código no es una bifurcación de Apache Airflow. El código que se encuentra en este repositorio proviene directamente del repositorio de Apache Airflow, pero en un cronograma diferente al de las versiones normales de Apache Airflow.

Si deseas 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 en él.

Problemas y asistencia

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

Ejemplos de uso

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

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

Los SHA1 de las confirmaciones en el repositorio de Composer-Airflow no corresponden a los SHA1 de las confirmaciones en el repositorio de Airflow ascendente. Una de las formas de buscar una confirmación específica es buscar el mensaje de confirmación correspondiente.

No es posible usar la IU de GitHub para buscar mensajes de confirmación en ramas que no sean la rama predeterminada; sin embargo, es posible hacerlo con la CLI de git. Para buscar una confirmación en particular en este repositorio, debes tener git instalado.

Para buscar un mensaje de confirmación con la CLI de git, sigue estos pasos:

  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, la siguiente instrucción:

    • --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 confirmación en la primera línea de cada resultado. Si el comando muestra una confirmación, esto significa que está en tu versión de Cloud Composer. Además, si la versión de Airflow en tu entorno es posterior a la versión de rama, la confirmación se usa en la versión de Airflow de tu entorno.

Por ejemplo, si deseas 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 se verían como en el siguiente ejemplo de salida. 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 se ve este operador de Airflow en mi versión de Cloud Composer?

Los operadores de Airflow y el código que los acompaña se empaquetan y lanzan por separado de Airflow principal en paquetes de PyPI llamados paquetes de proveedores.

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

IU de GitHub

Para ver el código de un operador en una versión particular del paquete de un proveedor, haz lo siguiente:

  1. Ve al repositorio de Airflow ascendente.

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

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

    Por ejemplo, si buscas GoogleCloudStorageCreateBucketOperator, elige airflow/providers/google/cloud/operators/gcs.py.

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

  5. Haz clic en la pestaña Etiquetas.

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

    Por ejemplo, si deseas 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 deseas ver la versión 2021.3.3 del paquete apache-airflow-backport-providers-google, debes buscar backport-providers-2021.3.3.

  8. Haz clic en el resultado que coincida con tu búsqueda.

  9. El código en pantalla es lo que se ejecuta 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 particular del paquete de un proveedor, haz lo siguiente:

  1. Clona el repositorio de Airflow ascendente.

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

    Por ejemplo, si deseas ver la versión 10.0.0 del paquete apache-airflow-providers-google, debes ejecutar 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 deseas ver la versión 2021.3.3 del paquete apache-airflow-backport-providers-google,debes ejecutar git checkout backport-providers-2021.3.3.

  4. Si no conoces la ruta de acceso al 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, navega 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(
    

¿Qué sigue?