Composer-Airflow-Repository

Über 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. Es kann sowohl als Referenz als auch für lokale Tests und die Entwicklung verwendet werden.

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 Abzweigung von Apache Airflow. Der in diesem Repository enthaltene Code stammt direkt aus dem Apache Airflow-Repository, allerdings in einem anderen Zeitplan als die normalen Apache Airflow-Releases. Wenn Sie zu dieser Codebasis beitragen möchten, tun Sie dies hier nicht. Pull-Anfragen werden in diesem Repository nicht akzeptiert und sollten direkt zu Airflow beigetragen werden.

Probleme + Support

Wenn Sie ein Problem mit dem Code in diesem Repository haben, folgen Sie der Anleitung zur Fehlerbehebung für Airflow. Wenn Sie ein Problem mit Cloud Composer haben, verwenden Sie die Cloud Composer-Supportkanäle.

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. Informationen zur Versionsunterstützung finden Sie unter Versionsverwaltung für Cloud Composer.

Anwendungsfälle

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

Commit-SHA1s im composer-airflow-Repository entsprechen nicht Commit-SHA1s im Upstream-Airflow-Repository. Daher können Sie am einfachsten nach einem bestimmten Commit suchen, indem Sie nach einer entsprechende Commit-Nachricht suchen.

Derzeit ist es 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.

  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 teilt git mit, nach welcher Nachricht im Log gesucht werden soll
    • --all weist git an, alle Branches zu suchen
  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 "Explizite Auswahl nach GPL-Abhängigkeit erzwingen" suchen möchten, lautet der Befehl:

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

Wenn ein übereinstimmender Commit vorhanden ist, würden Ihre Ergebnisse in etwa so aussehen (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 Operator in meiner Composer-Version aus?

Wenn Sie die providers-Pakete nicht verwenden

Wenn Sie den Dateipfad für einen bestimmten Operator, z. B. GoogleCloudStorageCreateBucketOperator, kennen, rufen Sie ihn über die GitHub-Benutzeroberfläche oder die Befehlszeile auf.

Wenn Sie den Dateipfad nicht kennen, können Sie ihn mit dem folgenden Befehl suchen:

    git grep GoogleCloudStorageCreateBucketOperator

Die Ausgabe ist eine Liste von Dateien, in denen der String (in diesem Fall der Operatorname) 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.GoogleCloudStorageCreateBucketOperator
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(

Wenn Sie die providers-Pakete verwenden

Ab bestimmten Versionen von Airflow 1.10.x werden bestimmte Operatoren und der zugehörige Code außerhalb von zentralen Airflow in PyPI-Paketen verpackt und freigegeben, die als "Backport-Anbieterpakete" (Airflow 1.10.x) oder Dienstleister-Pakete bezeichnet werden (Airflow 2.0 und höher.) Weitere Informationen zu Backport-Anbietern in Cloud Composer finden Sie in der Dokumentation zu Cloud Composer-Backport-Anbietern.

Bestimmte Versionen dieser Pakete werden standardmäßig in Cloud Composer installiert. In der Spalte „PyPI-Pakete für Python 3“ der Versionsliste sehen Sie, welche Version in Ihrer Umgebung installiert ist.

So suchen Sie den Code für einen Operator in einem bestimmten Release:

GitHub-UI

  1. Rufen Sie das Upstream-Airflow-Repository auf.
  2. Geben Sie den Namen des Operators ein, nach dem Sie in der GitHub-Suchleiste oben auf der Seite 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 Folgendes eingeben:
    providers-PROVIDER_NAME/PROVIDER_VERSION
    in der Suchleiste der Drop-down-Liste, wobei PROVIDER_NAME der Name des Anbieters und PROVIDER_VERSION der Name der gewünschten Version ist. Beispiel: Wenn Sie die Version 4.0.0 des Pakets apache-airflow-providers-google sehen möchten, suchen Sie nach providers-google/4.0.0.
  7. Suchen Sie bei backport-providers-Paketen nach
    backport-providers-PROVIDER_VERSION
    in die Suchleiste der Drop-down-Liste. 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

  1. Klonen Sie das Upstream-Airflow-Repository.
  2. Führen Sie für providers-Pakete Folgendes aus:
    git checkout providers-PROVIDER_NAME/PROVIDER_VERSION
    , wobei PROVIDER_NAME der Name des Anbieters und PROVIDER_VERSION der Name der Version ist, nach der Sie suchen. Wenn Sie beispielsweise die Version 4.0.0 des Pakets apache-airflow-providers-google sehen möchten, führen Sie git checkout providers-google/4.0.0 aus.
  3. Führen Sie für backport-providers-Pakete Folgendes aus:
    git checkout backport-providers-PROVIDER_VERSION
    in der Suchleiste der Drop-down-Liste. Wenn Sie beispielsweise die Version 2021.3.3 des Pakets apache-airflow-backport-providers-google sehen möchten, führen Sie git checkout backport-providers-2021.3.3 aus.

Folgen Sie dann der Anleitung unter Wenn Sie keine providers-Pakete verwenden.