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 corrigido usado no Cloud Composer.

Acerca do repositório

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

Uma versão específica do Apache Airflow encontrada no Cloud Composer nem sempre corresponde exatamente à versão correspondente no Airflow a montante, porque o Cloud Composer usa uma versão corrigida do Airflow. Este repositório contém o código de todas as versões corrigidas do Airflow usadas no Cloud Composer. Para obter informações sobre as versões do Airflow encontradas no Cloud Composer, consulte a lista de versões do Cloud Composer.

Contribuindo

Este código não é uma ramificação do Apache Airflow. O código encontrado neste repositório provém diretamente do repositório do Apache Airflow, mas numa linha cronológica diferente das versões normais do Apache Airflow.

Se quiser contribuir para esta base de código, contribua diretamente para o Airflow em vez disso. Não o faça neste repositório porque não são aceites pedidos de envio no mesmo.

Problemas e apoio técnico

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 suportadas no Cloud Composer. Pode ver que versões do Airflow são suportadas por uma versão específica do Cloud Composer na lista de versões do Cloud Composer.

Exemplos de utilização

Esta secção apresenta exemplos de utilização do repositório.

Este commit do repositório do Airflow está na minha versão do Cloud Composer?

Os SHA1s das consolidações no repositório Composer-Airflow não correspondem aos SHA1s de consolidações no repositório Airflow a montante. Uma das formas de pesquisar um commit específico é procurar a mensagem de commit correspondente.

Não é possível usar a IU do GitHub para pesquisar mensagens de commits em ramos que não sejam o ramo predefinido. No entanto, é possível fazê-lo através da CLI git. Para pesquisar um commit específico neste repositório, tem de ter o git instalado.

Para pesquisar uma mensagem de commit através da CLI git:

  1. Clone o repositório e altere para o diretório do repositório através do seguinte comando:

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

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

    Neste comando:

    • --source mostra o ramo onde o commit é encontrado
    • --grep especifica a mensagem que tem de ser pesquisada no registo
    • --all pesquisas em todas as ramificações
  3. O ramo está localizado junto ao hash de confirmação na primeira linha de cada resultado. Se o comando devolver uma confirmação, significa que 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 é usada na versão do Airflow do seu ambiente.

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

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

Se existir um commit correspondente, os seus resultados têm o aspeto do seguinte exemplo de resultado. Pode haver mais do que 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

Qual é o aspeto deste operador do Airflow na minha versão do Cloud Composer?

Os operadores do Airflow e o código associado são incluídos em pacotes e lançados separadamente do Airflow principal em pacotes PyPI denominados pacotes de fornecedores.

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

IU do GitHub

Para ver o código de um operador numa versão específica do pacote do fornecedor:

  1. Aceda ao repositório do Airflow a montante.

  2. Introduza o nome do operador que está a pesquisar na barra de pesquisa do GitHub.

  3. Se for devolvido mais do que um ficheiro, clique no ficheiro de código com um caminho que comece em airflow/providers.

    Por exemplo, se pesquisar o GoogleCloudStorageCreateBucketOperator e, de seguida, escolher airflow/providers/google/cloud/operators/gcs.py.

  4. Clique no seletor de ramificações, que abre a lista pendente Mudar de ramificações/etiquetas.

  5. Clique no separador Etiquetas.

  6. Para pacotes providers, pesquise o nome do seu fornecedor e a versão escrevendo providers-PROVIDER_NAME/PROVIDER_VERSION na barra de pesquisa da lista pendente, onde PROVIDER_NAME é o nome do fornecedor e PROVIDER_VERSION é o nome da versão que procura.

    Por exemplo, se quiser ver a versão 10.0.0 do pacote apache-airflow-providers-google, deve pesquisar 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 pendente.

    Por exemplo, se 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 no ecrã é o que está a ser executado na sua versão desse operador. Também pode clicar em Histórico para ver o histórico de commits até este ponto.

CLI git

Para ver o código de um operador numa versão específica do pacote do fornecedor:

  1. Clone o repositório do Airflow a montante.

  2. Para pacotes providers, execute git checkout providers-PROVIDER_NAME/PROVIDER_VERSION, onde PROVIDER_NAME é o nome do fornecedor e PROVIDER_VERSION é o nome da versão que procura.

    Por exemplo, se 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 o comando git checkout backport-providers-PROVIDER_VERSION.

    Por exemplo, se 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 não souber o caminho do ficheiro do operador, pode pesquisá-lo com o comando git grep. O exemplo seguinte demonstra como pesquisar GoogleCloudStorageCreateBucketOperator.

    git grep GoogleCloudStorageCreateBucketOperator
    

    A saída é uma lista de ficheiros onde a string (neste caso, o nome do operador) pode ser encontrada. Nessa lista, navegue para o ficheiro e examine o respetivo conteúdo mais detalhadamente.

    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(
    

O que se segue?