Repositório de código do Airflow do Cloud Composer

Esta página descreve o repositório que armazena o código do Apache Airflow com patch usado no Cloud Composer.

Sobre o repositório

O repositório Composer-Airflow é um repositório somente leitura que contém o código do Apache Airflow em patch em execução no Cloud Composer.

Uma versão específica do Apache Airflow encontrada no Cloud Composer nem sempre é uma correspondência exata com a versão correspondente no upstream do Airflow porque ele usa uma versão com patch do Airflow. Esse repositório contém o código para cada versão com patch do Airflow usada no Cloud Composer. Para informações sobre quais versões do Airflow são encontradas no Cloud Composer, consulte a lista de versões do Cloud Composer.

Contribuição

Esse código não é uma bifurcação do Apache Airflow. O código encontrado neste repositório vem diretamente do repositório Apache Airflow, mas em uma linha do tempo diferente das versões normais do Apache Airflow.

Se você quiser contribuir com esta base de código, envie diretamente para o Airflow. Não faça isso neste repositório, porque as solicitações de pull não são aceitas nele.

Problemas e suporte

O repositório tem uma ramificação para cada versão do Airflow disponível no Cloud Composer. Nem todas as versões do Airflow são compatíveis com o Cloud Composer. É possível conferir quais versões do Airflow são compatíveis com uma versão específica do Cloud Composer na lista de versões do Cloud Composer.

Exemplos de uso

Esta seção lista exemplos de uso do repositório.

Esta confirmação está disponível no repositório do Airflow na minha versão do Cloud Composer?

Os SHA1s de confirmações no repositório Composer-Airflow não correspondem a confirmações SHA1 no repositório upstream do Airflow. Uma das maneiras de procurar uma confirmação específica é procurar a mensagem de confirmação correspondente.

Não é possível usar a interface do GitHub para pesquisar mensagens de confirmação em branches além da ramificação padrão. No entanto, é possível fazer isso usando a CLI git. Para pesquisar uma confirmação específica neste repositório, você precisa ter o git instalado.

Para pesquisar uma mensagem de confirmação usando a CLI git:

  1. Clone o repositório e mude para o diretório do repositório usando o seguinte comando:

    git clone git@github.com:GoogleCloudPlatform/composer-airflow.git && \
    cd composer-airflow
    
  2. Procure a mensagem de confirmação:

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

    Nesse comando:

    • --source mostra a ramificação em que a confirmação foi encontrada;
    • --grep especifica a mensagem que precisa ser pesquisada no registro.
    • --all pesquisa em todas as ramificações
  3. A ramificação está localizada ao lado do hash de confirmação na primeira linha de cada resultado. Se o comando retornar uma confirmação, isso significa que ele está na sua versão do Cloud Composer. Além disso, se a versão do Airflow no seu ambiente for posterior à versão da ramificação, a confirmação será usada na versão do Airflow do ambiente.

Por exemplo, se você quiser pesquisar a mensagem de confirmação Force explicit choice on GPL dependency, o comando será:

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

Se houver uma confirmação correspondente, os resultados serão semelhantes ao exemplo de saída abaixo. Talvez haja mais de um 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

Como é esse operador do Airflow na minha versão do Cloud Composer?

Os operadores do Airflow e o código que os acompanha são empacotados e lançados separadamente dos principais pacotes do Airflow em pacotes PyPI chamados pacotes de provedor.

Alguns desses pacotes são instalados por padrão no Cloud Composer. Para saber qual versão está instalada no seu ambiente, consulte a lista de pacotes da versão do Cloud Composer na lista de versões.

IU do GitHub

Para analisar o código de um operador em uma versão específica do pacote do provedor:

  1. Acesse o repositório upstream do Airflow.

  2. Digite o nome do operador que você está procurando na barra de pesquisa do GitHub.

  3. Se mais de um arquivo for retornado, clique no arquivo de código com um caminho que começa em airflow/providers.

    Por exemplo, se você pesquisar GoogleCloudStorageCreateBucketOperator, escolha airflow/providers/google/cloud/operators/gcs.py.

  4. Clique no seletor de ramificação, que abre a lista suspensa Alternar ramificações/tags.

  5. Clique na guia Tags.

  6. Para pacotes providers, pesquise o nome do provedor e a versão digitando providers-PROVIDER_NAME/PROVIDER_VERSION na barra de pesquisa da lista suspensa, em que PROVIDER_NAME é o nome do provedor e PROVIDER_VERSION é o nome da versão que você está procurando.

    Por exemplo, se você quiser ver a versão 10.0.0 do pacote apache-airflow-providers-google, pesquise providers-google/10.0.0.

  7. Para pacotes backport-providers, que são usados no Airflow 1, pesquise backport-providers-PROVIDER_VERSION na barra de pesquisa da lista suspensa.

    Por exemplo, se você quiser ver a versão 2021.3.3 do pacote apache-airflow-backport-providers-google, pesquise backport-providers-2021.3.3.

  8. Clique no resultado que corresponde à sua consulta.

  9. O código na tela é o que está sendo executado na sua versão desse operador. Também é possível clicar em Histórico para conferir o histórico de confirmações até esse ponto.

CLI do git

Para analisar o código de um operador em uma versão específica do pacote do provedor:

  1. Clone o repositório upstream do Airflow.

  2. Para pacotes providers, execute git checkout providers-PROVIDER_NAME/PROVIDER_VERSION, em que PROVIDER_NAME é o nome do provedor e PROVIDER_VERSION é o nome da versão que você está procurando.

    Por exemplo, se você quiser ver a versão 10.0.0 do pacote apache-airflow-providers-google, execute git checkout providers-google/10.0.0.

  3. Para pacotes backport-providers, que são usados no Airflow 1, execute git checkout backport-providers-PROVIDER_VERSION.

    Por exemplo, se você quiser ver a versão 2021.3.3 do pacote apache-airflow-backport-providers-google,execute git checkout backport-providers-2021.3.3.

  4. Se você não souber o caminho do arquivo do operador, pesquise-o com o comando git grep. O exemplo a seguir demonstra como procurar GoogleCloudStorageCreateBucketOperator.

    git grep GoogleCloudStorageCreateBucketOperator
    

    A saída será uma lista de arquivos em que a string (neste caso, o nome do operador) pode ser encontrada. Nessa lista, navegue até o arquivo e analise o conteúdo.

    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(
    

A seguir