Airflow-Code-Repository von Cloud Composer

Auf dieser Seite wird das Repository beschrieben, in dem der gepatchte Apache Airflow-Code gespeichert wird, der in Cloud Composer verwendet wird.

Das Repository

Das Composer-Airflow-Repository ist ein schreibgeschütztes Repository, das den gepatchten Apache Airflow-Code enthält, der in Cloud Composer ausgeführt wird.

Eine bestimmte Version von Apache Airflow, die in Cloud Composer gefunden wird, ist nicht immer genau die entsprechende Version in Airflow, da Cloud Composer eine Patchversion von Airflow verwendet. Dieses Repository enthält den Code für jede Patchversion von Airflow, die in Cloud Composer verwendet wird. Informationen zu den Versionen von Airflow finden Sie in der Liste der Cloud Composer-Versionen.

Beiträge

Dieser Code ist keine Verzweigung von Apache Airflow. Der in diesem Repository gefundene Code stammt direkt aus dem Apache Airflow-Repository, jedoch zu einer anderen Zeitachse als normale Apache Airflow-Releases.

Wenn Sie zu dieser Codebasis beitragen möchten, tragen Sie stattdessen direkt zu Airflow bei. Tun Sie dies nicht in diesem Repository, da dort keine Pull-Requests akzeptiert werden.

Probleme und Support

Das Repository hat einen Zweig für jede in Cloud Composer verfügbare Version von Airflow. Nicht alle Versionen von Airflow werden in Cloud Composer unterstützt. Welche Airflow-Versionen von einer bestimmten Cloud Composer-Version unterstützt werden, sehen Sie in der Liste der Cloud Composer-Versionen.

Beispiele für die Verwendung

In diesem Abschnitt finden Sie Nutzungsbeispiele für das Repository.

Wird dieses Commit aus dem Airflow-Repository in meiner Version von Cloud Composer ausgeführt?

Die SHA1s von Commits im Composer-Airflow-Repository entsprechen nicht den Commit-SHA1s im Upstream-Airflow-Repository. Eine Möglichkeit, nach einem bestimmten Commit zu suchen, besteht darin, nach der entsprechenden Commit-Nachricht zu suchen.

Es ist nicht möglich, mit der GitHub-Benutzeroberfläche Commit-Nachrichten in anderen Branches als dem Standardzweig zu suchen. Dies ist jedoch mithilfe der git-Befehlszeile möglich. Wenn Sie in diesem Repository nach einem bestimmten Commit suchen möchten, muss git installiert sein.

So suchen Sie mit der git-Befehlszeile nach einer Commit-Nachricht:

  1. Klonen Sie das Repository und wechseln Sie mit dem folgenden Befehl in das Repository-Verzeichnis:

    git clone git@github.com:GoogleCloudPlatform/composer-airflow.git && \
    cd composer-airflow
    
  2. Suchen Sie nach der Commit-Nachricht:

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

    Dabei gilt:

    • --source zeigt den Zweig, in dem das Commit gefunden wird
    • --grep gibt die Nachricht an, nach der im Protokoll gesucht werden soll.
    • --all sucht in allen Branches
  3. Der Zweig befindet sich neben dem Commit-Hash in der ersten Zeile jedes Ergebnisses. Wenn der Befehl ein Commit zurückgibt, bedeutet dies, dass es sich in Ihrer Cloud Composer-Version befindet. Wenn die Airflow-Version in Ihrer Umgebung später als die Branch-Version ist, wird der Commit in der Airflow-Version Ihrer Umgebung verwendet.

Wenn Sie beispielsweise nach der Commit-Nachricht Force explicit choice on GPL dependency suchen möchten, lautet der Befehl:

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

Wenn ein übereinstimmender Commit vorhanden ist, sehen Ihre Ergebnisse in etwa so aus wie im folgenden Beispiel. Es kann mehrere Ergebnisse geben.

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

Wie sieht dieser Airflow-Operator in meiner Cloud Composer-Version aus?

