Airflow-Code-Repository von Managed Airflow

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

Informationen zum Repository

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

Eine bestimmte Version von Apache Airflow, die in Managed Airflow gefunden wird, ist nicht immer genau die entsprechende Version in Upstream-Airflow, da Managed Airflow eine Patchversion von Airflow verwendet. Dieses Repository enthält den Code für jede Patchversion von Airflow, die in Managed Airflow verwendet wird. Informationen dazu, welche Versionen von Airflow in Managed Airflow gefunden werden, finden Sie in der Liste der Managed Airflow-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, dann tragen Sie stattdessen direkt zu Airflow bei. Tun Sie dies nicht in diesem Repository, da Pull-Anfragen darin nicht akzeptiert werden.

Probleme und Support

Das Repository hat einen Zweig für jede in Managed Service for Apache Airflow verfügbare Version von Airflow. Nicht alle Versionen von Airflow werden in Managed Airflow unterstützt. In der Liste der Managed Airflow-Versionen sehen Sie, welche Airflow-Versionen von einer bestimmten Managed Airflow-Version unterstützt werden.

Beispiele für die Verwendung

In diesem Abschnitt sind Beispiele für die Verwendung des Repositorys aufgeführt.

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

SHA1s von Commits im Composer-Airflow-Repository entsprechen nicht 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, müssen Sie git installiert haben.

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 Log gesucht werden muss
    • --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 Version von Managed Airflow 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 wie im folgenden Beispiel aus. Es kann mehr als ein Ergebnis 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 Version von Managed Airflow aus?

Airflow-Operatoren und der zugehörige Code werden außerhalb von zentralen Airflow in PyPI-Paketen verpackt und freigegeben, die als Anbieterpaketebezeichnet werden.

Einige dieser Pakete werden standardmäßig in Managed Airflow installiert. In der Liste der Pakete für die Version von Managed Airflow in Ihrer Umgebung in der Versionslistesehen Sie, welche Version in Ihrer Umgebung installiert ist.

GitHub-UI

So suchen Sie den Code für einen Operator in einer bestimmten Version eines Anbieterpakets:

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

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

  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.

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

  7. Suchen Sie bei backport-providers-Paketen, die in Airflow 1 verwendet werden, in der Suchleiste der Drop-down-Liste nach backport-providers-PROVIDER_VERSION.

    Wenn Sie beispielsweise Version 2021.3.3 des apache-airflow-backport-providers-google Pakets 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 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 Version eines Anbieterpakets:

  1. Klonen Sie das Upstream-Airflow-Repository.

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

    Wenn Sie beispielsweise Version 10.0.0 des apache-airflow-providers-google Pakets sehen 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.

    Wenn Sie beispielsweise Version 2021.3.3 des apache-airflow-backport-providers-google Pakets sehen 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 mit dem Befehl git grep danach suchen. Im folgenden Beispiel wird gezeigt, wie Sie nach GoogleCloudStorageCreateBucketOperator suchen.

    git grep GoogleCloudStorageCreateBucketOperator
    

    Die Ausgabe ist eine Liste von Dateien, in denen der String (in diesem Fall der Name des Operators) gefunden wird. Rufen Sie in dieser Liste die Datei auf und untersuchen Sie ihren 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