Cloud Composer の Airflow コード リポジトリ

このページでは、Cloud Composer で使用されるパッチ適用済みの Apache Airflow コードを保存するリポジトリについて説明します。

リポジトリについて

Composer-Airflow リポジトリは、Cloud Composer で実行されるパッチ適用済みの Apache Airflow コードを含む読み取り専用リポジトリです。

Cloud Composer はパッチ適用済みの Airflow のバージョンを使用するため、Cloud Composer にある特定のバージョンの Apache Airflow は、上流の対応する Airflow のバージョンと常に完全一致するとは限りません。このリポジトリには、Cloud Composer で使用されるすべてのパッチ適用済み Airflow バージョンのコードが含まれています。Cloud Composer で使用される Airflow のバージョンについては、Cloud Composer のバージョン リストをご覧ください。

貢献

このコードは Apache Airflow のフォークではありません。このリポジトリにあるコードは Apache Airflow リポジトリから直接取得されますが、通常の Apache Airflow リリースとは異なるタイムラインで行われます。

このコードベースに貢献する場合は、代わりに Airflow に直接貢献してください。pull リクエストは受け入れられないため、このリポジトリでは行わないでください。

問題とサポート

このリポジトリには、Cloud Composer で使用可能な Airflow のバージョンごとに 1 つのブランチがあります。Cloud Composer でサポートされている Airflow のバージョンは限られています。特定の Cloud Composer バージョンでサポートされている Airflow のバージョンについては、Cloud Composer のバージョン リストをご覧ください。

使用例

このセクションでは、リポジトリの使用例を示します。

お使いの Cloud Composer のバージョンの Airflow リポジトリからの commit ですか?

Composer-Airflow リポジトリの commit の SHA1 は、アップストリーム Airflow リポジトリの commit SHA1 に対応していません。特定の commit を検索する方法の一つは、対応する commit メッセージを検索することです。

GitHub UI を使用して、デフォルト ブランチ以外のブランチで commit メッセージを検索することはできませんが、git CLI を使用すると検索できます。このリポジトリ内の特定の commit を検索するには、git がインストールされている必要があります。

git CLI を使用して commit メッセージを検索するには:

  1. 次のコマンドを使用して、リポジトリのクローンを作成しリポジトリ ディレクトリに移動します。

    git clone git@github.com:GoogleCloudPlatform/composer-airflow.git && \
    cd composer-airflow
    
  2. commit メッセージを検索します。

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

    コマンドの内容:

    • --source は、commit が見つかったブランチを示します
    • --grep は、ログを検索する必要があるメッセージを指定します。
    • --all はすべてのブランチを検索します。
  3. ブランチは、すべての結果の最初の行の commit ハッシュの横にあります。コマンドが commit を返した場合は、それが Cloud Composer のバージョンであることを意味します。また、環境内の Airflow のバージョンがブランチのバージョンよりも新しい場合、その commit はお使いの環境の Airflow バージョンで使用されます。

たとえば、commit メッセージ Force explicit choice on GPL dependency を検索する場合、コマンドは次のようになります。

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

一致する commit がある場合、結果は次の出力例のようになります。複数の結果が返される場合があります。

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

現在利用しているバージョンの Cloud Composer で、この Airflow 演算子はどのように見えますか?

Airflow オペレーターと付随するコードは、プロバイダ パッケージと呼ばれる PyPI パッケージのコア Airflow とは別にパッケージ化され、リリースされます。

これらのパッケージの一部は、Cloud Composer にデフォルトでインストールされています。環境にインストールされているバージョンを確認するには、バージョン リストで、環境のバージョンの Cloud Composer のパッケージのリストを参照します。

GitHub UI

特定のプロバイダ パッケージ バージョンのオペレータのコードを確認するには:

  1. アップストリーム Airflow リポジトリに移動します。

  2. GitHub の検索バーに、検索する演算子の名前を入力します。

  3. 複数のファイルが返された場合は、パスが airflow/providers で始まるコードファイルをクリックします。

    たとえば、GoogleCloudStorageCreateBucketOperator を検索する場合は、airflow/providers/google/cloud/operators/gcs.py を選択します。

  4. ブランチ セレクタをクリックすると、[ブランチ/タグを切り替える] プルダウン リストが開きます。

  5. [タグ] タブをクリックします。

  6. providers パッケージの場合は、プルダウン リストの検索バーに providers-PROVIDER_NAME/PROVIDER_VERSION と入力して、プロバイダの名前とバージョンを検索します。ここで、PROVIDER_NAME はプロバイダの名前、PROVIDER_VERSION は検索するバージョンの名前です。

    たとえば、apache-airflow-providers-google パッケージのバージョン 10.0.0 を確認するには、providers-google/10.0.0 を検索します。

  7. Airflow 1 で使用される backport-providers パッケージの場合は、プルダウン リストの検索バーで backport-providers-PROVIDER_VERSION を検索します。

    たとえば、apache-airflow-backport-providers-google パッケージのバージョン 2021.3.3 を表示するには、backport-providers-2021.3.3 を検索します。

  8. クエリに一致する結果をクリックします。

  9. 画面上のコードは、その演算子のバージョンで実行されているものです。[履歴] をクリックすると、現時点までの commit の履歴を確認できます。

git CLI

特定のプロバイダ パッケージ バージョンのオペレータのコードを確認するには:

  1. アップストリーム Airflow リポジトリのクローンを作成します。

  2. providers パッケージの場合は、git checkout providers-PROVIDER_NAME/PROVIDER_VERSION を実行します。ここで、PROVIDER_NAME はプロバイダの名前、PROVIDER_VERSION は確認しようとしているバージョンの名前です。

    たとえば、apache-airflow-providers-google パッケージのバージョン 10.0.0 を確認するには、git checkout providers-google/10.0.0 を実行します。

  3. Airflow 1 で使用される backport-providers パッケージの場合は、git checkout backport-providers-PROVIDER_VERSION を実行します。

    たとえば、apache-airflow-backport-providers-google パッケージのバージョン 2021.3.3 を確認するには、git checkout backport-providers-2021.3.3 を実行します。

  4. オペレータのファイルパスがわからない場合は、git grep コマンドを使用して検索できます。次の例は、GoogleCloudStorageCreateBucketOperator を検索する方法を示しています。

    git grep GoogleCloudStorageCreateBucketOperator
    

    出力は、文字列(この場合はオペレータの名前)を確認できるファイルのリストです。このリストからファイルに移動し、その内容を詳しく調べます。

    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(
    

次のステップ