Airflow-Operatoren und zugehöriger Code werden außerhalb von zentralen Airflow in PyPI-Paketen verpackt und freigegeben, die als Anbieterpakete bezeichnet werden.

Einige dieser Pakete werden standardmäßig in Cloud Composer installiert. In der Versionsliste finden Sie die Liste der Pakete für die Cloud Composer-Version Ihrer Umgebung.

GitHub-UI

So suchen Sie den Code für einen Operator in einer bestimmten Anbieterpaketversion:

  1. Rufen Sie das Upstream-Airflow-Repository auf.

  2. Geben Sie den Namen des Operators ein, nach dem Sie in der GitHub-Suchleiste suchen.

  3. Wenn mehrere Dateien zurückgegeben werden, klicken Sie auf die Codedatei mit einem Pfad, der mit airflow/providers beginnt.

    Wenn Sie beispielsweise nach GoogleCloudStorageCreateBucketOperator suchen, wählen Sie airflow/providers/google/cloud/operators/gcs.py aus.

  4. Klicken Sie auf die Zweigauswahl, um die Drop-down-Liste Branches/Tags wechseln zu öffnen.

  5. Klicken Sie auf den Tab Tags.

  6. Suchen Sie bei providers-Paketen nach dem Namen Ihres Anbieters und der Version, indem Sie providers-PROVIDER_NAME/PROVIDER_VERSION in die Suchleiste der Drop-down-Liste eingeben. Dabei ist PROVIDER_NAME der Name des Anbieters und PROVIDER_VERSION der Name der gewünschten Version.

    Beispiel: Wenn Sie die Version 10.0.0 des Pakets apache-airflow-providers-google sehen möchten, suchen Sie nach providers-google/10.0.0.

  7. Wenn Sie nach backport-providers-Paketen suchen, die in Airflow 1 verwendet werden, geben Sie in der Suchleiste der Drop-down-Liste backport-providers-PROVIDER_VERSION ein.

    Beispiel: Wenn Sie die Version 2021.3.3 des Pakets apache-airflow-backport-providers-google sehen möchten, suchen Sie nach backport-providers-2021.3.3.

  8. Klicken Sie auf das Ergebnis, das Ihrer Abfrage entspricht.

  9. Der Code auf dem Bildschirm ist genau das, was in Ihrer Version dieses Operators ausgeführt wird. Sie können auch auf Verlauf klicken, um den Commit-Verlauf bis zu diesem Zeitpunkt aufzurufen.

Git-Befehlszeile

So suchen Sie den Code für einen Operator in einer bestimmten Anbieterpaketversion:

  1. Klonen Sie das Upstream-Airflow-Repository.

  2. Führen Sie für providers-Pakete git checkout providers-PROVIDER_NAME/PROVIDER_VERSION aus. Dabei ist PROVIDER_NAME der Name des Anbieters und PROVIDER_VERSION der Name der Version, nach der Sie suchen.

    Beispiel: Wenn Sie sich die Version 10.0.0 des Pakets apache-airflow-providers-google ansehen möchten, führen Sie git checkout providers-google/10.0.0 aus.

  3. Führen Sie für backport-providers-Pakete, die in Airflow 1 verwendet werden, git checkout backport-providers-PROVIDER_VERSION aus.

    Beispiel: Wenn Sie sich die Version 2021.3.3 des Pakets apache-airflow-backport-providers-google ansehen möchten, führen Sie git checkout backport-providers-2021.3.3 aus.

  4. Wenn Sie den Dateipfad für den Operator nicht kennen, können Sie ihn mit dem Befehl git grep suchen. Im folgenden Beispiel wird gezeigt, wie nach GoogleCloudStorageCreateBucketOperator gesucht wird.

    git grep GoogleCloudStorageCreateBucketOperator
    

    Die Ausgabe ist eine Liste von Dateien, in denen der String (in diesem Fall der Name des Betreibers) gefunden wird. Gehen Sie in dieser Liste zur entsprechenden Datei und prüfen Sie deren Inhalt weiter.

    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(
    

Nächste Schritte